Linux突发网络故障常用排查的命令
测试环境
- 系统:Ubuntu 18
- 硬件:单核2G
ping
用于测试客户机和目标主机通信状况,是否畅通。以及测量通信的往返时间,判断网络质量的好坏。
它通过发送ICMP回显请求消息到目标主机,并等待返回的ICMP回显回复消息。
ping的返回结果中,time是指一个回显请求发送到目标主机并收到回显回复所需的时间。这个时间通常以毫秒计。
测试
例如测试与百度服务器的通信
ping www.baidu.com
能够有返回的状态信息,表示是正常的。
推荐值一般20毫秒以内,都表示状态正常,大于100,表示网络出现严重延迟。
traceroute
用于追踪客户机到目标主机网络的路径,以及网络节点的延迟,当需要了解网络数据包的传输路径,就会使用到这个命令。
测试
假设测试追踪客户机到百度服务器的过程。
traceroute www.baidu.com
可以看到会经过客户机的上层路由,再到互联网的路由节点,以及到每个节点的响应时间。
nslookup
在搭建DNS服务器的时候使用过这个命令,讲的是创建和配置好DNS服务器后,测试客户机DNS是否生效。我们在Linux网络故障排查里也需要用到这个命令。用于域名当前解析是否正常,或者是想了解当前域名解析的具体IP,可以使用它来测试。
测试
例如测试解析百度百度服务器
nslookup www.baidu.com
可以看到百度服务器IPv4和IPv6对应的两个域名及IP地址
ip route
查看本机路由表和看一下本机的路由规则配置是否正确的
ip route
telnet
用于建立与目标主机的连接,常用于测试,判断目标主机上的服务端口是否打开
测试
假设我想测试百度服务器的80端口
telnet www.baidu.com 80
会返回一个提示,说明对方主机的80端口已打开
当与目标服务器的端口建立连接成功,就能反映出与目标服务器的网络是畅通的,端口访问也是正常的。