---引用自阿里云
mtr (My traceroute)也是几乎所有 Linux 发行版本预装的网络测试工具。他把 ping和 traceroute 的功能并入了同一个工具中,所以功能更强大。
mtr 默认发送 ICMP 数据包进行链路探测。可以通过 -u 参数来指定使用 UDP 数据包用于探测。
相对于 traceroute 只会做一次链路跟踪测试,mtr 会对链路上的相关节点做持续探测并给出相应的统计信息。所以,mtr能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使用。
----
mtr非常合适用于测试网络链路波动的场景。
#mtr -c 100 -n -i0.1 -r [dst_ip] //直接接需要测试的ip
常用参数介绍:
-c: 测试的次数100次;
-n : --no-dns,强制显示ip地址,并且不解析主机名;
-i: --interval 间隔时间
-r : 计算测试的次数,打印出最终的结果并退出
Case:
记一次服务器无法登陆的故障的排查。先剧透后面查出来的原因是被qiang了,泪目。
主要把排查的逻辑讲的清楚明白,最为重要。服务器的外网ip就匿了,用 [ip] 代替了。
问题出现的症状是:ping可以通但伴随少量丢包,telnet [ip] 22端口也能通,但是打死都无法ssh登陆。
Solution:
1、通过cosole登陆服务器:执行如下命令简单排查:
查看ssh服务状态:systemctl status sshd:
查看sshd服务是否启动:netstat -ntlp |grep 22
查看防火墙并关闭:systemctl status firewalld; systemctl stop firewalld
以上排查的结果是sshd服务正常,22端口正常监听,而且防火墙也是关闭的
2、排查网络链路的问题:
获取本地网络的出口ip地址: http://ipaddress.com,图中匿掉的就是出口ip地址。
利用mtr工具(上面简单说了mtr命令用法)排查网络链路问题
#mtr -c 100 -n -i0.1 -r [ip] //此ip是上面获取到的外网ip,在服务器上进行mtr测试
这样测试后,发现网络链路也是正常的,这个时候就比较有意思了。
3、因为考虑到是阿里云的服务器,有安全组的设置,以及云主机自己特殊的网络配置。
a.先确认安全组的设置是正确的,22端口都对外开放;
b.在控制台 ssh 127.0.0.1 这一步主要是检查sshd服务是否正常。
以上2步执行完了,还是没发现问题。
打开自己的翻墙工具,在海外随便一台服务器登陆这台机器,都是可以登陆的。后面怀疑是GFW墙了(具体原因就不阐述了),把服务器上的服务迁移之后,空闲了半个月之后就又可以正常登陆,真的 great gF*W