在 Linux 中查看占用 ** 端口(eg:1717)**的进程号(PID),可以通过以下命令实现:
方法 1:使用 netstat
命令
sudo netstat -tulnp | grep ':1717'
- 参数解释:
-t
:查看 TCP 端口。-u
:查看 UDP 端口。-l
:仅显示监听中的端口。-n
:以数字形式显示端口(不解析服务名称)。-p
:显示进程信息(需要sudo
权限)。
- 输出示例:
tcp6 0 0 :::1717 :::* LISTEN 1234/your_process
- 最后一列的
1234
即为进程 PID。
- 最后一列的
方法 2:使用 lsof
命令
sudo lsof -i :1717
- 参数解释:
-i :1717
:指定查看 1717 端口。
- 输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME your_pro 1234 root 3u IPv4 1234567 0t0 TCP *:1717 (LISTEN)
PID
列为进程号(此处为1234
)。
方法 3:使用 ss
命令(推荐,替代 netstat
)
sudo ss -ltnp | grep ':1717'
- 参数解释:
-l
:仅显示监听中的端口。-t
:查看 TCP 端口。-n
:以数字形式显示。-p
:显示进程信息。
- 输出示例:
LISTEN 0 128 *:1717 *:* users:(("your_process",pid=1234,fd=3))
pid=1234
直接标出进程号。
注意事项
- 权限问题:
- 若未使用
sudo
,可能无法看到所有进程信息。
- 若未使用
- 端口状态:
- 如果无输出,表示当前无进程占用 1717 端口。
- 服务类型:
- 确认端口是 TCP 还是 UDP(默认为 TCP,若需 UDP 可将
-t
替换为-u
)。
- 确认端口是 TCP 还是 UDP(默认为 TCP,若需 UDP 可将
总结
命令 | 特点 | 输出关键信息 |
---|---|---|
netstat -tulnp | 传统工具,兼容性强 | PID/进程名 |
lsof -i :1717 | 直接定位端口,信息简洁 | PID 列 |
ss -ltnp | 更高效,推荐新系统使用 | pid=1234 |
直接运行任一命令即可快速找到占用 1717 端口的进程号!