---引用自阿里雲
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