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

Linux端口状态查询教程

在Linux中,使用 ss -tulnnetstat -tuln命令查看端口监听状态, ss -tupnnetstat -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取代,但仍有广泛兼容性。

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


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

# 显示所有TCP监听端口
ss -tulnp
# 实时监控端口活动(类似top)
ss -s  # 统计概览
  • 优势
    netstat更快更高效,直接读取内核数据,支持大规模网络分析。

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

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

输出示例:

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 深度探测,支持复杂策略

运维经验

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

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

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

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

0