上一篇
Linux端口状态查询教程
- Linux
- 2025-06-08
- 4200
在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