当前位置:首页 > 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:以数字格式显示端口(避免解析服务名)
  • 优势ssnetstat 的现代替代工具,执行速度更快,属于 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张

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

    # 停止服务(示例)
    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