sudo netstat -anp 可列出所有活动网络连接及进程信息,需 root 权限;常用组合包括 -tulnp 查监听端口、配合 grep 快速过滤,输出中 Local Address 表示绑定地址与端口。

直接运行 sudo netstat -anp 就能列出当前所有活动的网络连接,并附带进程信息。这个命令的关键在于组合使用三个核心参数:-a(显示全部连接和监听端口)、-n(用数字形式显示IP和端口,跳过DNS解析,更快更准)、-p(显示占用该连接的程序名和PID),而 sudo 是必须的,否则普通用户无法看到其他用户的进程信息。
查看监听中的服务端口
多数情况下,你真正关心的是“哪些服务正在监听”,而不是所有已断开的连接。这时应加上 -l 参数:
-
sudo netstat -tulnp:只显示正在监听的 TCP 和 UDP 端口,带进程信息 -
sudo netstat -tlnp:仅限 TCP 监听端口(如 Web 服务、数据库) -
sudo netstat -ulnp:仅限 UDP 监听端口(如 DNS、NTP)
快速定位某个端口或服务
输出内容较多时,配合 grep 过滤更高效:
-
sudo netstat -tulnp | grep ':80':查所有监听 80 端口的进程(注意冒号不能省) -
sudo netstat -anp | grep ESTABLISHED:筛选出已建立的实际通信连接 -
sudo netstat -anp | grep 'firefox':查 Firefox 浏览器发起的所有连接
注意输出中地址字段的含义
结果第一列是协议,第二列是本地地址(Local Address)。常见格式有:
-
0.0.0.0:22表示 SSH 服务在本机所有 IPv4 地址上监听 22 端口 -
127.0.0.1:631表示 CUPS 打印服务只允许本机访问 631 端口 -
[::]:22表示监听所有 IPv6 地址的 22 端口(方括号是 IPv6 格式标识) -
*:*在 UDP 行中表示未绑定具体地址,属正常现象
如果命令报“command not found”
说明系统未安装 net-tools 包:
- CentOS/RHEL 8+:
sudo yum install -y net-tools - Ubuntu/Debian:
sudo apt install -y net-tools
不过建议日常优先用 ss -tulnp 替代,它更快、更轻量,且大多数新系统默认自带。











