麒麟系统查看所有监听端口首选sudo ss -tulnp,需root权限才能显示进程名与pid;若仅查ipv4 tcp端口则用sudo ss -4tlnp;lsof、netstat和/proc/net为辅助手段,分别适用于精准定位、兼容旧脚本和最小化环境兜底。

当麒麟系统中服务无法访问、端口冲突反复出现或安全审计需要确认暴露面时,必须快速列出当前所有正在监听的端口——漏掉一个就可能让调试卡在错误方向上。
用ss命令查看全部监听端口(首选)
ss是麒麟V10默认预装的现代工具,解析内核socket数据快且稳定,无需额外安装,输出干净不含干扰项。
执行:sudo ss -tulnp
这一步必须加sudo,否则-p参数失效,COMMAND列会显示为“-”或完全空白,等于白查。
若只想看IPv4 TCP端口(避开UDP和IPv6噪音),改用:sudo ss -4tlnp
用lsof精准筛选监听进程
当你已经知道某个端口被占但ss没显示清楚进程路径,或者怀疑是容器、Java应用等复杂环境下的监听行为,lsof能从文件描述符层面穿透识别。
方法一:查所有TCP监听进程(去DNS解析、去服务名映射,提速防卡死)
sudo lsof -iTCP -sTCP:LISTEN -n -P
方法二:只看非系统保留端口(跳过22、53、123等基础服务,聚焦应用层)
sudo lsof -iTCP -sTCP:LISTEN -n -P | awk '$9 ~ /:[0-9]{4,}/ {print}'
注意:若提示command not found,先运行sudo apt-get install lsof(Debian系)或sudo yum install lsof(RHEL系)。
用netstat兼容旧脚本或对照文档
如果你手头有旧排查文档、团队共享脚本依赖netstat输出格式,或需要与历史日志做字段比对,它仍是可靠选择。
第一步:检查是否已安装 → 运行netstat -V,若报错则执行sudo apt-get install net-tools
第二步:列出纯端口列表(不含进程)→ sudo netstat -tuln
第三步:带进程信息 → sudo netstat -tulnp
这一步输出里Local Address列如显示127.0.0.1:3306,说明MySQL仅本地监听;若为0.0.0.0:8080,表示全网卡开放,需重点核查。
通过/proc/net读取原始内核数据(最小化环境兜底)
当所有用户态工具损坏、系统处于极简模式或你怀疑上层工具被篡改时,直接读内核导出的原始状态最可信。
查看所有TCP监听端口(十六进制端口号需手动转换):
sudo cat /proc/net/tcp | grep '0A00007F:'
其中0A00007F对应127.0.0.1:10(小端序,0x000A → 10),实际查8080要算0x081F → 反转得1F08 → 对应081F0000,再grep即可。
UDP监听同理:
sudo cat /proc/net/udp | grep '0A00007F:'











