在 Linux 中,查看进程占用的端口常用以下几种方式,按使用频率由高到低介绍:
ss(推荐,现代系统)ss 是 netstat 的替代工具,速度更快。
sudo ss -lntp
sudo ss -antp
示例输出:
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
-l:监听端口-n:不解析服务名-t:TCP-u:UDP-p:显示进程netstat(较老但仍常用)sudo netstat -lntp
或查看所有连接:
sudo netstat -antp
如果提示未安装:
sudo apt install net-tools # Debian/Ubuntu
sudo yum install net-tools # CentOS
sudo ss -lntp | grep :80
或
sudo netstat -lntp | grep :80
ps + ssps aux | grep nginx
sudo ss -lntp | grep nginx
/procls -l /proc/1234/fd
(1234 是 PID)
lsof(非常直观)sudo lsof -i :80
sudo lsof -i -P -n -p 1234
| 需求 | 命令 |
|---|---|
| 查看所有监听端口 | ss -lntp |
| 查看所有 TCP 连接 | ss -antp |
| 查端口 8080 被谁占用 | `ss -lntp |
| 查进程 nginx 的端口 | `lsof -i -P -n |
| 查 PID 1234 的端口 | lsof -i -P -n -p 1234 |
ss -lntplsof -i :端口lsof -p PID如果你愿意,可以告诉我是 CentOS / Ubuntu / Docker / Kubernetes 环境,我可以给你更精确的命令。