Linux如何快速查看端口占用?
- Linux
- 2025-06-12
- 5
使用 netstat 命令(经典工具)
netstat 是传统网络工具,可查看监听端口和活动连接:
# 查看所有监听端口(TCP/UDP) sudo netstat -tuln # 查看所有活动连接(含进程名) sudo netstat -tulnp
参数解析:
- -t:TCP端口
- -u:UDP端口
- -l:仅显示监听端口
- -n:以数字形式显示(不解析域名)
- -p:显示关联进程名(需sudo权限)
输出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
适用场景:快速检查服务监听状态(如SSH默认端口22)。
使用 ss 命令(推荐替代方案)
ss(Socket Statistics)是netstat的现代替代品,速度更快:

优势:
- 更低的系统资源消耗
- 支持过滤语法(如 sport = :443 过滤443端口)
使用 lsof 命令(查看进程级占用)
通过进程视角检查端口使用:
# 查看所有进程占用的网络端口 sudo lsof -i -P -n # 检查特定端口(如3306)的进程 sudo lsof -i :3306
输出关键列:

- COMMAND:进程名称
- PID:进程ID
- TYPE:协议类型(TCP/UDP)
- NODE:端口号
使用 nmap 扫描本地端口(安全检测)
通过扫描工具检查开放端口:
# 安装nmap(如未安装) sudo apt install nmap # Debian/Ubuntu sudo yum install nmap # CentOS/RHEL # 扫描本机所有端口 sudo nmap -sT -p- 127.0.0.1
参数说明:
- -sT:TCP连接扫描
- -p-:扫描1-65535全部端口
- 0.0.1:目标IP(本机)
️ 注意:避免未经授权扫描他人服务器,可能触发安全警报。
查看 /etc/services 文件(端口与协议映射)
获取标准端口号对应的服务名称:

cat /etc/services | grep -w 80
输出示例:
http 80/tcp www # World Wide Web HTTP
此文件定义了IANA分配的端口标准,但实际服务可能使用非标准端口。
关键注意事项
- 权限问题:
- 查看进程关联端口需 sudo 权限(如 netstat -p 或 lsof)。
- 端口状态解析:
- LISTEN:服务正在监听
- ESTABLISHED:活动连接
- TIME_WAIT:连接关闭中
- 防火墙影响:
- 端口开放但无法访问?检查防火墙: sudo ufw status # Ubuntu防火墙 sudo firewall-cmd --list-ports # CentOS防火墙
总结建议
- 日常运维:优先使用 ss -tuln(高效)或 netstat -tuln(兼容性好)。
- 进程排查:用 lsof -i :端口号 定位占用进程。
- 安全审计:通过 nmap 验证端口暴露情况。
定期检查端口可有效预防未经授权的服务运行,提升系统安全性,建议结合自动化工具(如 fail2ban)加强防护。
引用说明 参考 Linux 官方文档(man pages)及以下资源:
- netstat, ss, lsof, nmap 的 Linux man 手册(终端输入 man 命令名 查看)
- IANA 端口分配标准(https://www.iana.org/assignments/service-names-port-numbers)
- Linux 网络管理权威指南《The Linux Documentation Project》