在 Linux系统中,查看端口使用情况是运维和故障排查的常见操作。
以下是几种常用的命令和方法:
1 使用 netstat 命令(经典方法)
⚠️ 注意:netstat 已逐渐被 ss 取代,但在大多数系统上仍可用。
1 | #查看所有监听的TCP/UDP端口 |
参数说明:
-t:显示 TCP 端口 -u:显示 UDP 端口 -l:仅显示监听状态的端口(LISTEN)
-n:以数字形式显示地址和端口(不解析域名) -p:显示占用端口的进程(需 root
权限)
2 使用 ss 命令(推荐,更高效)
ss 是 netstat 的现代替代品,速度更快。
1 | #查看所有监听的TCP端口 |
参数与 netstat 类似,但执行效率更高。
3 使用 lsof 命令(功能强大)
1 | #查看所有监听端口 |
优点: 可以精确查看某个端口被哪个进程占用。
4 查看端口是否被占用(快速检查)
=================================
1 | #检查80端口是否被占用 |
5 查看防火墙开放的端口(系统级)
=================================
对于 firewalld(CentOS/RHEL 7+)
1 | #查看已开放的端口 |
对于 ufw(Ubuntu)
1 | ufw status |
对于 iptables
1 | iptables -L -n |
6 使用 nmap 扫描本地或远程端口(需安装)
=========================================
1 | #扫描本机开放端口 |
实用示例
1 | #查看谁在占用3000端口 |
总结
命令 | 推荐场景 |
---|---|
ss -tuln | ✅ 推荐:查看监听端口,速度快 |
netstat -tuln | 兼容旧系统 |
lsof -i :端口 | ✅ 精确查找某个端口的占用进程 |
firewall-cmd –list-ports | 查看防火墙放行的端口 |
🔐 提示:部分命令(如显示进程信息)需要 root 或 sudo 权限。
通过这些命令,你可以轻松掌握 Linux 系统中端口的使用情况。