排查網絡的幾個步驟和幾款工具
先拋個問題,如果哪天突然發現IDC機房 和 公有云 之間的服務無法訪問了(排除服務本身的問題之外,可能是網絡不通,也可能是網絡變的很慢使得資源無法及時下載,從而導致服務無法訪問)。
該如何分析這個問題呢?經過以下5步,基本能定位出問題:
- 確認IDC機房和公有云之間的網絡是否連通
- 確認IDC機房和公有云之間的網速如何
- 確認IDC機房的機器寬帶是否受限
- 確認公有云的機器寬帶是否受限
- 確認IDC機房和公有云打通的VPN通道是否正常
一、確認IDC機房和公有云之間的網絡是否連通
使用ping 命令,如果能ping通,說明網絡沒問題。
二、確認IDC機房和公有云之間的網速如何
確認網速可以通過如下幾款工具:wget、iftop、nload、vnstat。
1.wget
使用wget判斷網速是否正常:
- 在云上,使用wget訪問ID機房的服務,查看網速。
- 在IDC機房,使用wget訪問云上的服務,查看網速。
wget時,比對下 域名訪問 和 IP地址訪問 的網速差別。如果域名訪問 和 IP地址訪問的 網速區別較大,則可以判斷是域名解析有問題。如果區別不大,但是都比較慢的話,那繼續往下判斷。
wget http://nexus.dev.mangod.top/repository/maven-releases/top/mangod/xxx-cloud-server/3.0.2-RELEASE/xxx-cloud-server-3.0.2-RELEASE.jar
wget http://10.20.0.10:8081/repository/maven-releases/top/mangod/xxx-cloud-server/3.0.2-RELEASE/xxx-cloud-server-3.0.2-RELEASE.jar
wget http://sql.dev.mangod.top/js/oneUtils.20efc452.dll.js
wget http://10.10.5.53:9000/js/oneUtils.20efc452.dll.js
2.iftop
iftop 是一個基于文本的實時流量監控工具,可以顯示網絡接口的實時流量情況,包括上傳和下載速度。安裝并使用 iftop:
yum install iftop # CentOS/RHEL
iftop -i <interface> # 例如:sudo iftop -i eth0
3.nload
nload 是另一個基于文本的實時網絡流量監控工具,可以直觀地顯示網絡流量。安裝并使用 nload:
yum install nload # CentOS/RHEL
nload -u K # 顯示上傳速度,-u 選項表示上傳速度,-d 表示下載速度,K 表示以 KB/s 為單位顯示
4.vnstat
vnstat 是一個基于命令行的網絡流量監控工具,它可以提供有關網絡接口流量的詳細統計信息,包括總體流量和每天/每月的流量使用情況。安裝并使用 vnstat:
yum install vnstat # CentOS/RHEL
# 例如:vnstat -l -i eth0,這將顯示所選網絡接口的實時上傳和下載流量。
vnstat -l -i <interface>
5.安裝工具問題
如果在 CentOS 系統上安裝軟件包時,如果遇到沒有可用軟件包的問題,嘗試以下2種方法:
(1) 更新軟件源: 首先嘗試更新軟件源,確保系統可以找到最新的軟件包信息。運行以下命令:
yum update
這將更新系統上已安裝軟件包的版本并更新可用軟件包列表。
(2) 啟用額外的倉庫: 某些軟件包可能不在默認的 CentOS 倉庫中。可以考慮啟用其他額外的軟件源,例如 EPEL (Extra Packages for Enterprise Linux) 倉庫。安裝 EPEL 倉庫:
yum install epel-release
三、確認機器寬帶是否受限
定位出網速問題后,確認是否是因為 機器的寬帶受限。通過Iperf工具確認IDC機房機器 和 公有云機器 是否有寬帶限制。
網絡帶寬工具Iperf
Iperf 是一個用于測試網絡帶寬的工具,它可以測量網絡之間的數據傳輸速度。它可以在兩臺計算機之間執行,一臺作為服務器,另一臺作為客戶端。
以下是使用 iperf 進行基本網絡帶寬測試的步驟:
(1) 安裝 Iperf:在 CentOS 中,Server 和 Client端,都使用以下命令安裝 iperf:
yum install iperf
(2) 運行 Iperf 服務器:在Server端,運行以下命令啟動 Iperf 服務器:
iperf -s
# 選擇一臺機器做服務端,默認時間1s,默認端口5201
# 設置監控時間10s,端口為5201,防火墻端口要放行
iperf3 -s -i 10 -p 5201
這將啟動一個默認監聽端口為 5001 的服務器。
(3) 運行 Iperf 客戶端:在Client端,運行以下命令連接到Server端,并測試帶寬:
iperf -c <server_IP>
# 選擇另外一臺做為客戶端
# 指定-c測速服務器IPx.x.x.x,-p指定端口為5201,-t測速時間5s,-P指定發送連接數10,-R表示下載測速
iperf3 -c x.x.x.x -p 5201 -t 5 -P 10 -R
四、確認IDC機房和公有云打通的VPN通道是否正常
確認帶寬后,如果還是沒定位出問題,則繼續判斷VPN通道是否正常。
1.使用traceroute查看
首先通過traceroute確認兩邊的路由過程是否正常。traceroute 命令可以顯示數據包從當前機器到達目標 IP 的路徑,并顯示經過的每個路由器(躍點)的 IP 地址和延遲。在終端中輸入以下命令:
traceroute <目標IP地址>
traceroute 的輸出可能會因網絡拓撲和路由器配置而有所不同。有時某些路由器可能配置為不響應traceroute 請求,因此可能會顯示星號(*)或超時信息。
2.MTR工具使用
也可以使用更強大的MTR工具。MTR(My Traceroute)是一個網絡診斷工具,結合了 traceroute 和 ping 的功能,用于檢測網絡路徑中每個路由器的延遲、丟包率和路徑信息。它能夠提供更詳細的網絡路由信息和整個路徑的網絡狀況。
MTR可用于網絡故障排除、檢測網絡瓶頸、評估網絡連接質量等場景。通過它提供的綜合性信息,可以更好地理解數據在網絡中傳輸的路徑和條件,從而更有效地解決網絡問題。
(1) 安裝MTR
使用 yum 包管理器進行安裝:
sudo yum install mtr
(2) 使用MTR
mtr <目標IP地址>
至此,問題基本能定位出來。
如果還是無法定位出來,那就看下IDC機房 和 公有云的 VPN通道配置是否正確。有可能運營商給的IDC機房的IP地址變更過 或者 運營商那邊對這個IP做過什么操作。如果是這種問題,可以考慮更換出口IP。
3.CIP.CC工具獲取出口IP
在命令行執行curl cip.cc ,能夠獲取到出口IP,并將其顯示在命令行終端上。