上一篇
"奇怪,我的Web服务怎么启动失败了?提示8080端口被占用..." 作为Linux用户,这种场景你一定不陌生。😫 明明记得没有其他程序在用这个端口啊!别着急,今天教你几招快速定位端口关联进程的实用技巧,让你像侦探一样轻松破案!
sudo netstat -tulnp | grep 8080
输出示例:
tcp6 0 0 :::8080 :::* LISTEN 1234/java
参数解析:
-t
:显示TCP端口 -u
:显示UDP端口 -l
:仅显示监听中的端口 -n
:直接显示端口号(不解析为服务名) -p
:显示进程信息(需要sudo权限) 小贴士:
👉 如果提示netstat
不存在,可以安装net-tools
包,或者直接用更现代的ss
命令替代
sudo ss -ltnp | grep 8080
优势:
输出解读:
最后一列的users:(("java",pid=1234,fd=42))
明确告诉你这是个Java进程
sudo lsof -i :8080
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1234 root 42u IPv6 12345 0t0 TCP *:8080 (LISTEN)
亮点功能:
-i
参数专门用于网络连接查询 如果上述命令都不可用,还可以直接查看系统信息:
先找出端口对应的inode号:
sudo ls -l /proc/net/tcp6 | grep 8080
再通过inode反查进程:
sudo grep -l <inode号> /proc/*/fd/* 2>/dev/null
适用场景:
当系统工具被精简时(如某些Docker容器环境)
情况1:看到Permission denied
➡️ 记得在命令前加sudo
获取root权限
情况2:发现陌生进程占用端口
ps -p 1234 -o cmd
用这个命令查看该进程的完整启动命令,判断是否安全
情况3:想强制释放端口
sudo kill -9 1234
(⚠️ 请确认该进程可以安全终止)
端口范围 | 用途说明 |
---|---|
0-1023 | 系统保留端口(需要root) |
1024-49151 | 注册端口(常见服务使用) |
49152-65535 | 动态/私有端口 |
ss -ltnp | grep 端口号
lsof -i :端口号
netstat -tulnp
/proc
目录 下次再遇到端口冲突,你就可以淡定地说:"让我看看是哪个小淘气在占用我的端口~" 😎 记得收藏这些命令,它们会成为你Linux运维路上的好帮手!
本文由 雍卓 于2025-07-31发表在【云服务器提供商】,文中图片由(雍卓)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/494926.html
发表评论