统信UOS下排查端口占用应先用ss查看所有监听端口,再用lsof或netstat定位具体进程,必要时通过/proc目录手动验证。

直接查端口占用,关键不是“找谁占了8080”,而是先摸清“当前哪些端口真正在监听”。统信UOS自带工具够用,不用装一堆软件,按需选一两个命令就能快速定位。
用 ss 快速扫一遍所有监听端口
ss 是系统默认内置的工具,快、稳、不卡顿,适合第一时间排查。
执行:
sudo ss -tuln
输出里看 Local Address 这一列:
-
0.0.0.0:3306表示 IPv4 的 3306 端口在监听 -
:::22表示 IPv6 的 22 端口也在监听
星号前的数字就是端口号。只关心 TCP?去掉-u:sudo ss -tln
知道端口号,直接查是哪个进程在用
比如你怀疑 8080 被占了,用 lsof 一步到位:
sudo lsof -i :8080
它会直接显示进程名(COMMAND)、PID、运行用户(USER)、启动路径等。没装 lsof?补一句:
sudo apt install lsof -y
同样适用的还有:
sudo lsof -i -sTCP:LISTEN
列出所有 TCP 监听中的进程,信息比 netstat 更全。
想看端口+进程名一起显示,用 netstat
netstat 能把端口和 PID/程序名绑在一起输出,但需要 net-tools 包:
sudo netstat -tulnp
如果提示 “command not found”,先装包:
sudo apt install net-tools -y
查特定端口更省事:
sudo netstat -tulnp | grep ':6379'
注意输出中 PID/Program name 这一列,格式如 1234/nginx,前面是 PID,后面是程序名。
命令结果不一致或查不到?手动进 /proc 验证
有些进程权限受限,上层命令看不到,就得深入内核暴露的数据:
- 先用
pidof nginx或ps aux | grep java找到疑似 PID - 再检查它的 socket 文件:
sudo ls -l /proc/1234/fd/ | grep socket
- 最后读它的 TCP 表:
sudo cat /proc/1234/net/tcp
里面端口号是十六进制大端序,比如
00001F90对应十进制8080(倒着读:901F → 0x1F90 = 8080)。
不复杂但容易忽略

















