Linux 伺服器頻寬異常跑滿分析解決
一、使用 nethogs 進行排查
[root@iZ23kick03xZ ~]# nethogs eth0
通過 nethogs 工具來檢視某一網絡卡上程序級流量資訊
假定當前 eth0 網絡卡跑滿,則執行命令 nethogs eth0,在右邊的紅框中可以看到每個程序的網路頻寬情況,左邊紅框顯示了程序對應的 PID,在此可以確定到底是什麼程序佔用了系統的頻寬。
如果確定是惡意程式,可以通過 kill -TERM pid 來終止程式。
如是 Web 服務程式,則可以使用 iftop 等工具來查詢具體 IP 來源,然後分析 Web 訪問日誌是否為正常流量,日誌分析也可以使用 logwatch 或 awstats 等工具進行分析。
二、使用 iftop 工具排查
[root@iZ23kick03xZ ~]# iftop -i eth0 -P
注:-P 引數會將請求服務的埠顯示出來,也就是說是通過伺服器哪個埠建立的連線,看內網流量執行 iftop -i eth0 -P 命令。
三、使用tcpdum命令進行抓包
[root@iZ23kick03xZ ~]# tcpdump tcp port 80 -nnei eth0 -w web.pcap
簡單點寫就是:
[root@iZ23kick03xZ ~]# tcpdump -i eth0 -w web.pcap
備註:
-w 是將輸出內容儲存到檔案,而web.pcap是一個二進位制檔案
這個是在wireshark中開啟的web.pcap檔案
點選 統計--->對話,顯示如下圖所示
分析
linux下實用iptables封ip段的一些常見命令
封單個IP的命令是:
iptables -I INPUT -s 106.45.233.109 -j DROP
iptables -I OUTPUT -s 106.45.233.109 -j DROP
封IP段的命令是:
iptables -I INPUT -s 106.45.233.0/24 -j DROP
iptables -I OUTPUT -s 106.45.233.0/24 -j DROP
封整個段的命令是:
iptables -I INPUT -s 106.0.0.0/8 -j DROP
iptables -I OUTPUT -s 106.0.0.0/8 -j DROP
封幾個段的命令是:
iptables -I INPUT -s 106.45.233.0/24 -j DROP
iptables -I OUTPUT -s 106.45.233.0/24 -j DROP
iptables -I INPUT -s 60.210.246.0/24 -j DROP
iptables -I OUTPUT -s 60.210.246.0/24 -j DROP