Linux
可以 ping 但不能從 Linux 跟踪路由。可以從 Windows 中進行這兩種操作。是什麼賦予了?
所以這就是問題所在。我在同一網路後面有兩台不同的電腦。兩者俱有相同的網關、IP 地址前綴等。
電腦 1:Windows XP IP 192.168.0.15
這台電腦可以從網路 ping並跟踪到我嘗試訪問的另一台電腦
電腦 2:Linux (debian) IP 192.168.0.54
這台電腦可以 ping 通網路外電腦,但無法跟踪到它。
這讓我相信這與防火牆無關,而是與作業系統配置有關。
路由命令的輸出:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
關於問題可能是什麼的任何想法?
那是因為 Windows 和 Linux 實現 traceroute 的方式不同。
在 Windows 上,它使用具有不同生存時間設置的 ICMP Echo 數據包來計算中間躍點。
在 Linux 上,它使用具有不同生存時間設置的 UDP 數據包來計算中間躍點。
一些網路允許一個或兩個,或者沒有。允許 ICMP 但不允許 UDP 的網路會有不同的行為。linux 上的 Ping 使用與 Windows 相同的 ICMP Echo 數據包,這解釋了為什麼它有效,但 Traceroute 無效。
此外,不同的 traceroute 程序的行為也不同。並非所有 linux 都為此使用 UDP。所以這不是普遍的。