linux命令--netstat命令&ss命令

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

相關文章
相關標籤/搜索