netstat命令能夠用來顯示於IP,TCP,UDP和ICMP協議相關的統計數據,通常用於檢查本機各個端口的網絡鏈接狀況。html
netstat是在內核中訪問網絡及相關信息程序,能提供TCP鏈接,TCP和UDP的連接,進程內存管理報告。linux
nestat支持的參數有shell
-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」參數相同。
命令1 ,-a會列出全部端口。-nu列出當前UDP鏈接情況,-apu顯示udp端口號的使用狀況,-at列出全部TCP端口,-pt能夠輸出PDI和進程的名稱服務器
netstat
其返回結果能夠分爲2部分,一個是Active Internet connections,稱爲有源TCP鏈接,其中"Recv-Q"和"Send-Q"指的是接收隊列和發送隊列。這些數字通常都應該是0。若是不是則表示軟件包正在隊列中堆積。這種狀況只能在很是少的狀況見到。網絡
另外一個是Active UNIX domain sockets,稱爲有源Unix域套接口(和網絡套接字同樣,可是隻能用於本機通訊,性能能夠提升一倍)。dom
Proto顯示鏈接使用的協議,RefCnt表示鏈接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示鏈接到套接口的其它進程使用的路徑名。ssh
套接口類型: -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:沒有任何鏈接狀態
命令2 顯示網卡信息socket
netstat -i
命令3 顯示組播組關係tcp
netstat -g
命令4 顯示網路統計信息性能
netstat -s
命令5 顯示以太網的統計數據
netstat -e
命令6 顯示路由表的信息
netstat -r
命令5 顯示監聽的套接口
netstat -l
命令8 顯示全部創建的有效鏈接
netstat -n
命令9 統計機器網絡鏈接中各個狀態的個數
netstat - a | awk '/^tcp/ {++S[$NF] END {FOR(a in s) print a,S[a]}}'
命令10 把狀態所有取出來後使用uniq -c 統計後再進行排序
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
命令11 查看連接某服務端口最多的IP地址
netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20
命令12 找出程序運行的端口
netstat -ap | grep ssh
命令13 找出運行再指定端口的進程
netstat -anpt | grep ':16064'
ss命令是socket statistics的縮寫,能夠用來獲取socket的統計信息,可以顯示更多的TCP和鏈接狀態的信息。ss命令利用tcp協議棧中的tcp_diag,它是用來分析統計的模塊可得到linux內核中的信息。
可使用的參數有
-h, --help 幫助信息 -V, --version 程序版本信息 -n, --numeric 不解析服務名稱 -r, --resolve 解析主機名 -a, --all 顯示全部套接字(sockets) -l, --listening 顯示監聽狀態的套接字(sockets) -o, --options 顯示計時器信息 -e, --extended 顯示詳細的套接字(sockets)信息 -m, --memory 顯示套接字(socket)的內存使用狀況 -p, --processes 顯示使用套接字(socket)的進程 -i, --info 顯示 TCP內部信息 -s, --summary 顯示套接字(socket)使用概況 -4, --ipv4 僅顯示IPv4的套接字(sockets) -6, --ipv6 僅顯示IPv6的套接字(sockets) -0, --packet 顯示 PACKET 套接字(socket) -t, --tcp 僅顯示 TCP套接字(sockets) -u, --udp 僅顯示 UCP套接字(sockets) -d, --dccp 僅顯示 DCCP套接字(sockets) -w, --raw 僅顯示 RAW套接字(sockets) -x, --unix 僅顯示 Unix套接字(sockets) -f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink -A, --query=QUERY, --socket=QUERY QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY] -D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件 -F, --filter=FILE 從文件中都去過濾器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ]
命令1 顯示tcp鏈接
ss -t -a
命令2 顯示sockets的摘要
ss -s
命令3 列出全部的打開的網絡端口,-pl能夠顯示對應的應用程序
ss -l
命令4 顯示udp鏈接
ss -u -a
命令5 顯示全部的狀態爲established的smtp鏈接或者http鏈接
ss -o state established '( dport = :smtp or sport = :smtp )' ss -o state established '( dport = :http or sport = :http )'
其中狀態可用的有
established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listen closing all : 全部以上狀態 connected : 除了listen and closed的全部狀態 synchronized :全部已鏈接的狀態除了syn-sent bucket : 顯示狀態爲maintained as minisockets,如:time-wait和syn-recv. big : 和bucket相反.
命令6 匹配遠程地址和端口號及本地地址和端口號
ss dst 192.168.1.5 ss dst 192.168.119.113:http ss dst 192.168.119.113:smtp ss dst 192.168.119.113:443 ss src 192.168.119.103 ss src 192.168.119.103:http ss src 192.168.119.103:80 ss src 192.168.119.103:smtp ss src 192.168.119.103:25
命令7 比較本地或者遠程的端口號
ss dport OP PORT ss sport OP PORT
其中比較操做符支持
<= or le : 小於或等於端口號 >= or ge : 大於或等於端口號 == or eq : 等於端口號 != or ne : 不等於端口號 < or gt : 小於端口號 > or lt : 大於端口號
參考文檔:
http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html
http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html