Linux伺服器大量向外發包問題排查

2021-07-11 04:21:07 字數 3190 閱讀 6448

從伺服器上使用命令sar -n dev 2 10 ,確實出現大量發包的問題,(下邊是正常的,異常的情況eth0txpck/s 10000左右了)

先進行限速或者拔掉網線:

開始之前,先要清除 eth0所有佇列規則

tc qdisc del dev eth0 root 2> /dev/null > /dev/null

1) 定義最頂層(根)佇列規則,並指定 default 類別編號

tc qdisc add dev eth0 root handle 1: htb default 20

tc class add dev eth0 parent 1: classid 1:20 htb rate 2000kbit

(1kb/s = 8kbit/s)

tc命令格式:

tc qdisc [ add | change | replace | link ] dev dev [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

tc class [ add | change | replace ] dev dev parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]

tc filter [ add | change | replace ] dev dev [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id

顯示tc [-s | -d ] qdisc show [ dev dev ]

tc [-s | -d ] class show dev dev tc filter show dev dev

檢視tc的狀態

tc -s -d qdisc show dev eth0

tc -s -d class show dev eth0

刪除tc規則

tc qdisc del dev eth0 root

檢視狀態:

topcpu和mem都正常,看不出異常的程序。

yum install -y tcpdump

tcpdump -nn

找到大量的ip位址

本機(192.168.35.145)和主機114.114.110.110之間的資料

tcpdump -n -i eth0 host 192.168.35.145 and 114.114.110.110

還有擷取全部進入伺服器的資料可以使用以下的格式

tcpdump -n -i eth0 dst 192.168.35.145

或者伺服器有多個ip 可以使用引數

tcpdump -n -i eth0 dst 192.168.35.145  or  192.168.35.155

tcpdump -n -i eth0 dst 192.168.35.145 or 192.168.35.155 and tcp

從本機出去的資料報

tcpdump -n -i eth0 src 192.168.35.145 or 192.168.35.155

tcpdump -n -i eth0 src 192.168.35.145 or 192.168.35.155 and port ! 22 and tcp

或者可以條件可以是or  和 and  配合使用即可篩選出更好的結果。

可以將異常ip加入到/etc/hosts.deny中,或者防火牆設定下

之後安裝個nethogs

install howto:

download the latest epel-release rpm from (乙個是32位、乙個是64位連線)

install epel-release rpm:

# rpm -uvh epel-release*rpm(記得yum clean all和yum makecache下)

install nethogs rpm package:

# yum install nethogs

執行nethogs

nethogs

或者nethogs eth0

如果網絡卡繫結過nethogs bond0

-------------------------

rpm -uvh epel-release-6-8.noarch64.rpm

yum clean all

yum makecache

yum install nethogs

nethogs

--------------------------

下圖顯示各程序當前網路使用情況:

按「m」鍵可以切換到統計檢視,顯示各程序總的網路使用情況

按「ctrl+c」或「q」退出監控

[root@localhost ~]# nethogs --help  

nethogs: invalid option -- '-'  

usage: nethogs [-v] [-b] [-d seconds] [-t] [-p] [device [device [device ...]]]  

-v : 顯示版本資訊,注意是大寫字母v.  

-d : 延遲更新重新整理速率,以秒為單位。預設值為 1.  

-t : 跟蹤模式.  

-b : bug 狩獵模式 — — 意味著跟蹤模式.  

-p : 混合模式(不推薦).  

裝置 : 要監視的裝置名稱. 預設為 eth0  

當 nethogs 執行時, 按:  

q: 退出  

m: 總數和當前使用情況模式之間切換 

找到大量發包的程序,之後kill掉,在排查下這個程序是什麼程式,檔案路徑在**,刪除掉異常的檔案。

目前問題解決了,觀察一段時間,看看問題是否還會發生,防火牆將公網ip進行了訪問限制,只允許辦公地點訪問,增加安全。

Linux伺服器發包

關於伺服器網路流量異常,卡死,遭受入侵,對外發包.以下只是一些小工具,用於檢測流量及哪些程序有問題,需要豐富的經驗配合。yum install ifstat nload iptraf sysstat 大多數是因為php ddos木馬原因導致發包 watch ifconfig 檢視資料報新增情況 if...

減少linux伺服器大量TIME WAIT

將專案部署到linux上後,發現系統有大量的time wait狀態的鏈結,大量time wait狀態的鏈結不能被及時 導致的結果就是系統可用socket被耗盡而無法處理新的請求。對於http協議的短連線請求,應該要防止產生大量的time wait,我們可以通過設定linux網路引數來達到目的,步驟如...

伺服器請求大量COLSE WAIT排查

生產環境的伺服器突然訪問無響應,而我的服務是用來接收上游推送資料用的,功能也是最近新上線的 heap configuration minheapfreeratio 40 maxheapfreeratio 70 maxheapsize 8589934592 8192.0mb newsize 10737...