如何查看端口是否被占用
Windows 系统
1. 使用命令行 (推荐)
- 按Win+R,输入cmd打开命令提示符 (建议以管理员身份运行)
- 查看所有端口占用:
- plaintext
- netstat -ano
- 查看特定端口 (如 8080) 占用:
- plaintext
- netstat -ano | findstr :8080
- 输出结果中,最后一列是进程 ID (PID)
- 根据 PID 查找进程名:
- plaintext
- tasklist | findstr <PID>
2. 使用图形界面
- 打开任务管理器(Ctrl+Shift+Esc),切换到 "性能"选项卡,点击"打开资源监视器"
- 在资源监视器中,选择 "网络"选项卡,在"侦听端口" 栏查看所有占用端口及对应进程
Linux 系统
1. 使用 lsof 命令 (推荐)
plaintext
sudo lsof -i :<端口号># 例如:sudo lsof -i :8080输出包含进程名、PID、用户等详细信息,需管理员权限
2. 使用 ss 命令 (高效替代 netstat)
plaintext
sudo ss -tulnp | grep :<端口号># 选项说明:# -t: TCP连接# -u: UDP连接# -l: 仅显示监听状态# -n: 数字形式显示端口# -p: 显示进程PID和名称比 netstat 更高效,适合大规模系统
3. 使用 netstat 命令
plaintext
sudo netstat -tulnp | grep :<端口号>传统方法,功能与 ss 类似
Mac 系统
1. 使用 lsof 命令 (推荐)
plaintext
sudo lsof -i :<端口号># 例如:sudo lsof -i :8080需管理员密码,显示进程详细信息
2. 使用 netstat 命令
plaintext
netstat -an | grep <端口号># 或netstat -tuln | grep :<端口号>无需管理员权限,结果较简略
通用技巧
- 识别进程:找到 PID 后,使用以下命令查看进程详情:Windows: tasklist /fi "PID eq <PID>"Linux/Mac: ps -ef | grep <PID> 或 top -p <PID>
- 释放被占用端口:Windows: taskkill /f /pid <PID>Linux/Mac: sudo kill -9 <PID>
总结
系统 | 推荐命令 | 优势 |
Windows | netstat -ano + 资源监视器 | 命令简单,图形界面直观 |
Linux | ss -tulnp 或 lsof -i :端口 | 高效,信息全面 |
Mac | lsof -i :端口 | 功能强大,跨平台一致 |
提示:查看服务器端口时,可考虑使用防火墙工具 (如 Linux 的 ufw) 确认端口是否对外开放。
