在服务器管理、故障排查场景里,查看网络连接状态是高频操作。但很多刚接触Linux的用户不知道该如何查看,那么Linux怎么查看网络连接状态?我们来探讨一下吧。
1、使用netstat查看网络连接
netstat是一个功能强大的网络统计工具,可以显示活动的网络连接、监听端口、路由表等信息。
常用命令示例:
netstat -tuln:查看当前正在监听的TCP/UDP端口(-t TCP, -u UDP, -l 监听, -n 显示数字地址)
netstat -anp | grep :80:查看80端口的连接及对应进程
netstat -tp:显示所有TCP连接,并显示对应的程序名
注意:部分新系统已默认不安装netstat,需通过 net-tools 包安装。
2、使用ss命令替代netstat
ss是现代Linux推荐使用的工具,比netstat更高效,能获取更详细的socket信息。
常用命令示例:
ss -tuln:列出所有监听的网络端口
ss -tnp:显示所有TCP连接,包含进程信息
ss -s:快速查看网络连接统计摘要
ss在性能和输出速度上优于 netstat,建议优先使用。
3、查看端口占用与服务关联
当你发现某个端口被占用时,需要定位是哪个进程在使用。
lsof -i :22:查看22端口(如SSH)被哪个进程占用
lsof -i TCP:80:查看TCP 80端口的连接情况
ps -ef | grep 进程名:进一步查看进程详细信息
lsof 命令非常灵活,适合深入排查具体连接来源。
4、使用nmap扫描本地或远程端口(可选)
虽然主要用于安全检测,但nmap也可用于查看目标主机的开放端口。
nmap localhost:扫描本机开放端口
nmap 192.168.1.100:扫描指定IP的端口状态
需提前安装nmap工具,适用于网络环境诊断。