ss 命令最高效,比 netstat 更快更轻量,是现代 Linux 推荐工具;ss -tan 列所有 TCP 连接,ss -tuln 查监听端口,sudo ss -tulnp 显示进程信息,watch 结合可实时监控,nc/telnet 可验证端口连通性。

直接用 ss 命令最高效,它比 netstat 更快、更轻量,是现代 Linux 系统推荐的默认工具。
查看所有活跃 TCP 连接(含已建立和监听)
运行以下命令可列出当前全部 TCP 连接及其状态:
-
ss -tan:显示所有 TCP 连接(不含进程名),-t表示 TCP,-a表示 all,-n表示数字格式(不解析域名和服务名) -
ss -tuln:只看监听中的 TCP/UDP 端口(-u加入 UDP),适合快速确认哪些端口正对外提供服务
带进程信息的详细视图(需 root 权限)
要看到哪个程序占用了某个连接或端口,必须加 -p 参数,并以管理员身份运行:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
sudo ss -tulnp:列出所有监听端口 + 对应 PID 和进程名(例如nginx: master或java) -
sudo ss -tanp | grep ESTABLISHED:筛选出已建立的连接,并关联进程,便于排查异常长连接或可疑外连
按端口或状态实时监控
结合 watch 可实现秒级刷新,适合观察连接数波动或服务响应变化:
-
watch -n 1 'ss -tn state established | wc -l':每秒统计一次 ESTABLISHED 连接数 -
watch -n 2 'sudo ss -tuln | grep ":80\|:443"':每两秒检查 Web 相关端口是否仍在监听
补充:快速验证单个端口连通性
若想确认某端口是否真正可达(而不仅是监听),可用轻量工具测试:
-
nc -zv 127.0.0.1 22:检查本地 SSH 端口是否响应(-z扫描模式,-v显示详情) -
telnet example.com 443:手动建立 TCP 连接,成功即表示端口开放且路由可达

















