优先使用ss命令查看网络连接,如ss -tuln可列出所有监听端口;netstat功能类似但需安装net-tools;lsof用于精准定位,如lsof -i:22查看SSH连接。

在Linux系统中,查看网络连接是日常运维和故障排查的重要环节。掌握几种常用命令能快速了解当前系统的网络状态,包括哪些服务正在监听端口、有哪些外部连接建立等。
使用 netstat 查看网络连接
netstat 是一个传统的网络统计工具,可以显示活动的TCP/UDP连接、监听端口、路由表等信息。
常见用法:
- netstat -tuln:列出所有正在监听的TCP和UDP端口(-t TCP, -u UDP, -l 监听, -n 显示数字地址)
- netstat -anp | grep :80:查看80端口的连接及对应进程
- netstat -tp:显示所有TCP连接并显示对应的程序名
注意:部分新系统已默认不安装netstat,需通过net-tools包手动安装。
使用 ss 命令替代 netstat
ss(Socket Statistics)是现代Linux推荐的工具,功能类似netstat但更高效,直接从内核获取信息。
常用命令:
- ss -tuln:查看所有监听的网络端口
- ss -tnp:查看所有TCP连接及其进程
- ss -s:快速查看各类连接的统计摘要
ss在性能和响应速度上优于netstat,建议优先使用。
使用 lsof 查看特定连接或端口
lsof(List Open Files)不仅可以查看文件,还能列出打开的网络连接。
实用示例:
- lsof -i:22:查看22端口(SSH)的所有连接
- lsof -i TCP -s TCP:ESTABLISHED:查看所有已建立的TCP连接
- lsof -i @192.168.1.100:查看与指定IP的网络交互
这个命令适合精准定位某个服务或IP的连接情况。
结合命令进行实际排查
当发现服务器响应慢或疑似异常连接时,可组合使用这些命令。
例如:怀疑有异常外连,可执行
ss -tunp | grep ESTAB
查看所有已建立的连接,重点关注陌生IP或高频率连接。再配合
lsof -p <PID>
查看具体进程打开了哪些网络资源。
基本上就这些。熟练使用 ss、netstat 和 lsof,足以应对大多数Linux网络连接查看需求。虽然界面不如图形化工具直观,但在服务器无GUI环境下极为实用。


