监视套接字连接的前14个SS命令示例

SS是一个命令行工具,它是显示套接字统计信息并监视Linux系统的网络连接的工具。 它取代了现在不推荐使用的netstat命令。 ss命令比netstat命令要快得多,并且可以打印出更详细的网络统计信息。 在本指南中,我们重点介绍如何使用ss命令来监视Linux系统上的套接字连接。

1)查看所有插座连接(ss)

ss命令以其基本形式(不带任何参数)显示所有套接字或网络连接(TCP / UDP / UNIX),如下所示:

$ ss

为了使查看输出更容易,您可以通过管道将输出减小到如图所示。

$ ss | less

2)查看TCP / UDP套接字连接

ss命令带有许多选项,您可以传递这些选项来查看不同的统计信息。 例如,仅查看TCP scoket连接,仅如图所示传递-t选项。

$ ss -t

查看TCP网络连接SS命令

要过滤掉UDP连接,请如图所示传递-ua选项。

$ ss -ua

UDP-网络连接-ss命令

3)查看所有侦听套接字(ss -l)

要了解所有监听套接字,默认情况下通常会省略这些监听套接字,请使用-l选项。

$ ss -l

列出所有侦听套接字的SS命令

4)查看所有侦听的TCP套接字连接(ss -lt)

要缩小搜索结果的范围并仅列出TCP侦听连接,请使用-lt选项。

$ ss -lt

列出所有tcp-listening-sockets-ss命令

5)查看所有侦听的UDP套接字连接(ss -lu)

对于UDP侦听连接,请如图所示传递-lu选项。 在大多数情况下,侦听UDP连接将少于TCP连接

$ ss -lu

列出所有udp监听套接字SS命令

6)查看所有侦听和非侦听套接字(ss -a)

如图所示,-a选项将打印出Linux系统上所有已连接且未监听的套接字。

$ ss -a

Listening-NonListening-Socket-Connections-ss命令

7)列出IPv4和Ipv6套接字连接

要浏览当前的IPv4套接字连接,请使用-4选项。

$ ss -4

ipv4-Socket-Session-SS命令

对于IPv6,请传递-6参数。

[email protected]:~$ ss -6
Netid        State         Recv-Q         Send-Q             Local Address:Port                      Peer Address:Port
icmp6        UNCONN        0              0                   *:ipv6-icmp                            *:*
[email protected]:~$

8)所有套接字连接的列表摘要(ss -s)

如果您只想查看套接字连接的总体统计信息,包括TCP和UDP,IPv4和IPv6连接的数量,则只需传递-s选项,如图所示。 这将以表格格式打印出结果。

$ ss -s

套接字连接摘要​​-ss命令

9)按端口号过滤连接

您还可以决定按端口号过滤连接。 例如,在下面的示例中,我们过滤了连接到SSH端口22的连接

$ ss -at '( dport = :22 or sport = :22 )'

Filter-Socket-Connections-ss命令

10)列出套接字连接而不解析主机名(ss -nt)

缺省情况下,ss命令尝试将IP地址解析为主机名。 如果您希望ss命令阻止ip地址解析为主机名,则使用’-n’选项,示例如下所示:

[email protected]:~$ ss -nt
State           Recv-Q        Send-Q        Local Address:Port         Peer Address:Port
ESTAB           0             0             192.168.1.80:22            192.168.1.3:53155
ESTAB           0             36            192.168.1.80:22            192.168.1.3:53152
[email protected]:~$

11)列出套接字连接的进程名称和pid(ss -p)

在ss命令中使用“ -p”选项列出与网络连接关联的进程名称和pid。 示例如下所示,

$ ss -p | more

套接字连接进程名称PID

12)扩展的套接字连接输出(ss -e)

在ss命令中使用’-e’选项显示套接字连接的扩展输出。 扩展输出将显示套接字的uid,套接字的inode编号和套接字的uuid。

运行以下命令以列出扩展的tcp侦听套接字。

$ ss -elt

扩展套接字连接细节

有关UDP扩展套接字连接的详细信息,请运行

$ ss -elu

13)查看套接字连接的内存使用情况(ss -m)

在ss命令中使用-m选项可查看套接字连接消耗了多少内存。

套接字内存格式如下所示:

套接字内存使用格式

下面的命令将显示tcp连接的内存使用情况。

$ ss -mt

TCP-Socket-Memory-Usage-ss命令

14)终止IPv4 / IPv6套接字连接(ss -k)

ss命令可以使用-k选项强制终止或终止ipv4和ipv6套接字连接。 假设我们要终止ipv4 ssh套接字连接。

[email protected]:~$ ss -4
Netid         State         Recv-Q         Send-Q        Local Address:Port                 Peer Address:Port
tcp           ESTAB         0              0             192.168.1.80:ssh                   192.168.1.3:53155
tcp           ESTAB         0              36            192.168.1.80:ssh                   192.168.1.3:53152

[email protected]:~$

要终止第二个ssh会话,请使用以下ss命令,

[email protected]:~$ sudo ss -K dst 192.168.1.3 dport = 53152

有关ss命令用法的更多选项,请访问所示的手册页。

$ man ss

今天总结了我们的指南。 希望您现在可以放心地使用ss命令来查看套接字连接。 感谢您抽出宝贵的时间,我们一如既往地感谢您的反馈

另请阅读Linux中的8个Stat命令示例

Sidebar