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

Linux如何查看端口占用情况

在Linux系统中,使用 ss -tulnnetstat -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️⃣ ssnetstat替代品,高效精准)

# 查看所有TCP监听端口(推荐)
ss -tln
# 查看UDP端口及进程信息
ss -ulnp

优势

Linux如何查看端口占用情况  第1张

  • netstat快3倍(直接读取内核数据)
  • 显示更详细的连接状态(如TIME-WAITESTAB

适用场景:生产环境首选,大数据量连接时性能优势明显

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' 每秒刷新连接统计

安全及最佳实践

  1. 最小权限原则:查询端口需sudo提权(避免信息遗漏)
  2. 敏感端口防护:发现异常监听(如22端口陌生IP连接)立即排查
  3. 工具更新:定期升级nmap等工具(yum update nmap
  4. 日志记录:结合/var/log/syslog分析端口活动历史

总结建议

  • 日常维护 → 用ss(高效)
  • 进程关联分析 → 用lsof(精准)
  • 安全审计 → 用nmap(全面)
  • 兼容旧系统 → 用netstat(通用)

扩展学习

  • 使用netcat测试端口连通性:nc -zv 目标IP 端口
  • 查看端口服务映射:grep 端口号 /etc/services

引用说明: 基于Linux官方文档及以下权威来源:

  1. ss(8) – Linux man page
  2. Nmap Network Scanning Official Guide
  3. Linux网络安全实践(Red Hat官方手册)

版权声明:可自由转载,请保留原文链接及作者署名。

0