ss命令是Linux中高效查看网络连接的工具,直接从内核获取信息,比netstat更快。使用ss -a可查看所有活动套接字,包括TCP、UDP、RAW和UNIX类型;结合-t选项如ss -t -a可专门查看TCP连接,其中ESTAB表示已建立连接,LISTEN表示监听状态,SYN-SENT表示正在发起连接,可通过ss -t state established过滤已建立的TCP连接;使用-u选项如ss -u -a查看UDP活跃套接字,适用于DNS、NTP等无连接服务;添加-p选项如ss -t -a -p可显示关联进程及PID,便于定位占用端口的程序;支持按端口过滤如ss -t -a sport = :80,按目标IP过滤如ss -t -a dst 192.168.1.100,或查看本地监听端口ss -l -t;使用-s选项如ss -s可获取套接字统计汇总,包括各类连接数和内存使用情况,适合快速评估网络负载。掌握ss命令有助于高效排查网络问题和监控服务状态。

在Linux系统中,ss(Socket Statistics)命令是查看网络连接状态的高效工具,它比传统的 netstat 更快,因为它直接从内核获取信息,不依赖过时的 /proc/net 接口。通过 ss 可以查看 TCP、UDP、RAW、UNIX 等类型的套接字连接,常用于排查网络问题、监控服务状态。
查看所有网络连接
使用 -a 选项可以显示所有活动的套接字连接,包括监听和已建立的连接:
ss -a该命令会列出所有 TCP、UDP、RAW 和 UNIX 套接字。如果只想查看特定协议,可结合其他选项使用。
查看 TCP 连接
使用 -t 选项查看 TCP 连接:
ss -t -a常用缩写:
- ESTAB:已建立的连接
- LISTEN:服务正在监听端口
- SYN-SENT:正在发起连接
例如,只查看已建立的 TCP 连接:
ss -t -a | grep ESTAB或者使用内置过滤:
ss -t state established查看 UDP 连接
UDP 是无连接协议,但仍可通过 ss 查看活跃的 UDP 套接字:
ss -u -a这会显示所有正在使用的 UDP 端口,比如 DNS 查询、NTP 客户端等。
显示进程信息和 PID
使用 -p 选项可以查看与连接关联的进程信息:
ss -t -a -p输出中会显示哪个程序占用了某个端口,例如:
tcp 0 0 192.168.1.10:22 192.168.1.5:54321 ESTAB users:(("sshd",pid=1234,fd=3))这对排查未知连接非常有用。
结合端口或地址过滤
可以按端口或 IP 地址筛选输出:
- 查看与某个端口相关的连接(如 80 端口):
ss -t -a sport = :80 - 查看与特定 IP 的连接:
ss -t -a dst 192.168.1.100 - 查看本地监听的端口:
ss -l -t
显示简要统计信息
使用 -s 选项查看套接字使用汇总:
ss -s输出包括 TCP、UDP、RAW 套接字的总数、内存使用、监听队列等信息,适合快速了解系统网络负载。
基本上就这些常用方法。ss 命令功能强大且响应迅速,掌握它有助于高效分析 Linux 系统的网络状态。不复杂但容易忽略。










