使用 Nmap 的 traceroute 选项仅显示一跳,而且速度极快。我知道它的工作方式与 traceroute 不同,因为它会尝试猜测正确的 TTL,而不是从 1 开始。但为什么 RTT 如此之快?我重复了 10 次,RTT 始终在 0.02 - 0.03 毫秒的范围内。
# nmap -Pn -T4 --traceroute xxx.xxx.xxx.xxx
Starting Nmap 6.40 ( http://nmap.org ) at 2019-06-25 12:25 PDT
Nmap scan report for xxx.xxx.xxx.xxx
Host is up (0.00013s latency).
Not shown: 991 filtered ports
PORT STATE SERVICE
<redacted>
TRACEROUTE (using port 113/tcp)
HOP RTT ADDRESS
1 0.03 ms xxx.xxx.xxx.xxx
Nmap done: 1 IP address (1 host up) scanned in 4.74 seconds
使用标准traceroute -T
显示 8 跳。重复此操作 10 次显示最终 RTT 范围在 0.77 - 1.20 毫秒之间。两台服务器均位于相距 10 英里内的快速专用互联网上,但考虑到路由器处理时间,0.03 毫秒的 RTT 似乎不切实际。
答案1
您的日志显示 Nmap 的 traceroute 通过将 TCP 探测发送到端口 113(ident 服务)来工作。我猜想您的服务器的防火墙出于某种原因阻止了到该端口的传出连接 - 它通过伪造 TCP RST 来实现这一点,Nmap 将其解释为对探测的常规响应。(因为在大多数情况下,它确实会从最后一跳收到 TCP RST。)
与之比较traceroute --tcp=113
。
拒绝传入的 Ident 连接是正常的。但是,对传出连接执行相同操作几乎总是完全无用的。(Cargo-culting 防火墙规则?)