如果需要访问系统的socket相关信息,大多数人想到的第一个工具就是netstat。但是如果你想获得更多信息,你可以使用 ss 命令来达到这个目的。
显示所有已建立连接的套接字
ss
命令不带任何选项,用来显示已建立连接的所有套接字的列表。
[root@localhost ~]# ss
抑制输出中的标题行
如果要取消命令输出中的标题行,可以使用-H
选项。
[root@localhost ~]# ss -H
只显示 tcp 连接
如果只想在命令的输出中显示 tcp 连接,可以使用-t
选项:
[root@localhost ~]# ss -t
只显示 udp 连接
如果只想在命令的输出中显示 udp 连接,可以使用-u
选项:
[root@localhost ~]# ss -u
只显示 unix 连接
如果只想在命令的输出中显示 unix套接字 连接,可以使用-x
选项:
[root@localhost ~]# ss -x
仅显示侦听状态的socket
如果只想显示被侦听的套接字,可以使用-l
选项。
[root@localhost ~]# ss -l
显示摘要信息
使用-s
选项可以显示摘要信息:
[root@localhost ~]# ss -s
Total: 156
TCP: 3 (estab 1, closed 0, orphaned 0, timewait 0)
Transport Total IP IPv6
RAW 1 0 1
UDP 3 2 1
TCP 3 2 1
INET 7 4 3
FRAG 0 0 0
仅显示 IPv4/IPv6 套接字
如果只想显示ipv4侦听的,可以使用-4
和-l
选项。
[root@localhost ~]# ss -4l
如果只想显示ipv6侦听的,可以使用-6
和-l
选项。
[root@localhost ~]# ss -6l
不将 IP 地址解析为主机名
如果不想将ip地址解析为主机名称,可以使用-n
选项,以防止命令将 IP 地址解析为主机名。但这也会阻止端口号的解析:
[root@localhost ~]# ss -n -4l
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 192.168.43.131%ens160:68 0.0.0.0:*
udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*