插件窝 干货文章 Linux中的端口占用检查操作详解

Linux中的端口占用检查操作详解

端口 使用 口号 检查 1037    来源:    2025-04-09

Linux端口占用检查操作详解

在Linux系统中,检查端口占用情况是网络管理和故障排查的重要技能。以下是几种常用的方法:

1. 使用netstat命令

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

2. 使用ss命令(更现代的替代方案)

ss -tulnp

参数与netstat类似,但性能更好: - -t:TCP端口 - -u:UDP端口 - -l:监听端口 - -n:数字形式 - -p:显示进程信息

3. 使用lsof命令

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)

4. 检查特定端口

netstat -tulnp | grep 端口号
# 或
ss -tulnp | grep 端口号
# 或
lsof -i :端口号

5. 使用nmap工具(需安装)

nmap -sT -O localhost

6. 查看端口范围使用情况

cat /proc/sys/net/ipv4/ip_local_port_range

7. 检查防火墙规则

iptables -L -n -v
# 或
ufw status  # 如果使用UFW防火墙

8. 检查服务绑定

systemctl list-sockets

常见问题解决

  1. 端口被占用无法启动服务

    • 找出占用进程:lsof -i :端口号
    • 终止进程:kill -9 PID
    • 或者修改服务配置使用其他端口
  2. 端口未监听但连接被拒绝

    • 检查防火墙设置
    • 检查SELinux状态:getenforce
  3. 临时释放端口

    fuser -k 端口号/tcp
    
  4. 查看端口连接状态

    netstat -anp | grep ESTABLISHED
    

注意事项

  • 需要root权限才能查看所有进程的端口占用情况
  • 生产环境中谨慎使用kill -9,可能造成数据丢失
  • 某些工具如netstat可能在新系统中被标记为过时,推荐使用ss命令

掌握这些命令可以帮助您快速诊断网络服务问题,优化系统资源配置。