Linux中查看端口占用情况的多种方法

1. 使用 netstat 命令

Bash# 查看所有端口占用情况
netstat -tuln
# 查看特定端口占用情况
netstat -tuln | grep :80
# 查看进程信息(包含PID和进程名)
netstat -tulnp
# 查看特定端口的详细信息
netstat -tulnp | grep :8080

2. 使用 ss 命令(推荐)

Bash# 查看所有端口占用
ss -tuln
# 查看特定端口
ss -tuln | grep :80
# 查看进程信息
ss -tulnp
# 查看TCP端口
ss -tln
# 查看UDP端口ss -uln

3. 使用 lsof 命令

Bash# 查看所有网络连接
lsof -i
# 查看特定端口
lsof -i :80
# 查看TCP连接
lsof -i tcp
# 查看UDP连接
lsof -i udp
# 查看指定协议和端口
lsof -i tcp:8080

4. 使用 fuser 命令

Bash# 查看使用指定端口的进程
fuser 80/tcp
# 查看使用指定端口的进程ID
fuser -v 8080/tcp
# 查看所有端口使用情况
fuser -v 80/tcp 443/tcp

5. 使用 ps 命令结合 grep

Bash# 查看所有进程
ps aux | grep [进程名]
# 查看特定端口的进程
ps aux | grep [关键字]

常用参数说明

  • -t: 显示TCP端口

  • -u: 显示UDP端口

  • -l: 显示监听状态的端口

  • -n: 以数字形式显示地址和端口

  • -p: 显示进程ID(PID)

  • -i: 显示网络连接信息

实际示例

Bash# 查看80端口被哪个进程占用
ss -tulnp | grep :80
# 或
netstat -tulnp | grep :80
# 或
lsof -i :80
# 查看所有监听端口
ss -tuln | grep LISTEN
# 查看某个进程占用的端口
lsof -p [PID]

推荐使用顺序

  1. ss 命令 - 现代Linux系统推荐使用,性能更好

  2. netstat 命令 - 兼容性好,老系统常用

  3. lsof 命令 - 功能强大,可以查看文件和网络连接

选择哪种方法主要看你的系统环境和具体需求。