在linux系统中,使用netstat命令可以查看网络连接状态。常用方法包括:1. 使用netstat -a查看所有活跃连接;2. 使用netstat -at和netstat -au分别查看tcp和udp连接;3. 使用netstat -l查看监听端口,结合-lt和-lu可按协议过滤;4. 添加-p参数显示进程信息,需root权限;5. 使用grep过滤特定端口,如netstat -ant | grep :80;6. 结合wc -l统计连接数。这些操作有助于排查网络问题并监控服务状态。
在linux系统中查看网络连接状态,
netstat
是一个非常实用的命令行工具。它可以显示当前系统的网络连接、路由表、接口统计信息等。虽然现在有些系统推荐使用
ss
或
ip
命令替代,但
netstat
依然广泛使用,尤其适合快速检查连接状态。
查看所有活动的网络连接
如果你想一次性看到系统中所有的活跃连接(包括TCP和UDP),可以使用以下命令:
netstat -a
这个命令会列出所有正在监听的端口和已建立的连接。如果你只关心 TCP 连接,可以用
-t
参数;如果是 UDP,就用
-u
。
常用组合:
-
netstat -at
:查看所有 TCP 连接
-
netstat -au
:查看所有 UDP 连接
这样你可以根据协议类型来过滤结果,避免信息过载。
查看监听中的端口和服务
有时候我们想知道哪些服务正在监听端口等待连接,这时候可以加上
-l
参数:
netstat -l
这个命令会列出所有处于 LISTEN 状态的端口。通常用于排查某个服务是否正常启动,比如 apache 是否在监听 80 端口,或者 ssh 是否在监听 22。
结合协议查看更清晰:
-
netstat -lt
:只看监听中的 TCP 端口
-
netstat -lu
:只看监听中的 UDP 端口
如果还想看到对应的服务名或进程ID,可以加上
-n
(不解析服务名)或
-p
(显示进程信息,需要 root 权限)。
显示进程信息与端口关联
为了更清楚地知道是哪个程序在使用某个端口,可以使用
-p
参数:
sudo netstat -ltp
这个命令会列出所有监听的 TCP 端口,并显示对应的进程名和 PID。这对排查异常连接或调试服务非常有帮助。
例如你发现有个未知进程占用了 3306 端口(mysql默认端口),就可以通过这个命令找到是哪个程序在运行,进而判断是否正常。
注意:非 root 用户执行时可能看不到其他用户的进程信息。
快速检查特定端口的连接情况
如果你只想查看某个特定端口的连接情况,比如 80(http)或 443(https),可以在命令后面加上
| grep 端口号
:
netstat -ant | grep :80
这会列出所有与 80 端口相关的连接。常见于服务器排查访问量过大、连接数过多等问题。
一些常用的组合:
-
netstat -ant | grep :22
:查看SSH连接情况
-
netstat -ant | grep :3306
:查看mysql连接情况
配合
wc -l
还能统计连接数量:
netstat -ant | grep :80 | wc -l
基本上就这些了。虽然
netstat
功能强大,但日常使用掌握这几个常用命令就已经足够应对大多数网络连接问题了。