TL;DR
端口问题三步走:ss -tlnp 看监听,lsof -i :端口 找占用者,ps -p PID -o pid,cmd 确认身份后再 kill。
查看监听端口
| 操作 | 命令 |
|---|---|
| 所有 TCP 监听及进程 | ss -tlnp |
| 只看某端口 | ss -tlnp 'sport = :8080' |
| 旧命令替代 | netstat -tlnp |
| 查看 UDP | ss -ulnp |
找进程
| 操作 | 命令 | |
|---|---|---|
| 谁占用了端口 | lsof -i :8080 | |
| 按名字找进程 | pgrep -f 关键字 | |
| 查看进程详情 | ps -p PID -o pid,user,cmd | |
| 完整列表过滤 | `ps aux | grep 关键字` |
处理进程
| 操作 | 命令 |
|---|---|
| 正常终止 | kill PID |
| 强制终止 | kill -9 PID |
| 按名字终止 | pkill -f 关键字 |
排查要点
- 127.0.0.1 监听 = 仅本机可访问;0.0.0.0 /
*= 对外暴露; ss里看不到进程名,通常是权限不足,加sudo;- 杀进程前先确认 PID 对应关系,避免误杀系统服务。
来源
- Linux man pages(ss / lsof / ps / kill)