当前位置:首页 > Linux > 正文

Linux如何检测80端口占用?

使用命令 netstat -tuln | grep ':80' 或 ss -tuln | grep ':80' 查看 80端口占用情况,若输出结果则端口被占用,无输出则空闲,也可用 lsof -i :80 检查具体进程。

查看80端口占用的核心方法

方法1:使用 ss 命令(推荐)

ss -tuln | grep ':80b'

  • 操作步骤
    1. 打开终端(Ctrl+Alt+T)
    2. 执行命令 ss -tuln | grep ':80b'
    3. 观察输出:
      • 有结果 → 80端口被占用(示例:tcp LISTEN 0 128 *:80 *:*)
      • 无结果 → 端口未被占用

  • 参数解析
    • -t:检查TCP协议
    • -u:检查UDP协议
    • -l:仅显示监听中的端口
    • -n:以数字格式显示端口(避免解析服务名)
  • 优势:ss 是 netstat 的现代替代工具,执行速度更快,属于 iproute2 标准包组件。

方法2:使用 lsof 命令

sudo lsof -i :80

  • 输出关键字段
    • COMMAND:进程名称(如nginx)
    • PID:进程ID
    • USER:运行用户
    • TYPE:协议类型(TCP/UDP)

  • 说明
    • 需root权限(使用sudo)
    • 直接显示占用进程的详细信息

方法3:使用 netstat 命令(传统方案)

sudo netstat -tulnp | grep ':80b'

  • 参数解析
    • -p:显示进程名/PID(需sudo权限)
    • 输出示例:tcp6 0 0 :::80 :::* LISTEN 1234/nginx


结果分析与故障处理

▶ 确认端口占用后的操作:

  1. 定位进程

    Linux如何检测80端口占用? 第1张

    Linux如何检测80端口占用? 第2张

    • 通过 sudo ss -tulnp | grep ':80' 查看PID及进程名
  2. 管理对应服务

    Linux如何检测80端口占用? 第3张

    # 停止服务(示例) sudo systemctl stop nginx # 彻底禁用(谨慎操作) sudo systemctl disable nginx
  3. 检查未知占用

    • 若出现未授权的进程占用,立即排查安全风险: # 查看进程路径 ls -l /proc/<PID>/exe

▶ 端口未被占用时的表现:

  • 所有命令均无输出结果


专业建议

  1. 权限管理
    • 普通用户可使用 ss -tln | grep ':80' 快速检查
    • 查看进程详情需 sudo 提权(遵循最小权限原则)
  2. 安全提示
    • 80端口默认用于HTTP服务,若被未知进程占用可能存在入侵风险
    • 定期使用 sudo lsof -i :80 审计服务
  3. 工具选择

    | 命令 | 速度 | 信息详细度 | 安装需求 |

    |———|——–|————|——————|

    | ss | | | 内置(主流发行版)|

    | lsof | | | 需安装 lsof 包 |

    | netstat| | | net-tools 包 |


知识扩展

  • 端口状态解析
    • LISTEN:服务正在监听
    • ESTABLISHED:活动连接
    • TIME_WAIT:连接关闭中

  • 查看全部监听端口: ss -tuln # 推荐 netstat -tuln

引用说明: 基于 Linux 内核文档(kernel.org)及《Linux 系统管理技术手册》(Richard Blum 著),命令测试环境为 Ubuntu 22.04/CentOS Stream 9,操作前请确认您有系统管理权限,生产环境中建议备份关键数据。

0