Linux 命令(5)—— ss 命令



本文爲轉載,原文鏈接爲http://www.ttlsa.com/linux-command/ss-replace-netstat/



一、命令簡介

  ss是Socket Statistics的縮寫。ss命令用於顯示socket狀態. 他可以顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計. 它比其他工具展示等多tcp和state信息. 它是一個非常實用、快速、有效的跟蹤IP連接和sockets的新工具.SS命令可以提供如下信息:

  • 所有的TCP sockets
  • 所有的UDP sockets
  • 所有ssh/ftp/ttp/https持久連接
  • 所有連接到Xserver的本地進程
  • 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口過濾
  • 所有的state FIN-WAIT-1 tcpsocket連接以及更多


  netstat是遍歷/proc下面每個PID目錄,ss直接讀/proc/net下面的統計信息。所以ss執行的時候消耗資源以及消耗的時間都比netstat少很多。

二、使用方法

ss [options] [ FILTER ]

三、命令選項

# ss -h
  -h, --help          this message
   -V, --version       output version information
   -n, --numeric       don't resolve service names
   -r, --resolve       resolve host names
   -a, --all           display all sockets
   -l, --listening     display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes     show process using socket
   -i, --info          show internal TCP information
   -s, --summary       show socket usage summary
   -b, --bpf           show bpf filter socket information
   -Z, --context       display process SELinux security contexts
   -z, --contexts      display process and socket SELinux security contexts
   -N, --net           switch to the specified network namespace name

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet        display PACKET sockets
   -t, --tcp           display only TCP sockets
   -u, --udp           display only UDP sockets
   -d, --dccp          display only DCCP sockets
   -w, --raw           display only RAW sockets
   -x, --unix          display only Unix domain sockets
   -f, --family=FAMILY display sockets of type FAMILY

   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink}[,QUERY]

   -D, --diag=FILE     Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
       STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
         TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
          connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
       synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
             bucket := {syn-recv|time-wait}
                big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}

四、常用示例

(1)常用ss命令。

# 顯示本地所有打開的端口
ss -l

# 顯示每個進程具體打開的端口
ss -pl

# 顯示所有tcp socket
ss -t -a 

# 顯示所有udp socket
ss -u -a 

# 顯示所有已建立的SMTP連接
ss -o state established '( dport = :smtp or sport = :smtp)'

# 顯示所有已建立的HTTP連接
ss -o state established '( dport = :http or sport = :http)'

# 找出所有連接x服務器的進程 
ss -x src /tmp/.X11-unix/* 

# 列出當前socket詳細信息:已經連接、關閉,等待的tcp連接。
ss -s


(2)ss使用IP地址篩選。

ss src ADDRESS_PATTERN
# src:表示來源
# ADDRESS_PATTERN:表示地址規則

# 列出來自 120.33.31.1 的連接
ss src 120.33.31.1

# 列出來自 120.33.31.1:80 端口的連接
ss src 120.33.31.1:80
ss src 120.33.31.1:http


(3)ss使用端口篩選。

ss dport OP PORT
# OP:運算符 (<=、 >=、 ==、 !=、 <、 >)
# PORT:端口
# dport:過濾目標端口, sport表示過濾源端口


# 顯示所有狀態爲Established的HTTP連接
ss -o state established '( dport = :http or sport = :http )' 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章