ss 命令简介

简介

ss is used to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state informations than other tools.

由 man 文档可以看出, ss (Socket Statistics)是为了替换 netstat 而存在的,比大多数网络工具都能更详细地显示连接信息。

参数

由于是为了替换 netstat 而存在,所以很多 ss 的参数跟 netstat 也极其类似,下面是一些常用的简单参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ss  [options]  [ FILTER ]

选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
...
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]

除了参数外, ss 还有个匹配的 FILTER 功能,可以快速的筛选出需要的信息。

eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 显示来源端口为 8080 的连接
ss sport = :8080

# 显示目标端口为 80 的连接
ss dport = :80

# 显示来源端口大于 8080 的连接
ss sport ge :8080

# 显示目标端口小于 80 的连接
ss dport lt :80

# 显示所有已建立的 HTTP 连接
ss state established '( dport = :http or sport = :http )'

# 显示所有来自于 127.0.0.1 的连接
ss src 127.0.0.1

# 显示所有连接到 127.0.0.1 的连接
ss dst 127.0.0.1

为什么 ssnetstat

netstat 是遍历 /proc 下面每个 PID 目录, ss 直接读 /proc/net 下面的统计信息。所以 ss 执行的时候消耗资源以及消耗的时间都比 netstat 少很多。

如何安装 ss

ss 命令存在于 iproute 工具集中,如果找不到 ss 命令, yum install iproute iproute-doc 安装该工具集即可。

工具集对比

用途 net-tool(被淘汰) iproute2
地址和链路配置 ifconfig ip addrip link
路由表 route ip route
邻居 arp ip neigh
VLAN vconfig ip link
隧道 iptunnel ip tunnel
组播 ipmaddr ip maddr
统计 netstat ss