netstat命令用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。netstat是在內核中訪問網絡及相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關報告。
netstat輸出結果分析
說明:
從整體上看,netstat的輸出結果可以分為兩個部分:
一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。
另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用於本機通信,性能可以提高一倍)。
Proto顯示連接使用的協議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示連接到套接口的其它進程使用的路徑名。
套接口類型:
-t :TCP
-u :UDP
-raw :RAW類型
--unix :UNIX域類型
--ax25 :AX25類型
--ipx :ipx類型
--netrom :netrom類型
狀態說明:
LISTEN:偵聽來自遠方的TCP端口的連接請求
SYN-SENT:再發送連接請求后等待匹配的連接請求(如果有大量這樣的狀態包,檢查是否中招了)
SYN-RECEIVED:再收到和發送一個連接請求后等待對方對連接請求的確認(如有大量此狀態,估計被flood攻擊了)
ESTABLISHED:代表一個打開的連接
FIN-WAIT-1:等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN-WAIT-2:從遠程TCP等待連接中斷請求
CLOSE-WAIT:等待從本地用戶發來的連接中斷請求
CLOSING:等待遠程TCP對連接中斷的確認
LAST-ACK:等待原來的發向遠程TCP的連接中斷請求的確認(不是什么好東西,此項出現,檢查是否被攻擊)
TIME-WAIT:等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
CLOSED:沒有任何連接狀態
常用命令:
顯示網卡列表
1netstat
–i
顯示網絡統計
1netstat
-s
常用組合:
12netstat
-lntup
說明: l:listening n:num t:tcp u:udp p:process
顯示關於以太網的統計數據
1234netstat
–e
說明:
用於顯示關於以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)
顯示路由信息
1netstat
–r
1route –n 【也可以顯示路由信息】
統計機器中網絡連接各個狀態個數
1netstat
-an |
awk
'/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '
把狀態全都取出來后使用uniq -c統計后再進行排序
1netstat
-ant|
awk
'{print $6}'
|
sort
|
uniq
–c
查看連接某服務端口最多的的IP地址
1netstat
-ant|
grep
"192.168.25.*"
|
awk
'{print $5}'
|
awk
-F:
'{print $1}'
|
sort
-nr|
uniq
–c
找出程序運行的端口
1netstat
-ap |
grep
ssh
在 netstat 輸出中顯示 TCP連接信息
netstat -pt
說明:netstat -p 可以與其它開關一起使用,就可以添加 “PID/進程名稱”
找出運行在指定端口的進程
其他注意事項:
小技巧: netstat -lnt | grep ssh | wc -l -->只要大於2個,ssh服務就是好的