另一个调查套接字的实用程序
命令语法格式
ss [options] [ FILTER ]
命令描述
命令ss用于转储套接字的统计信息。它允许显示类似于netstat(8)的信息。它可以显示比其他工具更多的TCP和状态信息。
命令行选项
如果没有使用任何选项,则ss显示已建立连接的打开的非监听套接字列表(例如TCP/UNIX/UDP)。
-H, –no-header
抑制标题行。
-n, –numeric
不解析服务名。
-r, –resolve
不解析IP地址和端口号。
-a, –all
显示“监听”与“非监听”的套接字。对于TCP来说,“非监听”指的是已经建立的连接。
-l, –listening
只显示“监听”的套接字。默认情况下忽略该选项。
-o, –options
显示计时器的信息。
-e, –extended
显示套接字的详细信息。
-m, –memory
显示套接字的内存使用信息。
-i, –info
显示内部的TCP信息。
-K, –kill
试图强行关闭套接字。 此选项显示已成功关闭的套接字、以静默方式跳过内核不支持关闭的套接字。它仅支持IPv4和IPv6套接字。
-s, –summary
打印摘要统计。此选项不解析从各种源获取摘要的套接字列表。 当套接字的数量太大,以至于解析/proc/net/tcp很痛苦时,此选项很有用。
-p, –processes
显示正在使用套接字的进程。
-Z, –context
如同-p选项,还显示进程安全性上下文。
对于netlink(7)套接字,初时进程上下文显示如下:
- 如果有效的pid,则显示进程上下文。
- 如果destination是内核(pid = 0),则显示内核初始上下文。
- 如果内核或netlink用户已分配唯一标识符,则将上下文显示为“unavailable”。 这通常表示进程有多个netlink套接字处于活动状态。
-z, –contexts
与选项-Z一起,但也显示套接字上下文。 套接字上下文取自关联的inode,而不是内核持有的实际套接字上下文。 套接字通常用创建进程的上下文标记,但是所显示的上下文将反映应用的任何策略角色、类型、范围转换规则,因此是有用的参考。
-N NSNAME, –net=NSNAME
切换到指定的网络命名空间名称。
-A QUERY, –query=QUERY, –socket=QUERY
要转储的套接字表列表,以逗号分隔。支持标识符有:all,inet,tcp,udp,raw,unix,packet,netlink,unix_dgram,unix_stream,unix_seqpacket,packet_raw,packet_dgram。
-D FILE, –diag=FILE
不显示任何内容,只需在应用过滤器后,将有关TCP套接字的原始信息转储到FILE中。如果FILE是“-”,则使用标准输出。
-F FILE, –filter=FILE
从FILE中读取过滤器信息。文件FILE的每行都被解释为单个命令行选项。 如果FILE是“-”,则使用标准输入。
命令行参数
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
有关过滤器的详细信息,请查看官方文档(或Debian中的iproute-doc软件包)。
“STATE-FILTER”允许构造任意状态集以匹配。 它的语法是关键字state和exclude的序列,后跟state的标识符。
所有标准的TCP状态:established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listen, closing
可用的标识符:
- all – 所有的状态
- connected – 除了listen和closed以外的状态。
- synchronized – 除了syn-sent以外,所有已连接的状态。
- bucket – 被作为minisockets维护的状态。例如,“time-wait”和“syn-recv”。
- big – 与bucket相反。
上面是可用的标识符。
指定网络协议和套接字类型
-f FAMILY, –family=FAMILY
显示类型为FAMILY的套接字。支持的FAMILY包括:unix, inet, inet6, link, netlink
-4, –ipv4
仅显示IPv4套接字。与-f inet相同。
-6, –ipv6
仅显示IPv6套接字。与-f inet6相同。
-0, –packet
显示PACKET套接字。与-f link相同。
-x, –unix
显示Unix域套接字。与-f unix相同。
-t, –tcp
显示TCP套接字
-u, –udp
显示UDP套接字
-d, –dccp
显示DCCP套接字
-w, –raw
显示RAW套接字
-S, –sctp
显示SCTP套接字
-b, –bpf
显示套接字BPF过滤器(仅允许管理员获取这些信息)。
其他选项
-h, –help
显示帮助信息和选项的摘要。
-V, –version
显示版本信息。
使用示例
显示所有的TCP套接字:
显示所有带有进程SELinux安全上下文的TCP套接字:
显示所有的UDP套接字:
显示所有已经建立的ssh连接:
找到所有连接到X服务的本地进程:
为我们的Apache显示所有到网络network 193.233.7/24,且状态为FIN-WAIT-1的TCP套接字,并它们的计时器:
上面是一些常用的示例。
相关手册
ip(8), /usr/share/doc/iproute-doc/ss.html (package iproutedoc)
RFC 793 – https://tools.ietf.org/rfc/rfc793.txt (TCP states)
参考文献
- man 8 ss, Version ss utility, iproute2-ss180608
更新日志
- 08/03/2018 创建文章