我在 192.168.0.201 上运行 Apache 并监听端口 80。namp 显示端口 80/TCP 已打开并且服务是 http。
[root@desktop ~]# nmap -p 80 -sT 192.168.0.201
Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-16 00:54 PDT
Nmap scan report for 192.168.0.201
Host is up (0.00083s latency).
PORT STATE SERVICE
80/tcp open http
MAC Address: 00:5C:53:4E:4B:00 (Dell)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
然后,我修改了 Apache 以监听端口 8080 而不是端口 80。namp 现在显示端口 80/TCP 已关闭,服务仍为 http。namp 现在还显示端口 8080/TCP 已打开,服务为 http 代理。
http-proxy 有什么意义?为什么我只改变了监听端口,它就变了?
[root@desktop ~]# nmap -p 80 -sT 192.168.0.201
Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-16 00:57 PDT
Nmap scan report for 192.168.0.201
Host is up (0.00067s latency).
PORT STATE SERVICE
80/tcp closed http
MAC Address: 00:5C:53:4E:4B:00 (Dell)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
[root@desktop ~]# nmap -p 8080 -sT 192.168.0.201
Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-16 00:57 PDT
Nmap scan report for 192.168.0.201
Host is up (0.00072s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
MAC Address: 00:5C:53:4E:4B:00 (Dell)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
[root@desktop ~]#
答案1
默认情况下,nmap 实际上并不检查正在运行的服务。它只是在其services
文件中搜索匹配的端口/协议,例如80/tcp
。(大多数程序都使用/etc/services
这个,而 nmap 有自己的“扩展版”。)恰巧,IANA 已为运行常规 HTTP 服务器分配了端口 80,为代理分配了端口 8080,因此 nmap 会报告这些内容。
如果您想要实际检查正在运行的服务,请使用-sV
,但请注意,它速度很慢并且在服务器日志中非常明显。