网络排查

1.追踪网络数据包的路由途径

1)traceroute (部分Linux发行版自带)
$ sudo traceroute -T flow.jztit.com (使用TCP协议包) 
$ sudo traceroute -I flow.jztit.com (ICMP) 
$ sudo traceroute flow.jztit.com (默认UDP)
2)mtr (比traceroute功能更强大,建议结合traceroute使用,该工具可以使用yum install mtr) $ sudo mtr -c 100 -i 0.5 -r api.push.apple.com
参数说明: -c 表示发包次数,-i 表示发包间隔,-r 以报告模式显示输出。 更多的参数设定,可以通过 mtr -h 进行查看。 其中 --report 参数默认会发送10个 ICMP 包。 如果不加任何参数,会进入一个动态界面,mtr 会不断的发包,查看实时丢包率。 大多数情况使用 --report 就够了。
输出如下: Start: 2022-10-25T15:07:46+0800 HOST: wzw Loss% Snt Last Avg Best Wrst StDev
简单说一下怎么看这个报告(更详细内容可以查看mtr手册): 第一列就是各个节点的 IP 地址, 第二列(Loss%)是丢包率, 第三列(Snt)是发包书, 第四列(Last)是最后一次发包的时延, 第五列(Avg)是平均时延, 第六列(Best)是最好的一次的时延,然后是最差的一次的时延(Wrst), 以及最后一列(StDev)是数据包在每个节点上的标准偏差。 标准偏差越高,说明在这个节点上的时延越不稳定。 如果标准偏差较高,那么可以考虑查看最高时延和最低时延来判断该节点的网络状况。

2.端口连通和dns解析

1)使用nc(netcat) 或者 telnet 测试端口连通性,Connected 代表端口是连通的。
$ sudo nc -zv api.push.apple.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 17.188.161.15:443.
Ncat: 0 bytes sent, 0 bytes received in 0.43 seconds.

2)dig 解析域名对应的ip地址
$ sudo dig api.push.apple.com +short

3.抓包

使用tcpdump 抓包分析,这里给出简单的使用方法,
需要打开两个终端窗口:一个用于测试,一个用于抓包,
更多用法可以网上查找或者查看tcpdump的手册:
窗口 1 基于host过滤
$ sudo tcpdump host api.push.apple.com 回车(按下回车后会进入监听状态) 基于目标port过滤
$ sudo tcpdump dst port 443 回车(按下回车后会进入监听状态) 或者结合使用
$sudo tcpdump host api.push.apple.com and port 443
窗口 2 访问api.push.apple.com
(如果应用有在访问目的地址api.push.apple.com时,上一步tcpdump命令按下回车后便会持续抓取数据包)

手动简单端口访问测试 $ nc -zv api.push.apple.com 443
更多tcpdump使用请点击Tcpdump使用

网络排查》有1个想法

评论已关闭。