插件窝 干货文章 Linux环境下端口占用情况查询指南

Linux环境下端口占用情况查询指南

端口 进程 bash 使用 533    来源:    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命令(netstat的现代替代品)

ss -tulnp

参数说明: - 参数与netstat类似,但ss执行速度更快

3. 使用lsof命令

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)

4. 查询特定端口

sudo lsof -i :22
# 或
sudo netstat -tulnp | grep :22
# 或
sudo ss -tulnp | grep :22

5. 使用nmap扫描本地端口

sudo nmap -sT -O localhost

6. 查看端口范围

cat /proc/sys/net/ipv4/ip_local_port_range

7. 使用fuser命令

fuser 80/tcp

8. 使用/proc文件系统

ls -l /proc/*/exe | grep 端口号

常见问题解决

端口被占用无法释放

  1. 查找占用进程

    sudo lsof -i :端口号
    
  2. 终止进程

    sudo kill -9 进程ID
    
  3. 如果进程自动重启

    • 检查是否有守护进程或服务管理工具(如systemd)在管理该进程
    • 使用systemctl stop 服务名停止相关服务

端口未监听但无法使用

  1. 检查防火墙设置:

    sudo iptables -L -n
    
  2. 检查SELinux状态:

    getenforce
    

注意事项

  1. 部分命令需要root权限才能查看所有进程信息
  2. 在生产环境中,谨慎使用kill命令终止进程
  3. 定期检查端口占用情况有助于系统安全维护

通过以上方法,您可以全面了解Linux系统中的端口占用情况,并有效解决端口冲突问题。