商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > UOS怎么查看系统开启了哪些端口

UOS怎么查看系统开启了哪些端口

  发布于2026-07-14 阅读(0)

扫一扫,手机访问

在统信UOS上部署服务时,端口被占用的尴尬场景,相信不少人都遇到过——要么服务启动失败,要么客户端连接被拒绝。要定位这类问题,首先得搞清楚系统当前到底开放了哪些端口、哪些进程在监听。这里得提醒一句:仅靠服务状态检查是远远不够的,因为后台服务、开发调试进程甚至残留的僵尸程序,都可能悄无声息地绑在某个端口上。

下面梳理了五种实用方法,从最常用的命令行工具到底层的手动验证,覆盖了绝大多数排查场景。

用ss命令快速列出所有监听端口

ss是UOS系统默认内置的“快手”,不需要额外安装任何包,输出精简,实时性高,比老牌的netstat快得多,也可靠得多。

执行命令:sudo ss -tuln

这一步非常关键——它会直接列出所有TCP和UDP协议中处于LISTEN状态的端口,而且不解析主机名和服务名,避免了DNS延迟带来的干扰。如果输出为空,说明当前没有任何进程主动监听网络端口。如果看到Local Address列里出现0.0.0.0:*或[::]:*,意味着该端口对所有IPv4或IPv6地址开放;而如果是127.0.0.1:*,那就只能本机访问。

用netstat查端口并关联到具体进程

当你想知道究竟是哪个程序占用了某个端口时,netstat就派上用场了——它能直接给出PID和可执行路径。不过有个前提:需要先确保net-tools已经安装。

第一步,检查是否安装了netstat:运行 netstat --version;如果提示command not found,执行 sudo apt install net-tools -y 安装即可。

第二步,获取完整的监听列表及进程信息:sudo netstat -tulnp

第三步,定位特定端口,比如检查8080是否被占用:sudo netstat -tulnp | grep ':8080'

【特别提醒:必须加sudo,否则无法读取其他用户进程的路径信息,PID/Program name列会显示为空或“-”,那等于白查】

用lsof按端口号反查进程详情

lsof的巧妙之处在于,它把端口视为“打开的文件”,你只需要输入端口号,就能直接返回进程名、用户、启动命令、工作目录等上下文信息,省去了先查PID再二次验证的麻烦。

方法一:查指定端口,比如3306:sudo lsof -i :3306

方法二:列出全部TCP监听进程:sudo lsof -i -sTCP:LISTEN

如果提示lsof未找到,安装一下就好:sudo apt install lsof -y

手动验证异常进程的真实监听行为

ss、netstat或lsof有时候也会“失灵”——比如遇到权限限制,或者进程处于僵尸态、内核模块冲突等异常情况。这时候,/proc文件系统就是最底层的“照妖镜”。

第一步,通过服务名获取疑似进程的PID,例如查找nginx:pidof nginx

第二步,进入其文件描述符目录,筛选出socket文件:sudo ls -l /proc/[PID]/fd/ | grep socket(记得把[PID]替换成实际数字)

第三步,读取TCP监听表,比对端口号:sudo cat /proc/[PID]/net/tcp

这里有个坑需要注意:十六进制端口号是以大端序显示的,例如0000:01BB对应十进制443——【务必注意字节序转换,否则会误判,这个细节很容易翻车】

用nc验证端口是否真实响应

nc不依赖任何进程信息,只测试网络层的连通性,它能发现一些“看起来在监听,实际无法正常响应”的问题,比如防火墙拦截、服务已崩溃但进程残留、或者监听地址绑定错误等。

本地测试端口631是否可连:nc -zv 127.0.0.1 631

远程测试域名的80端口:nc -zv example.com 80

返回“Connection refused”说明端口未监听或被防火墙阻断;而“Succeeded!”则表示端口开放,有服务在正常响应。

本文转载于:https://www.php.cn/faq/2817627.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注