linux查看服务程序占用端口命令
linux查看服务程序占用端口命令详细介绍
在 Linux 系统中,查看服务程序占用端口的常用命令有以下几种:
1.
netstat(传统工具)
netstat 可用于显示网络状态,结合特定选项能查看端口占用情况。
常用命令:
bash
- 选项说明:
-t:显示 TCP 协议相关端口;-u:显示 UDP 协议相关端口;-n:以数字形式显示 IP 和端口(而非域名 / 服务名);-l:仅显示处于监听(Listening)状态的端口;-p:显示占用端口的进程 ID(PID)和程序名。
示例输出:
plaintext
Active Internet connections (only servers)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
tcp6 0 0 :::8080 :::* LISTEN 5678/java
udp 0 0 0.0.0.0:68 0.0.0.0:* 9012/dhclient
其中 8080 端口被 PID 为 5678 的 java 程序占用。
2.
lsof(查看文件 / 端口占用)
lsof(List Open Files)可显示进程打开的文件 / 网络连接,通过 -i 选项过滤网络端口。
常用命令:
- 查看所有占用端口的进程:bash
- 查看指定端口(如 8080)的占用进程:bash
示例输出:
plaintext
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 5678 root 45u IPv6 12345 0t0 TCP *:8080 (LISTEN)
表示 PID 为 5678 的 java 程序占用了 8080 端口。
3.
ss(现代高效工具)
ss 是 netstat 的替代工具,性能更优,适合大流量场景。
常用命令:
bash
ss
选项含义与 netstat -tunlp 一致(-t/-u/-n/-l/-p),输出格式更简洁。
注意事项
- 部分命令需要
sudo权限(如查看其他用户的进程); - 若需定位具体进程路径,可通过
ps -ef | grep 进程PID进一步查看(如ps -ef | grep 5678); - 若端口未显示,可能是进程未处于监听状态(如客户端连接),可去掉
-l选项查看所有连接。