使用ss命令是查看Linux网络连接状态的首选方法,因其性能优于netstat。通过ss -tuln可查看所有TCP和UDP连接,ss -tuln state established可筛选已建立的连接,结合管道与awk、grep等工具能统计各状态连接数;lsof -i用于排查特定进程或端口的连接,如lsof -i :80或lsof -c nginx;netstat -tulna为传统方案,但逐渐被ss取代。建议始终使用-n参数避免DNS解析延迟,提升命令响应速度。

在Linux系统中,查看当前网络连接状态是日常运维和故障排查中的常见需求。你可以通过多个命令行工具来获取详细的网络连接信息,以下是一些常用且实用的方法。
使用 netstat 命令
netstat 是一个经典的网络统计工具,可以显示活动的网络连接、路由表、接口统计等信息。
查看所有活动的网络连接:
netstat -tuln参数说明:
- -t:显示 TCP 连接
- -u:显示 UDP 连接
- -l:显示监听中的端口
- -n:以数字形式显示地址和端口号,不解析主机名
如果你想查看所有连接(包括已建立的和监听的),可以加上 -a 参数:
netstat -tulna使用 ss 命令(推荐)
ss 是 netstat 的现代替代工具,速度更快,功能更强大,尤其适合高负载系统。
查看所有 TCP 和 UDP 连接:
ss -tuln用法与 netstat 类似,参数含义相同。ss 在大多数现代 Linux 发行版中默认安装。
查看所有已建立的连接:
ss -tuln state established查看连接数统计
你可以结合命令和管道来统计当前各种状态的连接数量。
统计处于 ESTABLISHED 状态的连接数:
ss -tuln | grep ESTAB | wc -l统计每个状态的连接数:
ss -tuln state all | awk 'NR>1 {print $1}' | sort | uniq -c使用 lsof 查看特定进程的网络连接
lsof 可以列出打开的文件,包括网络连接。适合查看某个程序或端口的连接情况。
查看所有网络连接:
lsof -i查看特定端口(如 80)的连接:
lsof -i :80查看某个进程(如 nginx)的网络连接:
lsof -i -c nginx基本上就这些常用方法。ss 是目前最推荐的工具,性能好且输出清晰。netstat 虽然经典,但在新系统中逐渐被取代。lsof 则适合深入排查具体进程的连接问题。根据你的需求选择合适的命令即可。不复杂但容易忽略细节,比如加 -n 避免解析延迟。基本上就这些。










