直接输入 ss,默认会显示与 netstat 同样的内容,并且输入类似的参数可以获取你想要的类似输出。例如:
[root@iZwz96pb4qob9lpzadqipkZ ~]# ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.18.252.133:ssh 116.21.181.165:50240
ESTAB 0 0 172.18.252.133:38502 100.100.25.3:http
ss -t 只显示 TCP 连接。ss -u 用于显示 UDP 连接,-l 参数只会显示监听的端口,而且可以进一步过滤到任何想要的信息。
我并没有测试所有可用参数,但是你甚至可以使用 -K 强制关闭 socket。
ss 真正耀眼的地方是其内置的过滤能力。让我们列出所有端口为 22(ssh)的连接:
[root@iZwz96pb4qob9lpzadqipkZ ~]# ss state all sport = :ssh
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:ssh *:*
ESTAB 0 64 172.18.252.133:ssh 116.21.181.165:50240
如果只想看已建立的 socket(排除了 listening 和 closed ):
[root@iZwz96pb4qob9lpzadqipkZ ~]# ss state connected sport = :ssh
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 64 172.18.252.133:ssh 116.21.181.165:50240
ss与 iptables 的语法非常相同,如果已经熟悉了其语法,ss 非常容易上手。也可以安装 iproute2-doc 包, 通过 /usr/share/doc/iproute2-doc/ss.html 获得完整文档。