ss
用来获取系统 Socket 网络统计信息,英文 Socket Statistics 的缩写。功能与netstat
类似,但ss
能显示更多更详细的信息,并且更快更高效。
服务器的 Socket 连接数变得非常大时,无论是使用 netstat
命令还是直接 cat /proc/net/tcp
,执行速度都会很慢。
ss
快的秘诀在于,它利用到了 TCP 协议栈中 tcp_diag
。tcp_diag
是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,这就确保了 ss
的快捷高效。当然,如果你的系统中没有 tcp_diag
,ss
也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat
要快)
命令格式
|
|
命令参数
|
|
应用实例
显示 socket 概况
命令:
|
|
结果:
|
|
列出所有监听的网络端口
命令:
|
|
结果:
|
|
显示 TCP 连接信息
命令:
|
|
结果:
|
|
ss 和 netstat 效率对比
命令:
|
|
结果:
|
|
|
|
由此可见,socket 数量越多,效率差异越明显,ss
效率比 netstat
快太多。