在Linux系统中,有多种方法可以查询端口占用情况。以下是几种常用且有效的方法:
netstat -tulnp
参数说明:
- -t
:显示TCP端口
- -u
:显示UDP端口
- -l
:仅显示监听端口
- -n
:以数字形式显示地址和端口号
- -p
:显示进程ID和名称
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp6 0 0 :::80 :::* LISTEN 5678/apache2
ss -tulnp
参数说明: - 参数与netstat类似,但ss执行速度更快
lsof -i :端口号
示例:
lsof -i :80
输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 5678 www-data 3u IPv4 12345 0t0 TCP *:http (LISTEN)
sudo lsof -i :22
# 或
sudo netstat -tulnp | grep :22
# 或
sudo ss -tulnp | grep :22
sudo nmap -sT -O localhost
cat /proc/sys/net/ipv4/ip_local_port_range
fuser 80/tcp
ls -l /proc/*/exe | grep 端口号
查找占用进程:
sudo lsof -i :端口号
终止进程:
sudo kill -9 进程ID
如果进程自动重启:
systemctl stop 服务名
停止相关服务检查防火墙设置:
sudo iptables -L -n
检查SELinux状态:
getenforce
通过以上方法,您可以全面了解Linux系统中的端口占用情况,并有效解决端口冲突问题。