歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux網絡 >> Linux網絡連接分析命令

Linux網絡連接分析命令

日期:2017/2/28 10:02:38   编辑:Linux網絡
Linux命令

echo “Saving current connections…”
# netstat -nta > /tmp/netstat.txt

echo “Number of connections per IP…”
# cut -b 49-75 /tmp/netstat.txt | grep -o -P “\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b” | sort | uniq -c | sort -n -r -k 1,7 | head -10

從netstat輸出結果中提取每個IP地址的連接數量,計算每個連接保持的連接時間,同時輸出10個連接數量最大的IP地址,從中可以發現是否存在單個IP建立了過多的連接到serve,采取措施來阻止這個IP。

echo “States of connections…”
# cut -b 77-90 /tmp/netstat.txt | sort | uniq -c
從netstat 輸出結果中提取不同狀態的連接數量。以此來計算各種狀態下的連接時間。
如果在SYN_RECV這個狀態下面存在大量的連接,可能存在syn-flood攻擊。

echo “Number of SYN_RECV connections per IP…”
# grep “SYN_RECV” /tmp/netstat.txt | cut -b 49-75 | cut -d ‘:’ -f1 | sort | uniq -c | sort -n -r -k 1,7 | head –10
使用grep netstat的輸出結果來看看各IP地址在SYN_RECV狀態下建立的連接,以此來計算單IP的連接情況,列出10個SYN_RECV連接數量最大的IP。如果以上命令沒有輸出,則說明SYN_RECV狀態沒有異常

根據以上列出的一些命令,你已經分析出連接到你server目前的連接基本狀態。但是這還是不夠的。因為你有可能看不到很多正在建立的“短”連接。為了分析這些新建立的連接,你可以這麼做:

echo “Count number of new connection requests over the next 100 packets…”
# time tcpdump -ns 200 -c 100 ‘(dst port http or dst port https) and tcp[13] & 2!=0′ | grep -o -P ‘\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,5}\s\>’ | cut -d ‘.’ -f 1-4 | sort | uniq -c | sort -n -r -k 1,7 | head -25
在這條命令中,參數-c定義分析的數據包數量。

Copyright © Linux教程網 All Rights Reserved