上一篇
Linux端口状态查询教程
- Linux
- 2025-06-08
- 4219
在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
输出示例:
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进入命名空间执行命令- 持续监控推荐
nethogs或iftop等实时工具
引用说明:
本文方法遵循Linux内核文档及以下技术标准:
- Linux
ss命令手册 - IEEE POSIX 网络工具规范
nmap官方渗透测试指南(Nmap Network Scanning)
最后更新:2025年10月 • 验证环境:Ubuntu 22.04 LTS / CentOS Stream 9
