用上 SmartDNS with WebUI 之后发现本地 DNS 服务器 127.0.0.1:53 每隔 5min 会有一个来自本机的 dns.pub DNS 解析请求,这台机器几乎不怎么使用,因此对这个 DNS 请求来源比较好奇。用 TcpDump 只能看到发出端口号,无法看到进程;又由于 DNS 请求过于快速,我无法手动通过 ss 查看端口对应进程。
现在没啥头绪了,有大佬支个招吗
|  |      1v1      157 天前 NTP ? | 
|  |      2ik      157 天前 via iPhone grep 'dns.pub' /* -R  先看看 同蹲一个答案 | 
|      3dem0ns      157 天前 | 
|      4jworg      157 天前 刚刚试了下  bpftool 的 tracepoint 失败了,dns 用好几种系统调用,大概得上 bcc 过滤了 | 
|  |      5iceecream      157 天前 审计行不行 | 
|  |      6beyondstars      157 天前 bindsnoop-bpfcc -w | 
|      7jworg      157 天前 用 bcc 的 socket_filter 失败了,丢掉了 pid 。 去搜了下有这篇文章 https://medium.com/@nurkholish.halim/a-deep-dive-into-ebpf-writing-an-efficient-dns-monitoring-2c9dea92abdf 对应这个代码 https://gist.github.com/oghie/b4e3accf1f87afcb939f884723e2b462 应该就是你想要的了 | 
|      8daisyfloor      157 天前 问了下 gpt ,它提供了 5 种方法,你自己问问吧 总结 方法 描述 难度 推荐度 conntrack 能追踪短暂 UDP 连接 中 ⭐⭐⭐⭐ auditd 内核审计系统,能监控 socket 行为 高 ⭐⭐⭐ systemd-resolved 检查 排除系统自带 DNS 检测 低 ⭐⭐⭐⭐ ss/lsof 脚本 粗暴轮询法 低 ⭐⭐ smartdns 配置分析 看是否是它自己发的 低 ⭐⭐⭐⭐ eBPF 工具 内核层级追踪 高 ⭐⭐⭐ | 
|      9jworg      157 天前 输出结果大概像这样子 COMM=chrome PID=1169965 TGID=1169997 DEV=wlp6s0 PROTO=UDP SRC=192.168.8.64 DST=192.168.8.1 SPT=48927 DPT=53 UID=1000 GID=1000 DNS_QR=0 DNS_NAME=v2ex.com. DNS_TYPE=A COMM=chrome PID=1169965 TGID=1169997 DEV=wlp6s0 PROTO=UDP SRC=192.168.8.64 DST=192.168.8.1 SPT=48927 DPT=53 UID=1000 GID=1000 DNS_QR=0 DNS_NAME=v2ex.com. DNS_TYPE=AAAA COMM=chrome PID=1169965 TGID=1169997 DEV=wlp6s0 PROTO=UDP SRC=192.168.8.1 DST=192.168.8.64 SPT=53 DPT=48927 UID=1000 GID=1000 DNS_QR=1 DNS_NAME=v2ex.com. DNS_TYPE=A DNS_DATA=198.18.0.5 | 
|      10dode      156 天前 也许就是来自 SmartDNS with WebUI ,这个软件开发者内置了腾讯 dns.pub doh 有关的操作 | 
|  |      11SeaSaltPepper OP @dem0ns 感谢感谢,咱大哥写的工具真好用啊,一下找着了是 nslookup 发的 | 
|  |      12SeaSaltPepper OP @jworg #7 谢谢大哥,eBPF 确实是好东西 | 
|      13feedcode      156 天前 # ptcpdump is a tcpdump-compatible packet analyzer powered by eBPF, automatically annotating packets with process/container/pod metadata when detectable. https://github.com/mozillazg/ptcpdump # audit auditctl -a exit,always -F arch=b64 -S connect -k "connect-audit" |