知識庫


?

netstat命令工具使用詳解

日期:2019-11-19 16:23 瀏覽次數: 分類:知識庫 來源:鄭州冰川網絡技術有限公

  netstat命令用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。netstat是在內核中訪問網絡及相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關報告。
-a或--all:顯示所有連線中的Socket; 
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址; 
-c或--continuous:持續列出網絡狀態; 
-C或--cache:顯示路由器配置的快取信息; 
-e或--extend:顯示網絡其他相關信息; 
-F或--fib:顯示FIB; 
-g或--groups:顯示多重廣播功能群組組員名單; 
-h或--help:在線幫助; 
-i或--interfaces:顯示網絡界面信息表單; 
-l或--listening:顯示監控中的服務器的Socket; 
-M或--masquerade:顯示偽裝的網絡連線; 
-n或--numeric:直接使用ip地址,而不通過域名服務器; 
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱; 
-o或--timers:顯示計時器; 
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱; 
-r或--route:顯示Routing Table; 
-s或--statistice:顯示網絡工作信息統計表; 
-t或--tcp:顯示TCP傳輸協議的連線狀況; 
-u或--udp:顯示UDP傳輸協議的連線狀況; 
-v或--verbose:顯示指令執行過程; 
-V或--version:顯示版本信息; 
-w或--raw:顯示RAW傳輸協議的連線狀況; 
-x或--unix:此參數的效果和指定"-A unix"參數相同; 
--ip或--inet:此參數的效果和指定"-A inet"參數相同。
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:沒有任何連接狀態
常用的命令展示
顯示網卡列表
netstat -i
顯示組播組的關系
netstat -g
顯示網絡統計
netstat -s
常用組合:
netstat -lntup

說明: l:listening   n:num   t:tcp  u:udp  p:process
顯示關于以太網的統計數據
netstat –e
說明:用于顯示關于以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)
顯示路由信息
netstat –r
route –n   【也可以顯示路由信息】

統計機器中網絡連接各個狀態個數
把狀態全都取出來后使用uniq -c統計后再進行排序
netstat -ant|awk '{print $6}'|sort|uniq –c

查看連接某服務端口最多的的IP地址
netstat -ant|grep "192.168.25.*"|awk '{print $5}'|awk -F: '{print $1}'|sort -nr|uniq –c

找出程序運行的端口
netstat -ap | grep ssh

 
在 netstat 輸出中顯示 TCP連接信息
netstat -pt
說明:netstat -p 可以與其它開關一起使用,就可以添加 “PID/進程名稱”
找出運行在指定端口的進程
其他注意事項:
小技巧: netstat -lnt | grep ssh | wc -l -->只要大于2個,ssh服務就是好的

31选7规则