ss(socket statistics)工具的使用方法
ss
(socket statistics)工具是一个用于查看网络连接和socket统计数据的强大命令行工具。它比传统的netstat
更快更高效,因为它不需要等待内核收集信息。ss
可以提供关于套接字的状态、错误和其他信息的详细报告。
以下是ss
的一些基本用法和选项:
基本用法
- ss:不带任何参数时,
ss
会显示所有套接字的状态。 - ss -h:显示帮助信息。
显示特定类型的信息
- ss -t:只显示TCP连接。
- ss -u:只显示UDP连接。
- ss -x:只显示Unix域套接字。
- ss -a:显示所有套接字(包括未使用的)。
指定显示的套接字状态
- ss -l:只显示监听中的套接字。
- ss -e:只显示处于错误状态的套接字。
- ss -w:只显示等待套接字。
- ss -a -s:显示所有套接字的状态信息。
- ss -p:显示进程信息。
输出格式化
- ss -n:以数字形式显示地址和端口,而不是试图去解析它们。
- ss -N:类似于
-n
,但适用于IPv6。 - ss -o:以输出优化模式显示信息,比如显示更详细的连接状态信息。
查询特定连接或地址
- ss [connection_spec]:指定特定的连接来查询,例如
ss 192.168.1.1:80
。 - ss [address_spec]:指定特定的地址来查询,例如
ss 192.168.1.1
。
实例
-
显示所有TCP连接:
ss -t
-
显示所有监听中的TCP连接:
ss -tan
-
显示所有UDP连接:
ss -un
-
显示所有正在监听的端口:
ss -tanp | grep LISTEN
-
查找特定端口的连接:
ss -tn '( sport == :http )'
-
显示每个端口的连接数:
ss -tan | awk '{print $5}' | cut -d: -f2 | sort | uniq -c
注意事项
ss
命令在不同的Linux发行版中可能存在细微差异,特别是在提供的选项和输出格式方面。- 使用
man ss
可以获得详细的命令手册页,了解更全面的使用方法。
通过上述介绍,你可以看到ss
命令非常强大且灵活,可以根据需要定制输出,以满足各种监控和故障排除的需求。
多用组合、少用继承
基于接口而非实现进行编程