Linux端口管理

一、查看已占用端口

1. ss 命令(推荐)

1
ss -tulnp
  • 参数解析

    • -t:显示 TCP 端口
    • -u:显示 UDP 端口
    • -l:仅显示监听(LISTEN)状态的端口
    • -n:以数字形式显示端口(不解析服务名称)
    • -p:显示占用端口的进程信息(需要 root 权限)

    例子:

    1
    2
    Netid State  Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
    tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))

2. netstat 命令(传统工具)

1
netstat -tulnp
  • 参数解析
    • -t/-u:TCP/UDP 协议
    • -l:监听端口
    • -n:禁用域名解析
    • -p:显示进程信息
  • 注意:新版本 Linux 中 netstat 可能被弃用,建议优先使用 ss

3. lsof 命令(查看进程与端口的关联)

1
2
lsof -i :80          # 查看 80 端口占用情况
lsof -i tcp # 查看所有 TCP 端口
  • 输出关键列
    • COMMAND:进程名称
    • PID:进程 ID
    • USER:运行用户
    • NODE:协议类型
    • NAME:地址和端口

二、检查端口开放状态

1. 本地端口是否开放

1
nmap -sT -p 22 localhost   # 扫描本机 22 端口
  • 输出示例

    1
    2
    PORT   STATE SERVICE
    22/tcp open ssh

2. 远程主机端口扫描

1
nmap -p 80,443 example.com      # 扫描指定端口的开放状态

三、过滤特定端口信息

1. 使用 grep 过滤

1
ss -tulnp | grep ':80'          # 查找 80 端口

2. 查看 TCP 连接状态

1
ss -t -a                        # 显示所有 TCP 连接(包括 ESTABLISHED)

四、端口与服务的映射关系

查看 /etc/services 文件

1
grep '80/tcp' /etc/services      # 查看 80 端口对应的服务名称
  • 输出

    1
    http    80/tcp     www    # WorldWideWeb HTTP

五、命令对比速查表

命令 特点 推荐场景
ss 速度快,信息详细 日常端口检查
netstat 传统工具,兼容性好 旧系统兼容
lsof 显示进程与文件的关联 定位具体进程
nmap 专业级端口扫描 安全检测/网络诊断

六、常见问题排查

问题:端口显示 LISTEN 但无法访问

  1. 检查防火墙:

    1
    2
    ufw status              # Ubuntu 防火墙状态
    firewall-cmd --list-all # CentOS 防火墙规则
  2. 验证 SELinux 限制:

    1
    ausearch -m avc -ts recent  # 查看 SELinux 拒绝日志

Linux端口管理
https://bote798.top/2025/05/20/Linux端口管理/
作者
bote798
发布于
2025年5月20日
许可协议