上一篇                     
               
			  Linux如何查看端口占用情况
- Linux
- 2025-06-07
- 4324
 在Linux系统中,使用 
 
 
ss -tuln 或 
 netstat -tuln 命令可查看监听端口(TCP/UDP),查询具体端口占用用 
 lsof -i :端口号 或 
 ss -tunlp | grep 端口号。
为什么需要查询网络端口?
在Linux系统中,查询网络端口是网络诊断、服务部署、安全审计的核心操作,通过端口状态可快速定位:
- 服务是否正常监听(如Web服务器80端口)
- 可疑连接(排查载入行为)
- 端口冲突(避免服务启动失败)
四大专业工具详解
1️⃣ netstat(经典工具,适合基础检查)
 
# 查看所有监听端口(TCP/UDP) sudo netstat -tuln # 查看所有活动连接(含进程名) sudo netstat -tulnp
输出解析:
- Proto:协议类型(TCP/UDP)
- Recv-Q/Send-Q:队列数据量
- Local Address:监听IP及端口(- 0.0.0:*表示所有接口)
- PID/Program name:进程ID及名称
适用场景:快速检查本地服务状态,系统兼容性强(旧版Linux首选)
2️⃣ ss(netstat替代品,高效精准)
 
# 查看所有TCP监听端口(推荐) ss -tln # 查看UDP端口及进程信息 ss -ulnp
优势:
- 比netstat快3倍(直接读取内核数据)
- 显示更详细的连接状态(如TIME-WAIT、ESTAB)
适用场景:生产环境首选,大数据量连接时性能优势明显
3️⃣ lsof(基于进程的深度分析)
 
# 查看22端口使用情况 sudo lsof -i :22 # 检查某进程(如nginx)的端口 sudo lsof -p $(pgrep nginx) -nP
关键输出:
- COMMAND:进程名称
- USER:运行用户
- TYPE:协议类型
- NODE:端口号
适用场景:精准定位端口冲突、进程级审计
4️⃣ nmap(网络扫描器,安全审计)
 
# 扫描本机开放端口(快速扫描) nmap -sT -O 127.0.0.1 # 扫描特定端口范围(1-1000) nmap -p 1-1000 192.168.1.100
参数解析:
- -sT:TCP全连接扫描
- -O:操作系统探测
- -p:指定端口范围
️ 法律提示:仅扫描自有设备,未经授权扫描他人网络属违法行为!
场景化操作指南
| 需求 | 推荐命令 | 示例 | 
|---|---|---|
| 检查Web服务器是否启动 | ss -tln | grep ':80' | 显示 LISTEN即表示服务正常 | 
| 排查“端口被占用”错误 | sudo lsof -i :<端口号> | 强制结束进程: kill -9 <PID> | 
| 验证防火墙是否放行 | nmap -p 端口号 目标IP | 状态为 open表示可达 | 
| 监控实时连接 | watch -n 1 'ss -s' | 每秒刷新连接统计 | 
安全及最佳实践
- 最小权限原则:查询端口需sudo提权(避免信息遗漏)
- 敏感端口防护:发现异常监听(如22端口陌生IP连接)立即排查
- 工具更新:定期升级nmap等工具(yum update nmap)
- 日志记录:结合/var/log/syslog分析端口活动历史
总结建议
- 日常维护 → 用ss(高效)
- 进程关联分析 → 用lsof(精准)
- 安全审计 → 用nmap(全面)
- 兼容旧系统 → 用netstat(通用)
扩展学习:
- 使用
netcat测试端口连通性:nc -zv 目标IP 端口- 查看端口服务映射:
grep 端口号 /etc/services
引用说明: 基于Linux官方文档及以下权威来源:
- ss(8) – Linux man page
- Nmap Network Scanning Official Guide
- Linux网络安全实践(Red Hat官方手册)
版权声明:可自由转载,请保留原文链接及作者署名。
 
  
			 
			 
			 
			 
			 
			