問題現象
-
服務訪問異常:業務回應時間顯著延長,出現請求逾時或服務無法訪問的情況。
-
監控指標過高:通過ECS控制台或CloudMonitor查看,執行個體的公網出方向頻寬使用率持續高於80%,接近或達到頻寬上限或網路連接數突然增加。
-
收到監控警示:收到簡訊或郵件,提示網路頻寬使用率已超過預設的警示閾值。
問題原因
-
異常進程或惡意程式:執行個體被植入挖礦程式、木馬病毒或被用作DDoS攻擊的肉機,此類惡意程式會產生大量異常網路流量。
-
網路攻擊:執行個體對外提供服務的連接埠遭受了如應用程式層CC攻擊、DDoS攻擊、暴力破解等惡意訪問,導致入頻寬被大量無效請求佔滿。
-
執行個體網路規格不足:隨著業務發展,執行個體的頻寬規格已無法承載正常的業務流量,達到網路效能瓶頸。
解決方案
首先通過sar工具定位流量異常的網卡,然後使用iftop工具(定位消耗頻寬的對端IP)或nethogs工具(定位高流量進程)分析網卡流量,最後根據進程和IP性質採取相應措施。
步驟一:定位高流量網卡
通過sar工具確認高流量網卡,明確排查目標。
通過VNC串連登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過VNC遠端連線。輸入帳號和密碼,登入ECS執行個體。
-
統計網路介面資料。
# -n DEV: 報告網路裝置統計資訊 # 1 5: 每1秒採樣一次,共採樣5次 sudo sar -n DEV 1 5 -
確定高流量網卡。
重點關注
Average的txkB/s(平均出網頻寬)。通過對比,找出數值最高的IFACE(網卡名稱)。rxkB/s表示平均入網頻寬速率。Linux 5.10.134-19.1.al8.x86_64 (iZbp1e5xxx) 11/14/2025 _x86_64_ (2 CPU) 04:11:13 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 04:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:14 PM eth0 317.00 580.00 21.36 933.00 0.00 0.00 0.00 0.00 04:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:14 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 04:11:15 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:15 PM eth0 328.00 582.00 22.34 943.08 0.00 0.00 0.00 0.00 04:11:15 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:15 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 04:11:16 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:16 PM eth0 352.00 595.00 24.08 935.58 0.00 0.00 0.00 0.00 04:11:16 PM eth1 1.00 1.00 0.04 0.04 0.00 0.00 0.00 0.00 04:11:16 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 04:11:17 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:17 PM eth0 347.00 581.00 23.58 943.02 0.00 0.00 0.00 0.00 04:11:17 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:17 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 04:11:18 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:11:18 PM eth0 367.00 623.00 24.98 952.79 0.00 0.00 0.00 0.00 04:11:18 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 342.20 592.20 23.27 941.49 0.00 0.00 0.00 0.00 Average: eth1 0.20 0.20 0.01 0.01 0.00 0.00 0.00 0.00樣本中,
eth0網卡的txkB/s最高,因此eth0為高流量網卡。
步驟二:分析並處理高流量問題
-
分析網卡流量。
-
iftop:以“串連視角”監控網卡流量,可找出與本機通訊流量最大的IP地址和連接埠。Web服務可通過
iftop定位高流量IP,並結合logwatch等工具分析其Web日誌,以判定流量合規性。 -
nethogs:以“進程視角”監控網卡流量,可找出佔用網路頻寬最大的進程。
iftop工具
-
安裝
iftop工具。-
Alibaba Cloud Linux及Centos類型
sudo yum install -y iftop -
Ubuntu及Debian類型
sudo apt update sudo apt install -y iftop
-
-
監控高流量網卡。
<IFACE>請替換為步驟一定位的高流量網卡名稱。# -i <IFACE>: 指定監控的網卡為<IFACE> # -P: 顯示連接埠號碼 (Port) sudo iftop -i <IFACE> -P以高流量網卡名稱為
eth0為例,執行sudo iftop -i eth0 -P。 -
分析網卡流量,尋找消耗頻寬的對端IP。
19.1Mb 38.1Mb 57.2Mb 76.3Mb 95.4Mb iZbp1e5w04k4l xxx => 140.205.11 xxx 4.32Mb 3.17Mb 1.06Mb <= 62.9Kb 47.7Kb 15.1Kb iZbp1e5w04k4l xxx => 140.xxx 0b 164Kb 41.1Kb <= 0b 4.97Kb 1.30Kb iZbp1e5w04k4l xxx => 140.xxx 796Kb 159Kb 40.1Kb <= 15.5Kb 3.10Kb 804b iZbp1e5w04k4l xxx => 140.xxx 0b 89.9Kb 29.2Kb <= 0b 2.97Kb 882b iZbp1e5w04k4l xxx => 140.xxx 0b 83.9Kb 46.4Kb <= 0b 2.55Kb 1.25Kb iZbp1e5w04k4l xxx => 140.xxx 0b 78.9Kb 50.7Kb <= 0b 2.50Kb 1.52Kb iZbp1e5w04k4l xxx => 140.xxx 0b 71.0Kb 89.6Kb <= 0b 2.51Kb 2.85Kb iZbp1e5w04k4l xxx => 140.xxx 0b 66.1Kb 26.2Kb <= 0b 2.29Kb 822b iZbp1e5w04k4lv xxx => 140.xxx 0b 65.6Kb 16.4Kb <= 0b 1.62Kb 416b iZbp1e5w04k4l xxx => 140.xxx 0b 61.1Kb 23.2Kb <= 0b 1.77Kb 656b iZbp1e5w04k4l xxx => 140.xxx 0b 56.2Kb 55.6Kb <= 0b 1.53Kb 1.54Kb iZbp1e5w04k4lv xxx => 140.xxx 0b 52.1Kb 75.3Kb <= 0b 1.65Kb 2.40Kb iZbp1e5w04k4l xxx => 140.xxx 0b 52.0Kb 13.0Kb <= 0b 1.42Kb 363b ───────────────────────────────────────────────────────────────────────────────────────────────────── TX: cum: 80.9MB peak: 14.3Mb rates: 7.15Mb 6.52Mb 11.2Mb RX: 1.91MB 440Kb 146Kb 154Kb 276Kb TOTAL: 82.8MB 14.6Mb 7.30Mb 6.67Mb 11.4Mb即時資料流量資訊由高到低排列,其中,
=>符號的流量資訊,即本機向對端IP發送資料的速率。樣本中在過去2秒內,本機向IP140.205.11.x的平均出網流量為4.32Mb/s。 -
輸入
q,退出iftop工具介面 -
查看連接埠對應的進程。
<消耗頻寬的對端IP>通過上一步擷取。sudo netstat -antp | grep <消耗頻寬的對端IP>樣本輸出如下。
tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker tcp 0 172.16.0.xxx xxx 140.205.11.xxx xxx ESTABLISHED 2282/nginx: worker樣本中,本地IP為
172.16.0.x,對端IP為140.205.11.x,對應進程為nginx:worker,PID為2282。
nethogs工具
使用樣本
-
安裝nethogs工具。
-
Alibaba Cloud Linux及Centos類型
sudo yum install -y nethogs -
Ubuntu及Debian類型
sudo apt update sudo apt install -y nethogs
-
-
監控高流量網卡。
<IFACE>請替換為步驟一定位的高流量網卡名稱。# 預設監控間隔為1秒,可通過-d指定監控間隔。 sudo nethogs <IFACE>以高流量網卡名稱為
eth0為例,執行sudo nethogs eth0。 -
分析網卡流量。
NetHogs version 0.8.5 PID USER PROGRAM DEV SENT RECEIVED 2282 nginx nginx: worker process 696.898 19.289 KB/sec 15823 root sshd: root@pts/3 0.773 0.231 KB/sec ? root 172.16.xxx.54.137:80 0.000 0.000 KB/sec ? root 172.16.xxx.26.209:80 0.000 0.000 KB/sec ? root 172.16.xxx.45.106:80 0.000 0.000 KB/sec ? root 172.16.xxx.4.191:80 0.000 0.000 KB/sec ? root 172.16.xxx.154.78:80 0.000 0.000 KB/sec 1749 root /usr/local/cloudmonitor/bin/argusagent 0.000 0.000 KB/sec ? root 172.16.xxx.54.135:80 0.000 0.000 KB/sec ? root 172.16.xxx.26.207:80 0.000 0.000 KB/sec ? root 172.16.xxx.4.217:80 0.000 0.000 KB/sec ? root 172.16.xxx.89.115:80 0.000 0.000 KB/sec 6215 root /opt/aliyun-security/ilogtail/ilogtail-aliyun-security 0.000 0.000 KB/sec ? root 172.16.xxx.154.78:80 0.000 0.000 KB/sec ? root 172.16.xxx.83.69:80 0.000 0.000 KB/sec ? root 172.16.xxx.54.132:80 0.000 0.000 KB/sec ? root 172.16.xxx.26.210:80 0.000 0.000 KB/sec ? root 172.16.xxx.4.217:80 0.000 0.000 KB/sec ? root 172.16.xxx.89.113:80 0.000 0.000 KB/sec ? root 172.16.xxx.154.78:80 0.000 0.000 KB/sec 1806 root /usr/local/aegis/aegis_client/aegis_12_61/AliYunDun 0.000 0.000 KB/sec 2810 root /usr/local/aegis/alihips/AliHips 0.000 0.000 KB/sec 6172 root /opt/aliyun-security/rapt-daemon/rapt-daemon 0.000 0.000 KB/sec ? root unknown TCP 0.000 0.000 KB/sec其中,
SENT表示發送的流量資訊,即本機向對端IP(接收方)發送資料的速率。樣本中流量佔用最高的進程為nginx:worker process,出網流量約為696KB/s,其進程ID為2282,輸入q可退出工具互動介面。
-
-
根據進程或對端IP選擇解決方案。
-
若定位到的進程(如wget、curl等下載工具,或未知程式)行為可疑,或其通訊的對端IP地址為非法IP:
-
終止異常進程:通過
sudo kill -15 <PID>結束異常進程。<PID>請替換為定位的高流量進程PID。重要結束進程前,請務必確認該進程非核心業務進程,避免造成業務中斷。
-
攔截非法IP:通過管理安全性群組規則攔截已知非法IP地址。若遭遇應用程式層CC攻擊且攻擊源IP分散,安全性群組規則的防禦效率將顯著降低。此時,建議部署Web Application Firewall(Web Application Firewall,簡稱WAF)進行專項防護。具體操作,請參見為ECS執行個體接入WAF防禦CC攻擊。
-
查殺惡意程式:啟用Security Center的病毒查殺功能,對執行個體執行全面掃描並清除檢測到的惡意程式。
-
應對高頻DDoS攻擊:當遭受高頻DDoS或CC攻擊時,峰值流量可能超出DDoS基礎防護的黑洞閾值,導致雲產品進入黑洞狀態而無法訪問。在此情境下,需啟用DDoS高防服務以確保持續可用性。
-
-
若高流量為正常業務進程產生,表明為業務本身的正常需求:
-
升級頻寬:當前執行個體的網路規格已成為瓶頸,應升級執行個體頻寬。
-
最佳化程式:檢查業務代碼是否存在可最佳化之處,例如減少不必要的資料轉送、增加緩衝、壓縮資料等。
-
限制速率:若業務允許,可使用
iptables等工具對特定IP或連接埠的流量進行限速,避免單個使用者或服務佔滿全部頻寬。
-
-
若未存在佔用頻寬異常的進程,但整體頻寬使用率依然居高不下,表明執行個體承載的總業務量超過了其網路處理能力,應升級執行個體頻寬。
-
後續建議
-
建議對系統指標進行周期性採集以供持續分析,請參見使用atop工具監控Linux系統指標。
-
配置執行個體監控與警示環境,便於後續風險和異常的通知。