在CentOS 6系统中,ss
命令是查看网络端口和连接状态的高效工具,以下是对ss
命令的详细讲解:
一、基本用法
1、查看所有监听的TCP端口:使用ss lt
命令可以列出所有处于监听状态的TCP端口,执行ss lt
后,输出中会显示类似如下的信息:

State RecvQ SendQ Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:
LISTEN 0 128 [::]:22 [::]:
这表明系统正在监听的端口号为22,通常对应SSH服务。
2、查看监听的TCP端口及其进程信息:为了查看哪些进程正在监听特定端口,可以使用p
选项,执行ss ltnp
后,输出示例如下:
State RecvQ SendQ Local Address:Port Peer Address:Port Process

LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",PID=761,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=761,fd=4))
这段输出表明,sshd服务(SSH守护进程)正在监听端口22,sshd的进程ID(PID)为761。
3、查看所有UDP端口:UDP是另一种常见的传输协议,用于无连接通信,使用ss lun
命令可以查看系统中所有正在监听的UDP端口。
4、查看所有TCP和UDP端口:有时可能需要同时查看TCP和UDP端口的占用情况,可以通过组合选项来实现,例如ss ltnpu
。
二、高级用法与过滤选项
1、根据连接状态过滤:如果只对特定状态的连接感兴趣,比如已建立的连接,可以使用state
选项进行过滤,使用ss t state ESTABLISHED
命令将只显示所有处于ESTABLISHED状态的TCP连接,常见的连接状态包括ESTABLISHED(连接已经建立)、LISTEN(服务器正在监听连接)、SYNSENT(客户端已经发送SYN包,正在等待确认)、CLOSEWAIT(连接已经关闭,等待本地关闭)等。

2、按端口号过滤:可以通过过滤特定端口号来缩小查询范围,要查看所有与80端口相关的连接,可以使用ss t '( sport = :9876 or dport = :9876 )'
命令。sport
表示源端口,dport
表示目标端口。
3、查看连接的详细统计信息:ss
命令还可以提供网络连接的统计信息,以帮助更好地理解系统的网络状况,使用ss s
命令可以查看统计信息,输出示例可能如下:
Total: 92 (kernel 96)
TCP: 12 (estab 3, closed 3, orphaned 0, synrecv 0, timewait 3/0), ports 0
Transport Total IP IPv6
* 96
RAW 0 0 0
UDP 8 4 4
TCP 9 6 3
INET 17 10 7
FRAG 0 0 0
三、安装方法
在CentOS上,iproute2
工具包通常默认安装,如果发现ss
命令不可用,可以通过以下步骤进行安装:
1、更新系统软件包:sudo yum update
。
2、安装iproute2
工具包:sudo yum install iproute
。
完成以上步骤后,就可以使用ss
命令进行网络状态管理了。
四、FAQs
1、问:为什么选择ss
命令而不是传统的netstat
命令?
答:ss
命令相比netstat
命令具有多个优势。ss
直接从内核获取数据,处理大量连接时更加高效,尤其是在高并发环境下响应速度更快。ss
提供了更多的过滤选项和自定义输出格式,用户可以根据需求精准地获取所需信息。ss
还更好地支持现代网络协议和特性,更适合当前复杂的网络环境。ss
命令的语法更加简洁,易于记忆和使用。
2、问:如何在CentOS 6上安装ss
命令?
答:在CentOS 6上,ss
命令通常是iproute2
工具包的一部分,如果系统没有默认安装该工具包,可以通过以下步骤进行安装:首先更新系统软件包列表,然后安装iproute2
工具包,具体命令如下:
- sudo yum update
- sudo yum install iproute
安装完成后,就可以使用ss
命令来查看网络端口和连接状态了。