從伺服器上使用命令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...