使用 ss 命令监控网络连接

一个非常有用的工具 管理 Linux 网络 是个 ss 命令. 您可以使用此命令识别套接字统计信息。 这 ss 命令 与 netstat 命令非常相似。 但是,您可以使用以下命令获得有关 TCP 和状态信息的更多有用信息 ss 命令.
ss 命令 很快。 当您搜索时,信息速度非常快。 与此工具相比,netstat 命令似乎非常慢。 如果您需要跟踪套接字和 TCP 连接, ss 命令 能帮你。 ss 命令 可以提供以下信息:

所有 TCP 套接字。 所有 UDP 套接字。 所有已建立的 ssh/ftp/http/https 连接。 所有本地进程连接到 X 服务器。 按状态(例如已连接、已同步、SYN-RECV、SYN-SENT、TIME-WAIT)、地址和端口过滤。 所有处于 FIN-WAIT-1 状态的 tcp 套接字等等。

在这篇文章中解释 如何使用 ss 命令linux 系统。

示例用法 ss 命令

的语法 ss 命令 是 :

# ss [ OPTIONS ]

或者

# ss [ OPTIONS ] [ FILTER ]

1. 列出所有连接

键入以下命令以列出所有连接:

# ss | more

示例输出:

[email protected] ~ $ ss |more Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port    u_str  ESTAB      0      0                    * 219827                * 220601  u_str  ESTAB      0      0      @/tmp/.X11-unix/X0 223495                * 223494  u_str  ESTAB      0      0                    * 220663                * 220044  u_str  ESTAB      0      0      @/tmp/.X11-unix/X0 220453                * 219708  u_str  ESTAB      0      0      @/tmp/dbus-elWbPTCWlq 223497                * 223496  ............................ tcp    ESTAB      0      0          192.168.1.2:33643     68.232.35.139:https    tcp    ESTAB      0      0          192.168.1.2:56529     54.236.180.90:9999     tcp    ESTAB      0      0          192.168.1.2:45982      31.13.81.128:https    tcp    ESTAB      0      0          192.168.1.2:50923     173.194.70.84:https    tcp    ESTAB      0      0          192.168.1.2:39490      23.63.85.109:http     tcp    ESTAB      0      0          192.168.1.2:42899     79.101.110.89:https

2. 列出所有 TCP、UDP 和 Unix 连接

列出所有 TCP 连接

要列出所有 TCP 连接,请使用 -t 选项:

# ss -t

笔记: 默认情况下,“-t”选项仅报告“ESTABLISHED”或“CONNECTED”连接。 如果使用“-ta” 选项报告显示所有 TCP 连接(已连接和正在侦听)。

列出所有UDP连接

要列出所有 UDP 连接,请使用 -u 选项:

# ss -ua

注:“-ua”选项告诉 SS 报告“CONNECTED”和“LISTENING”套接字。

列出所有 Unix 连接

要列出所有 UDP 连接,请使用 -x 选项:

# ss -x

3. 汇总统计报告

要打印汇总统计,请使用“-s“ 选项:

# ss -s

4. 显示所有打开的网络端口

要显示所有打开的网络端口,请执行 ss -l 如下所示。

# ss -l

5. 仅显示 IPv4 或 IPv6 套接字连接

要仅显示 IPv4 套接字连接,请使用 ‘-f inet‘ 或者 ‘-4‘ 选项。

# ss -tl -f inet

或者

# ss -tl -4

示例输出:

# ss -tl -f inet State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port    LISTEN     0      50                      *:microsoft-ds                  *:*        LISTEN     0      50                      *:netbios-ssn                  *:*        LISTEN     0      5               127.0.1.1:domain                   *:*        LISTEN     0      128                     *:ssh                      *:*        LISTEN     0      128             127.0.0.1:ipp                      *:*

要仅显示 IPv6 套接字连接,请使用 ‘-f inet6‘ 或者 ‘-6‘ 选项。

# ss -tl -f inet6

或者

# ss -tl -6

示例输出:

# ss -tl -6 State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port    LISTEN     0      50                     :::microsoft-ds                 :::*        LISTEN     0      50                     :::netbios-ssn                 :::*        LISTEN     0      128                    :::ssh                     :::*        LISTEN     0      128                   ::1:ipp                     :::*

6.不要解析主机名

如果您希望阻止 ss 命令将 IP 地址解析为主机名,请使用“-n”选项。

# ss -tn

7.显示定时器信息

要显示计时器信息,请使用 ‘-O‘ 选项:

# ss -tn -o

8. 使用 TCP 状态过滤连接

语法如下:

## tcp ipv4 ## ss -4 state FILTER-NAME-HERE  ## tcp ipv6 ## ss -6 state FILTER-NAME-HERE

其中 FILTER-NAME-HERE 可以是以下任何一项,

已确立的 同步发送 同步接收 fin-wait-1 fin-wait-2 时间的等待 关闭 close-等待 最后确认 关闭 全部 : 以上所有状态 连接的 :除了listen和closed之外的所有状态 同步 : 除同步发送外的所有连接状态 : 显示状态,作为 minisockets 维护,即 time-wait 和 syn-recv。 : 与桶状态相反。

仅此而已! 有关更多信息 ss 命令见 手册页:

# man ss