ss 命令用来统计系统 Socket 网络信息

ss是Socket Statistics的缩写。 ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

命令格式

ss [参数]
ss [参数] [过滤]

命令参数

-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 ]

示例

显示 Sockets 摘要

ss -s

显示TCP连接

ss -t -a

列出所有打开的网络连接端口

ss -l

查看进程使用的socket

ss -pl

找出打开套接字/端口应用程序

ss -pl|grep 23

显示所有UDP Sockets

ss -u -a

显示所有状态为established的SMTP连接

ss -o state established '( dport = :ssh or sport = :ssh )'

显示所有状态为Established的ssh连接

ss -o state established '( dport = :ssh or sport = :ssh )'

列举出处于 FIN-WAIT-1状态的源端口为 80或者 443,目标网络为 193.233.7/24所有 tcp套接字

ss -o state fin-wait-1 '( sport = :http or sport = :http )' dst 193.233.7/24

用TCP 状态过滤Sockets

ss -4 state FILTER-NAME-HERE 
ss -6 state FILTER-NAME-HERE

ss -4 state closing

FILTER-NAME-HERE

  • 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-sentbucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.
  • big : 和bucket相反.

匹配远程地址和端口号

ss dst 192.168.0.5
ss dst 192.168.0.113:http
ss dst 192.168.0.113:smtp 
ss dst 192.168.0.113:443

匹配本地地址和端口号

ss src 192.168.0.197
ss src 192.168.0.197:http
ss src 192.168.0.197:80
ss src 192.168.0.197:smtp
ss src 192.168.0.197:25

参考