我是 Linux 的初学者。
我尝试扫描我的电脑的开放端口,但发现只开放了三个端口,即端口 80、53 和 65535。
然后我尝试扫描我的安卓手机,结果显示所有端口都关闭了。
我使用了以下命令:
nmap -sT -p- (myip)
这正常吗?还是我做错了什么?
答案1
如果没有服务(如 ssh 服务器或 web 服务器)打开这些端口,则端口关闭是正常的。
如果你安装了openssh-server则会打开22端口,如果你安装了apache2则会打开80端口。
如果您使用 ssh(apt-get install openssh-client)或网络浏览器,它将在使用期间临时打开一个随机高端口。
端口 53 是 dns。端口 80 是 http,请执行 netstat -tlpen 查看哪个进程打开了哪个端口,尤其是在您的例子中是端口 80。
由于您的 Android 手机上没有提供任何服务,而只是使用它们,因此 nmap 显示没有开放端口是正常的。
您可以在 /etc/services 中找到默认端口号
答案2
0-1023 端口称为知名端口,它们注册了特殊服务:22 ssh 23 telnet 25 smtp 80 http 143 imap 443 https 等等,请参阅 /etc/services。
这是服务器端等待客户端的连接。
客户端(telnet、webbrowser、putty……)将使用一个随机高端口(端口为 16 位,因此 0-65k),例如 38743,它通过向服务器发送带有设置 syn 标志的 tcp 数据包来打开连接。
该数据包具有发送方 IP 和端口以及目标 IP 和端口。
服务器使用设置了 ack 标志的数据包进行回复,并使用客户端数据包的发送方 IP 和端口作为目的地。
因此,如果您的 Web 浏览器打开与 2 个不同 Web 服务器的连接,它将对每个服务器使用不同的随机高端口。