ss, 一个比netstat好用N倍的命令

Linux 系统中,了解当前的网络连接状态对于故障排查、网络性能调优和安全性评估至关重要。ss(socket statistics)命令是Linux系统中一种功能强大的工具,用于检查和显示网络连接相关的信息。

ss命令简介

ss命令是net-tools软件包的替代品,提供了比传统的netstat命令更强大和更快速的网络连接信息检查功能。ss命令可以列出当前的网络连接、显示监听的端口、过滤和排序连接信息等。

列出当前的网络连接

要列出当前的网络连接,可以使用以下命令:

ss -t

上述命令将显示所有TCP连接的详细信息。类似地,您可以使用-u选项来显示所有UDP连接的信息。

ss -u

现在,让我们来执行ss -t命令,并解析输出结果:

State       Recv-Q     Send-Q           Local Address:Port           Peer Address:Port
ESTAB       0           0                192.168.0.1:22                192.168.0.100:12345
TIME-WAIT   0           0                192.168.0.1:443               192.168.0.200:56789

输出结果的每一列都提供了有用的信息。例如,“State"列显示连接的状态,“Local Address:Port"列显示本地地址和端口,“Peer Address:Port"列显示远程地址和端口。

过滤和排序连接信息

ss命令提供了强大的过滤和排序功能,以便更好地分析和查找特定的连接信息。以下是一些常用的选项:

  • -s:按照连接状态统计连接信息。
ss -s

输出示例:

State       Total
ESTAB       10
TIME-WAIT   5

上述输出结果显示了不同连接状态的数量。

  • -p:显示与连接关联的进程信息。
ss -pt

输出示例:

State       Recv-Q     Send-Q           Local Address:Port           Peer Address:Port           Process
ESTAB       0           0                192.168.0.1:22                192.168.0.100:12345       sshd

上述输出结果显示了与每个连接相关的进程名称。

  • -o:显示计时器信息。
ss -to

输出示例:

State       Recv-Q      Send-Q           Local Address:Port            Peer Address:Port           Timer
ESTAB       0           0                192.168.0.1:22                192.168.0.100:12345        off (0.00/0/0)

上述输出结果显示了与每个连接关联的计时器信息。

  • -n:以数字格式显示IP地址和端口号。
ss -tn

输出示例:

State       Recv-Q      Send-Q           Local Address:Port            Peer Address:Port
ESTAB       0           0                192.168.0.1:22               192.168.0.100:12345

上述输出结果中的IP地址和端口号以数字格式显示,而不是解析为主机名和服务名称。

  • -l:显示正在监听的端口。
ss -l

输出示例:

State       Recv-Q      Send-Q           Local Address:Port
LISTEN      0           128              0.0.0.0:22
LISTEN      0           128              0.0.0.0:80

上述输出结果显示了正在监听的端口。

总结

ss命令是Linux系统中一种强大的网络连接信息检查工具,通过使用ss命令,我们可以轻松地列出当前的网络连接、过滤和排序连接信息、查看进程关联的连接等。本文通过代码示例、输出和解析向您展示了ss命令的用法,希望能够帮助您更好地理解和应用ss命令进行网络连接信息的全面检查。无论是系统管理员还是网络工程师,掌握ss命令都是非常重要的技能,它能够为您提供有关网络连接的深入洞察和分析。