游乐游手机版
首页/系统平台/文章详情

Linux查看所有正在监听的UDP端口方法

时间:2026-08-15 06:41
ss -uln 基本就是排查 UDP 监听端口时最可靠的一条命令,三个参数通常需要一起使用:-u 表示只查看 UDP,-l 表示仅显示 LISTEN 状态,-n 则用于关闭 DNS 解析,这三项少了任何一个都不够完整;另外,如果想看到像 53 端口这类由 systemd socket 激活的服务,通

ss -uln 基本就是排查 UDP 监听端口时最可靠的一条命令,三个参数通常需要一起使用:-u 表示只查看 UDP,-l 表示仅显示 LISTEN 状态,-n 则用于关闭 DNS 解析,这三项少了任何一个都不够完整;另外,如果想看到像 53 端口这类由 systemd socket 激活的服务,通常还需要配合 sudo 权限,否则结果可能不完整。至于 UNCONN 状态,一般可以先忽略;如果要用 grep :53 过滤,最好写成 \b:53\b,或者直接使用 awk '$4~/:53$/',这样才能避免误匹配。

Linux怎么查看正在监听的所有UDP端口

ss -uln 是查看 UDP 监听端口最稳妥的命令

直接执行 sudo ss -uln,就可以列出当前 Linux 系统中所有处于 LISTEN 状态的 UDP 套接字。它不依赖额外安装的软件包,通常默认预装,执行速度快,而且还能看到由 systemd socket 激活的服务,例如 systemd-resolved 使用的 53 端口。

这三个参数需要同时带上:-u(只查看 UDP)、-l(仅显示 LISTEN)、-n(关闭 DNS 解析,避免卡顿、延迟或输出不完整)。缺少任何一个都会影响结果准确性——例如只运行 ss -un,看到的往往是已经收发过数据包的连接信息(如 DNS 响应),而不是 UDP 监听端口。

常见错误现象:

  • 执行 ss -un 却看不到 LISTEN 行:这是因为缺少 -l,命令本身不会显示监听状态
  • 输出里出现大量 UNCONN 状态:这通常是未连接或未真正对外提供监听的 UDP socket(如 a vahi-daemon、chronyd),不一定是真正需要关注的监听端口,可先忽略
  • 普通用户执行时看不到某些端口:例如 systemd-resolved 的 127.0.0.1:53,通常需要加上 sudo 才能完整查看

grep :53 容易误匹配 5353?建议使用更精确的过滤方式

如果要检查某个 UDP 端口是否正在监听,比如 DNS 常见的 53 端口,不建议直接使用 ss -uln | grep :53——因为它可能同时匹配到 :53 和 :5353,从而造成误判。

推荐两种更安全、更准确的写法:

  • 使用单词边界:ss -uln | grep 'b:53b'(b 用于匹配端口边界)
  • 锚定列位置:UDP 监听结果中的端口通常位于 Local Address 列末尾,使用 awk '$4 ~ /:53$/ {print}' 更可靠
  • 如果只是想判断该端口是否存在监听,可以使用 ss -uln | awk '$1=="udp" && $4~/:53$/ {exit 0} END{exit 1}',这样在脚本里可直接根据退出码判断结果

netstat -uln 依然可以使用,但通常需要先安装 net-tools

如果你更习惯使用 netstat,那么执行 sudo netstat -uln 也能达到类似效果,参数含义同样一致:-u 表示仅查看 UDP、-l 表示筛选 LISTEN、-n 表示关闭名称解析。

不过在 Ubuntu 22.04+、Fedora 36+ 等较新的 Linux 发行版中,默认通常不再预装 net-tools,直接运行时可能会报错:bash: netstat: command not found。

补装方法:

  • Debian/Ubuntu:sudo apt install net-tools
  • RHEL/CentOS/Fedora:sudo dnf install net-tools 或 sudo yum install net-tools

安装完成后再执行 netstat -uln,虽然输出字段名称相对更传统、也略显冗长(例如写 Proto 而不是 State),但整体语义直观,依然适合人工快速查看 UDP 端口监听情况。

看到 LISTEN 就代表端口真的在监听?要注意 UDP 的特殊性

UDP 本身属于无连接协议,从严格意义上来说,并不存在像 TCP 那样标准的“LISTEN”状态。之所以在 Linux 内核输出中会看到这个标记,更多是出于语义兼容:当某个 UDP socket 完成 bind(),并进入 recvfrom() 的接收准备状态后,内核就可能把它显示为 LISTEN。换句话说,看到 udp LISTEN,只能说明对应进程已经调用了 bind(),并做好了接收数据包的准备;但这并不意味着它此时一定正在实际处理请求。

容易被忽略的点:

  • ss -uln 显示的 0.0.0.0:123 可能是 ntpd 或 chronyd 正在监听;但如果防火墙已经 DROP 了 UDP 123,外部主机依然无法访问该端口
  • 有些服务(例如 DHCP 客户端)会短暂绑定 0.0.0.0:68,此时 ss -uln 的输出可能一闪而过,通常需要配合 watch -n1 'ss -uln' 持续观察
  • 在容器内部无法直接看到宿主机正在监听的 UDP 端口,除非进入 host network namespace,或者直接在宿主机上执行查询
来源:https://www.php.cn/faq/2966760.html
上一篇CentOS 7如何修改用户组权限分配策略与设置 下一篇Linux查看网络接口多队列分配详细状态的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。