网络调试
(重定向自 Tcpdump)
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是网络上数据包的多平台用户空间接口。应该强调的是,它们确实可以看到,可以捕获任何到达本地 NIC 的入站数据包。无论本地软件防火墙是否阻止这些数据包。另一方面,它们只能看到防火墙通过的出站数据包:[1]
关于 tcpdump 的简短、平易近人的介绍,带有示例,请访问:[2]