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官方文档及以下权威来源:
版权声明:可自由转载,请保留原文链接及作者署名。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/14509.html