在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类似,但性能更好:
- -t
:TCP端口
- -u
:UDP端口
- -l
:监听端口
- -n
:数字形式
- -p
:显示进程信息
lsof -i :端口号
例如检查80端口:
lsof -i :80
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 5678 www-data 4u IPv6 12345 0t0 TCP *:http (LISTEN)
netstat -tulnp | grep 端口号
# 或
ss -tulnp | grep 端口号
# 或
lsof -i :端口号
nmap -sT -O localhost
cat /proc/sys/net/ipv4/ip_local_port_range
iptables -L -n -v
# 或
ufw status # 如果使用UFW防火墙
systemctl list-sockets
端口被占用无法启动服务:
lsof -i :端口号
kill -9 PID
端口未监听但连接被拒绝:
getenforce
临时释放端口:
fuser -k 端口号/tcp
查看端口连接状态:
netstat -anp | grep ESTABLISHED
kill -9
,可能造成数据丢失掌握这些命令可以帮助您快速诊断网络服务问题,优化系统资源配置。