在 Linux 系统中,可以使用多种方法来检查某个端口是否被占用,并释放该端口。以下是详细的步骤:
1. 检查端口是否被占用
使用 netstat
sudo netstat -tuln | grep <port_number>
例如,要检查端口 8080 是否被占用:
sudo netstat -tuln | grep 8080
使用 ss
sudo ss -tuln | grep <port_number>
例如,要检查端口 8080 是否被占用:
sudo ss -tuln | grep 8080
使用 lsof
sudo lsof -i :<port_number>
例如,要检查端口 8080 是否被占用:
sudo lsof -i :8080
使用 fuser
sudo fuser <port_number>/tcp
例如,要检查端口 8080 是否被占用:
sudo fuser 8080/tcp
2. 释放被占用的端口
一旦你确定了哪个进程占用了端口,可以使用 kill
命令来终止该进程,从而释放端口。
使用 lsof
和 kill
-
查找占用端口的进程:
sudo lsof -i :<port_number>
例如:
sudo lsof -i :8080
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 12345 root 6u IPv4 12345 0t0 TCP *:http-alt (LISTEN)
-
终止进程:
sudo kill -9 <PID>
例如:
sudo kill -9 12345
使用 fuser
和 kill
-
查找占用端口的进程:
sudo fuser <port_number>/tcp
例如:
sudo fuser 8080/tcp
输出示例:
8080/tcp: 12345
-
终止进程:
sudo fuser -k <port_number>/tcp
例如:
sudo fuser -k 8080/tcp
3. 验证端口是否已释放
再次运行检查端口的命令,确保端口已经被释放:
sudo netstat -tuln | grep <port_number>
或者:
sudo ss -tuln | grep <port_number>
如果没有输出,说明端口已经被成功释放。
总结
- 使用
netstat
、ss
、lsof
或fuser
命令检查端口是否被占用。 - 使用
lsof
或fuser
查找占用端口的进程 ID (PID)。 - 使用
kill
命令终止占用端口的进程。 - 再次检查端口,确保端口已经被释放。