在项目生产环境中,我们难免会遇到各种各样的网络问题,而且网络问题一般也比较麻烦,这时就需要我们有一定的快速排查手段,这边主要是列了一些常见的排查方式
一、连接数相关
1、显示time_wait对应的ip和端口及对应的数量,按照降序排列
netstat -antp | grep TIME_WAIT | awk '{print $5}'|sort |uniq -c |sort -k1 -rn| head -n 20
如下,第一列对应的数量,第二列对应的是ip以及端口
2、显示对应的listen、estab、time_wait的数量
ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}'
如下显示了对应的listen、esta等连接数相应的数量
3、显示estab对应的数量
netstat -antp | grep ESTAB | awk '{print $5}'|sort|uniq -c |sort -k1 -rn | head -n 20
二、域名相关
1、查询域名是否正常解析
ping www.baidu.com
2、查看域名对应的dns解析和dns服务器
nslookup www.baidu.com
如下显示,显示了对应的dns服务ip和端口以及域名对应的解析ip
3、从dns服务器上查询主机信息
dig www.baidu.com
也可以+short精简显示对应的信息
dig +short www.baidu.com
如下
也可以查看对应的/etc/resolv.conf
cat /etc/resolv.conf
如下显示的是对应的dns服务器地址
4、查看主机与目标主机之间的数据包路由路径
traceroute www.baidu.com
探测数据包会向每个网关发送3个数据包,后面的三个时间对应的每个探测包服务器的响应时间
三、http相关
1、输出http交互的整个通信过程
curl -vvv http://www.baidu.com
如下显示了对应http的交互过程