上一篇
Linux如何查看端口占用情况?
- Linux
- 2025-06-07
- 3951
查看Linux端口占用常用命令:
netstat -tulpn
显示TCP/UDP监听端口及进程;
ss -tuln
更快速替代方案,两者均需
sudo
查看全部信息,
lsof -i :端口号
可查指定端口进程。
在 Linux 系统中,查看端口状态是网络管理和故障排查的核心技能,本文将通过 6 种专业方法,详细演示如何查看端口占用、监听状态及远程端口连通性,涵盖常见工具与进阶技巧。
一、netstat
命令(经典工具)
# 查看所有监听端口 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
适用场景:快速检查本地服务监听状态,兼容多数旧版系统。
二、ss
命令(netstat
替代方案)
# 查看所有监听端口(更高效) sudo ss -tuln # 检查特定端口占用(如 80) sudo ss -tlnp sport = :80
优势:
- 执行速度比
netstat
更快 - 支持过滤语法(如
sport = :443
) - 直接显示进程信息(
-p
参数)
推荐场景:新版本系统首选(CentOS 7+/Ubuntu 18.04+),大数据量时性能显著提升。
️ 三、lsof
命令(进程级分析)
# 查看所有网络端口占用 sudo lsof -i # 检查特定端口(如 3306) sudo lsof -i :3306
输出信息:
- 进程名(COMMAND)
- 进程ID(PID)
- 用户(USER)
- 端口类型(TCP/UDP)
示例输出:
mysqld 789 mysql 21u IPv6 0xab1 0t0 TCP *:3306 (LISTEN)
核心价值:精确定位端口占用进程及运行用户,适合服务冲突排查。
四、检查远程端口连通性
方法 1:telnet
telnet example.com 22 # 测试 SSH 端口
▸ 连接成功 → 端口开放
▸ Connection refused
→ 端口关闭或拒绝访问
方法 2:nc
(netcat)
nc -zv example.com 80 # 快速探测
参数:
-z
:扫描模式-v
:显示详细结果
方法 3:nmap
(专业扫描)
sudo nmap -sT -p 22,80,443 example.com
参数解析:
-sT
:TCP 连接扫描-p
:指定端口范围(如1-1000
)
️ 注意:扫描他人服务器需合法授权!
五、通过 /proc
文件系统查看
手动查看进程端口映射:
# 1. 列出所有网络套接字 ls -l /proc/net/tcp # 2. 定位进程关联端口 ls -l /proc/<PID>/fd/ | grep socket
操作流程:
cat /proc/net/tcp
获取十六进制端口号(如0A
= 端口 80)- 通过进程 ID 查看具体文件描述符
适用场景:无网络工具时的应急方法,深入理解系统机制。
🧩 六、防火墙工具辅助分析
1️⃣ ufw
(Ubuntu)
sudo ufw status # 查看防火墙放行端口
2️⃣ firewall-cmd
(CentOS)
sudo firewall-cmd --list-ports # 显示开放端口
总结与最佳实践
场景 | 推荐命令 |
---|---|
本地端口监听检查 | ss -tuln |
定位端口占用进程 | sudo lsof -i :端口 |
远程端口连通性测试 | nc -zv 主机 端口 |
批量扫描开放端口 | nmap -sT 目标主机 |
关键建议:
- 新系统优先使用
ss
替代netstat
- 排查进程占用必选
lsof
- 生产环境扫描使用
nmap
需谨慎 - 结合防火墙工具验证策略是否生效
引用说明:
- 基于 Linux man 手册(
man netstat
,man ss
,man lsof
)- 网络协议部分参考 TCP/IP RFC 标准文档
- 安全实践符合 CIS Linux Benchmark 规范
更新日期:2025年10月
适用系统:CentOS/RHEL, Ubuntu/Debian 等主流发行版
本文持续更新,建议收藏备用,遇到具体问题可查阅相关命令的 man
手册(例:man ss
)获取完整参数说明。