ss 查看监听端口与进程归属的过滤方法
在 Linux 上确认“哪个服务正在监听 8080 端口”,我通常先用 ss,而不是把 netstat、ps 和文本过滤串成一长串。它能一次显示协议、监听地址、端口以及进程归属。最小可用命令是 sudo ss -lntup;如果只查 TCP 8080,则用 sudo ss -lntp '( sport = :8080 )'。
-l只看监听,-n保留数字地址和端口,-t/-u区分 TCP/UDP。-p显示进程名、PID 和 fd;看不到归属时先补sudo。- 过滤器要写清协议和端口,最后再核对 IPv4、IPv6 与容器网络。
先用 ss 建立监听清单
盘点主机时,先分别看 TCP 和 UDP。-l 把已建立连接排除掉,-n 防止服务名解析让结果变慢或改变展示形式,-H 可去掉表头,适合后续脚本处理。

# 同时查看 TCP/UDP 监听,并保留数字地址与进程信息 sudo ss -lntup # 只查看 TCP 或 UDP 监听,便于区分同一端口的不同协议 sudo ss -lntp sudo ss -lnup
输出中的 Local Address:Port 是本机绑定的地址和端口,Peer Address:Port 在监听场景通常不是排查重点。0.0.0.0:8080 表示监听所有 IPv4 地址,[::]:8080 表示 IPv6 通配地址;不能只看到端口数字就认定两者一定是同一个监听对象。
让端口行显示进程归属
加上 -p 后,常见结果会出现类似 users:(("nginx",pid=2140,fd=7)) 的信息:进程名帮助快速判断服务,pid 用于继续查启动参数,fd 则表示该进程持有的套接字文件描述符。普通用户权限不足时,端口仍可能列出来,但进程归属字段可能为空或不完整。
# 用 PID 继续核对启动命令;变量只接收人工确认过的数字 PID pid=2140 ps -p "$pid" -o pid=,ppid=,user=,comm=,args= # 查看某个进程打开的网络文件描述符,辅助确认端口归属 sudo ls -l "/proc/$pid/fd" 2>/dev/null | grep 'socket:'
如果多个进程都显示同一个服务名,不要直接杀进程。先用 ps 看父进程和启动参数,再结合 systemd、容器或 supervisor 的管理关系判断应该重载、停止还是修正配置。
用过滤表达式锁定目标端口
ss 的过滤表达式比简单的 grep 8080 更稳,因为它能把端口放在协议字段中匹配。TCP 监听可以这样写,外层引号用于让 shell 不改写括号:

# 精确查看 TCP 本地源端口 8080 的监听项 sudo ss -lntp '( sport = :8080 )' # 查 UDP 8080;UDP 没有 TCP 的 LISTEN 状态,但仍可查看本地绑定 sudo ss -lnup '( sport = :8080 )' # 只看 IPv4 或 IPv6,排除地址族造成的误判 sudo ss -4lntp '( sport = :8080 )' sudo ss -6lntp '( sport = :8080 )'
如果目标服务绑定的是具体地址,例如 127.0.0.1:8080,远程客户端无法直接访问并不等于端口没有监听。相反,绑定 0.0.0.0 只说明 socket 接受所有 IPv4 本地地址,是否能从外部访问还要看防火墙、安全组和网络命名空间。
权限、容器与结果边界
排查宿主机服务时优先使用 sudo,并把命令输出保存为一次性的证据,而不是反复刷新后凭印象判断。若宿主机看不到容器内进程,先确认端口是否通过发布规则映射到宿主机;进入容器或对应网络命名空间后再执行同样的 ss 查询。
# 记录一次带时间的监听清单,便于和发布前后结果对比 date -Is sudo ss -H -lntup | sort # 只在确认服务由 systemd 管理后查看状态,避免把 PID 当成服务名 systemctl status nginx --no-pager
最后按四项复查:协议是否正确、监听地址是否符合预期、进程 PID 是否仍存活、访问路径是否还受防火墙或容器映射影响。这样即使 ss 显示了端口,也不会把“本机有监听”误判成“外部一定可访问”。
相关问题
为什么能看到端口却看不到进程?
最常见原因是没有足够权限,先用 sudo ss -lntp 重试;如果仍为空,再检查是否查询了正确的网络命名空间。
ss 和 grep 过滤有什么区别?
grep 只是匹配显示文本,可能把远端端口或进程参数中的数字一并匹配;ss 过滤器直接作用于 socket 字段,更适合精确排查。
Go encoding/xml 自定义 Unmarshaler 的字段映射
- 上一篇
- Go encoding/xml 自定义 Unmarshaler 的字段映射
- 下一篇
- LT画质助手产品站怎么核对?备案信息、下载页与帮助文档入口说明
-
- 文章 · linux | 3小时前 | Linux · 运维 · 日志排查 · journalctl 启动日志 Boot ID --list-boots systemd日志导出
- journalctl 按启动会话筛选并导出日志
- 369浏览 收藏
-
- 文章 · linux | 5小时前 | Linux · Linux防火墙 nftables verdict map 多端口策略
- nftables verdict map 组织多端口策略的规则设计
- 475浏览 收藏
-
- 文章 · linux | 8小时前 | 权限控制 · 服务管理 · systemd socket激活 systemd.socket ListenStream Accept
- systemd socket 激活服务的依赖与监听配置
- 229浏览 收藏
-
- 文章 · linux | 1天前 |
- Linux ip rule 怎么按来源地址选择路由表
- 347浏览 收藏
-
- 文章 · linux | 1天前 | Linux · 文件系统 · Linux mount bind mount remount
- Linux bind mount 怎么二次挂载为只读
- 116浏览 收藏
-
- 文章 · linux | 1天前 |
- systemd-sysusers 怎么声明软件包所需系统账号
- 150浏览 收藏
-
- 文章 · linux | 1天前 |
- systemd-tmpfiles 怎么按文件年龄自动清理目录
- 464浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 258次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 304次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 283次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 260次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 68次使用
-
- 详解golang执行Linuxshell命令完整场景下的使用方法
- 2023-01-07 426浏览
-
- go程序部署到linux上运行的实现方法
- 2023-01-02 387浏览
-
- Linux系统下Go语言开发环境搭建
- 2023-01-07 242浏览
-
- 使用golang获取linux上文件的访问/创建/修改时间
- 2022-12-31 238浏览
-
- 在Linux系统中安装Go语言的详细教程
- 2022-12-29 402浏览
