网络调试
Ping & Tracepath/Traceroute
ping
命令可以帮助测试与特定主机的连接。
第一步是验证与默认网关的连接(将 IP 地址替换为您自己的默认网关)。
$ ping -c4 192.168.1.1
当删除 -c4
参数时,ping 将无限期地继续。 可以通过点击“Control-C”来中止。
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=0.193 ms 64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=0.190 ms 64 bytes from 192.168.1.1: icmp_req=3 ttl=64 time=0.192 ms 64 bytes from 192.168.1.1: icmp_req=4 ttl=64 time=0.189 ms --- 192.168.1.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.165/0.184/0.193/0.014 ms
上面的输出表明默认网关是可达的。 当显示“Destination Host Unreachable
”消息时,请仔细检查 IP 地址、子网掩码和默认网关配置。 当 ICMP 流量不允许到达默认网关时(被防火墙、路由器等阻止),也可能显示此消息。
下一步是验证与配置的 DNS 服务器的连接。 当没有收到回复时,可以使用 tracepath
或 traceroute
来验证到所述服务器的路由,并了解问题所在。
$ traceroute 8.8.4.4
Traceroute 也使用 ICMP 来确定路径,因此当 ICMP 流量被阻止时,也可能出现“no reply”的答案。
Tcpdump
tcpdump 及其底层库 libpcap 是多平台用户空间接口,用于网络上的数据包。 应该强调的是,它们确实可以看到、可以捕获任何到达本地网卡的入站数据包。 无论本地软件防火墙是否阻止这些数据包,都无关紧要。 另一方面,它们只能看到防火墙通过的出站数据包:[1]
关于 tcpdump 的简短、平易近人的介绍,以及示例,请访问:[2]