Linux 查看端口命令

在 Linux系统中,查看端口使用情况是运维和故障排查的常见操作。

以下是几种常用的命令和方法:

1 使用 netstat 命令(经典方法)

⚠️ 注意:netstat 已逐渐被 ss 取代,但在大多数系统上仍可用。

1
2
3
4
5
6
7
8
#查看所有监听的TCP/UDP端口
netstat -tuln

#查看所有连接(包括监听和已建立的连接)
netstat -tunlp

#查看特定端口(如80)
netstat -tunlp | grep :80

参数说明:

-t:显示 TCP 端口 -u:显示 UDP 端口 -l:仅显示监听状态的端口(LISTEN)
-n:以数字形式显示地址和端口(不解析域名) -p:显示占用端口的进程(需 root
权限)

2 使用 ss 命令(推荐,更高效)

ss 是 netstat 的现代替代品,速度更快。

1
2
3
4
5
6
7
8
#查看所有监听的TCP端口
ss -tuln

#查看所有连接
ss -tunlp

#查看特定端口(如3306)
ss -tunlp | grep :3306

参数与 netstat 类似,但执行效率更高。

3 使用 lsof 命令(功能强大)

1
2
3
4
5
6
7
8
#查看所有监听端口
lsof -i -P -n | grep LISTEN

#查看特定端口(如22)
lsof -i :22

#查看特定协议(如TCP)
lsof -i tcp

优点: 可以精确查看某个端口被哪个进程占用。

4 查看端口是否被占用(快速检查)

=================================

1
2
3
4
5
#检查80端口是否被占用
lsof -i :80

#或使用 netstat/ss
ss -tuln | grep :80

5 查看防火墙开放的端口(系统级)

=================================

对于 firewalld(CentOS/RHEL 7+)

1
2
3
#查看已开放的端口
firewall-cmd --list-ports
firewall-cmd --list-all

对于 ufw(Ubuntu)

1
ufw status

对于 iptables

1
iptables -L -n

6 使用 nmap 扫描本地或远程端口(需安装)

=========================================

1
2
3
4
5
6
7
8
#扫描本机开放端口
nmap localhost

#扫描远程服务器
nmap 192.168.1.100

#扫描特定端口范围
nmap -p 1-1000 localhost

实用示例

1
2
3
4
5
6
7
8
#查看谁在占用3000端口
lsof -i :3000

#查看所有监听端口及对应进程(需root)
sudo ss -tulnp

#仅查看TCP监听端口
ss -tnl

总结

命令 推荐场景
ss -tuln ✅ 推荐:查看监听端口,速度快
netstat -tuln 兼容旧系统
lsof -i :端口 ✅ 精确查找某个端口的占用进程
firewall-cmd –list-ports 查看防火墙放行的端口

🔐 提示:部分命令(如显示进程信息)需要 root 或 sudo 权限。

通过这些命令,你可以轻松掌握 Linux 系统中端口的使用情况。