You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu上systemd-resolv出现大量随机查询,如何定位生成源?

追踪本机随机LLMNR查询来源的实操步骤

首先得给你划个重点:你看到的发往224.0.0.252的查询,是**LLMNR(链路本地多播名称解析)**请求,这是一种本地网络里的主机名解析协议,systemd-resolved监听5355端口处理LLMNR是默认配置。那些随机字符串要么是某个进程的bug、异常行为,要么是恶意程序在搞事情。下面是一步步抓出元凶的方法:

1. 先确认查询类型(LLMNR vs 常规DNS)

先通过抓包工具锁定协议细节,避免走弯路:

  • 打开终端运行:sudo tcpdump -i any host 224.0.0.252 and port 5355
  • 观察输出里的协议字段,你会看到明确的LLMNR标识——这能帮我们排除常规DNS的问题,把排查范围缩小到本地进程的LLMNR请求。

2. 让systemd-resolved帮你记录请求来源

systemd-resolved本身有详细的日志能力,只要调高日志级别,就能直接看到哪个进程在发这些奇怪的查询:

  1. 编辑resolved配置文件:sudo nano /etc/systemd/resolved.conf,找到LogLevel一行,改成LogLevel=debug
  2. 重启服务生效:sudo systemctl restart systemd-resolved
  3. 实时查看日志:journalctl -u systemd-resolved -f
    当那些随机域名查询出现时,日志里会清晰显示发起请求的进程PID和程序名,比如类似这样的条目:Process 1234 (mystery-program) sent LLMNR query for name "aewfepnumefp"——这一步大概率能直接定位到源头。

3. 用底层工具追踪进程(如果日志没搞定)

如果systemd-resolved的日志没给出足够信息,就用更硬核的工具关联网络请求和进程:

  • 用lsof实时监控发往224.0.0.252的请求:sudo lsof -i @224.0.0.252:5355,当查询发生时,这个命令会立刻显示发起连接的进程PID、名称和路径。
  • 或者用ss工具结合过滤:sudo ss -tulnp | grep 5355,虽然这主要显示监听端口的进程,但结合抓包时机,再配合ps aux | grep <PID>也能缩小范围。
  • 更进阶的可以用bpftrace写个小脚本追踪UDP发送,但对大多数人来说,前面两个工具足够了。

4. 排查找到的进程

当拿到可疑进程的PID后,做这些验证:

  • 查看进程的真实路径:ls -l /proc/<PID>/exe,确认是不是合法程序(比如系统自带工具、你安装的软件,还是陌生的未知文件)。
  • 查看进程的启动参数:cat /proc/<PID>/cmdline,了解它的具体行为。
  • 如果是系统进程,去查对应软件的版本有没有已知的LLMNR相关bug;如果是陌生进程,立刻警惕——检查它的启动项(比如systemctl list-unit-files、用户自启动脚本、crontab),用杀毒工具扫描,必要时直接终止并删除。

5. 临时禁用LLMNR验证问题

如果暂时找不到源头,可以先禁用LLMNR来确认这些查询是否和它相关:

  1. 编辑/etc/systemd/resolved.conf,设置LLMNR=no
  2. 重启服务:sudo systemctl restart systemd-resolved
    如果查询停止了,说明确实是LLMNR相关的问题,再回头重点排查进程;如果还有查询,那可能是mDNS(另一种多播DNS协议),可以用类似方法追踪5353端口的请求。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:41:28