telnet 99.99.99.99 33491
Trying 99.99.99.99...
Connected to 99.99.99.99..
Escape character is '^]'
^]
telnet> close
Connection closed.
如您所见,上面的 telnet 命令显示端口 33491 已打开。
-PN
在同一个 IP 和端口上运行 NMAP显示它已关闭:
root@Ubuntu:~# nmap -PN 99.99.99.99 -p33491
Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-18 18:18 EDT
Interesting ports on xxx.com (99.99.99.99):
PORT STATE SERVICE
33491/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 2.07 seconds
在上面的例子中,telnet 显示端口打开,但 NMAP 显示端口为“已过滤”即关闭。
如何让 NMAP 显示远程主机的开放端口(禁用 ping)?
答案1
已过滤
Nmap 无法确定端口是否打开,因为数据包过滤会阻止其探测到达端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。这些端口让攻击者感到沮丧,因为它们提供的信息非常少。有时它们会以 ICMP 错误消息(如类型 3 代码 13(目标无法到达:管理上禁止通信))进行响应,但更常见的是过滤器只是丢弃探测而不做出响应。这迫使 Nmap 重试多次,以防探测因网络拥塞而不是过滤而丢弃。这会大大减慢扫描速度。
您可以要求 nmap 尝试 TCP 连接...
nmap -PN -sT -p 33491 example.com
答案2
Nmap 响应端口被过滤不是表示它已关闭。这意味着 NMap 无法做出该决定 - 它可能是打开的,也可能是关闭的。
根据手册第十五章
过滤意味着防火墙、过滤器或其他网络障碍物正在阻塞端口,因此 Nmap 无法判断它是打开还是关闭。