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

Linux端口状态查询教程

在Linux中,使用 ss -tuln或 netstat -tuln命令查看端口监听状态, ss -tupn或 netstat -tupn查看所有连接状态(含进程),状态 LISTEN表示端口正在监听, ESTABLISHED表示活跃连接。

Linux查看端口状态:全面指南与常用命令详解

在Linux管理中,监控端口状态是诊断网络连接、排查服务故障的核心技能,以下是6种专业方法及详细操作步骤:

netstat 命令(经典工具,适用多数系统)

# 查看所有监听端口 netstat -tuln # 检查指定端口(例:80) netstat -tuln | grep ':80'

  • 参数解析
    • -t:TCP端口
    • -u:UDP端口
    • -l:仅显示监听状态
    • -n:禁用域名解析(加速输出)
    • -p:显示进程PID(需sudo权限)

️ 注:新版本Linux中netstat逐渐被ss取代,但仍有广泛兼容性。


ss 命令(推荐:高效替代方案)

# 显示所有TCP监听端口 ss -tulnp # 实时监控端口活动(类似top) ss -s # 统计概览

  • 优势

    比netstat更快更高效,直接读取内核数据,支持大规模网络分析。


lsof 命令(精准定位进程关联)

# 查看占用80端口的进程 sudo lsof -i :80

输出示例:

Linux端口状态查询教程 第1张

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 0xabcd 0t0 TCP *:http (LISTEN)

  • 关键字段

    COMMAND=进程名,PID=进程ID,USER=运行者,NAME=协议状态


nmap 扫描(网络探测神器)

# 扫描本机端口开放情况 nmap -sT -p 1-65535 localhost # 快速扫描常用端口 nmap -F 127.0.0.1

  • 场景

    检测防火墙规则、验证端口暴露情况,需安装nmap包。


telnet/nc 测试连通性

# 测试远程主机端口(例:8.8.8.8:53) telnet 8.8.8.8 53 # 使用nc(更灵活) nc -zv 192.168.1.10 22 # 检查SSH端口

  • 结果解读

    Connected表示通,Connection refused为拒绝/未监听,超时为防火墙阻断。


/proc 文件系统(底层数据)

# 直接读取内核端口信息 cat /proc/net/tcp | grep -w "0A" # 0A=十进制的10(端口号转换)

  • 进阶技巧

    第2列local_address格式为IP:端口(十六进制),如:0050=80端口。


总结与最佳实践

场景 推荐命令 优势
快速检查监听端口 ss -tuln 速度最快,资源占用低
定位端口占用进程 sudo lsof -i :端口 精确显示进程及文件描述符
外部网络连通性测试 nc -zv 主机 端口 无交互式依赖,适合脚本化
全面端口扫描 nmap localhost 深度探测,支持复杂策略

运维经验

Linux端口状态查询教程 第2张

  • 生产环境优先使用ss+lsof组合
  • 调试容器网络时结合nsenter进入命名空间执行命令
  • 持续监控推荐nethogs或iftop等实时工具


引用说明

本文方法遵循Linux内核文档及以下技术标准:

  1. Linux ss 命令手册
  2. IEEE POSIX 网络工具规范
  3. nmap官方渗入测试指南(Nmap Network Scanning

最后更新:2025年10月 • 验证环境:Ubuntu 22.04 LTS / CentOS Stream 9

Linux端口状态查询教程 第3张

0