惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
腾讯CDC
D
Docker
The Cloudflare Blog
量子位
爱范儿
爱范儿
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
Vercel News
Vercel News
MyScale Blog
MyScale Blog

WuSiYu Blog

X1 Presenter鼠标的macOS版虚拟激光笔软件 - WuSiYu Blog Arduino UNO Q 开发板初体验 - WuSiYu Blog 解决Open WebUI接入Qwen3.5/3.6模型后无法自动生成对话标题的问题 - WuSiYu Blog 世界加钱可及?若干 AWS / GreenCloud / Lightlayer / RFCHOST / SiliCloud / Vultr 的日本/新加坡/香港/美国VPS全天ping测试 - WuSiYu Blog 让UniFi中的拓扑图正确显示第三方交换机和虚拟机 站点迁移后测试中 虚拟机检测绕过和nvme性能优化的libvirt配置 UCG Fiber 主路由器 + OpenWrt 透明代理 + 高可用 方案和评测(对比ROS) Unraid 7.2+ WebUI美化主题和自定义CSS插件 杂谈:libvirt/qemu Windows游戏VM的一些优化配置 Fedora + libvirt 下在宿主关机时安全关闭虚拟机 群晖ddrescue与暂时禁用USB外接硬盘自动挂载 OpenWrt One 路由器(MT7981,主线op)超频bl2编译教程 白群晖之 在“不受支持”的机型上启用btrfs和快照功能 解决群晖Photos iOS客户端备份大视频时报错“备份已暂停-空间不足”
OpenWrt上AdGuardHome前置配置的一些小坑
SiYu Wu · 2025-12-03 · via WuSiYu Blog

为了配合一些上网插件并达到最好的过滤效果,需要将AdGuardHome前置于OpenWrt自带的dnsmasq:

[设备] -> [AdGuardHome 53端口] -> [dnsmasq 54端口] -> 一些插件 -> 多种DNS服务器

AdGuardHome在这里作为第一级DNS服务器,运行在标准53端口上,直接接受客户端连接。然后其上游为OpenWrt的自带dnsmasq的DNS服务器,这里需要将其端口改为端口54以避免冲突。之后一些上网插件会自动将dnsmasq的上游设置为它的一些程序,最终连接到大陆或外网的DNS。

这一套似乎没什么问题,但其实有一些坑:

坑1: DHCP v4 不下发DNS服务器配置

OpenWrt dnsmasq的DNS服务若运行在未53端口上时,其DHCP v4 服务就不会默认发送DNS选项。导致部分支持IPv6的设备依然可以通过IPv6连接DNS,表现正常,但仅支持IPv4的设备就会无法上网。

解法很简单,需要在OpenWrt -> 网络 -> lan -> DHCP 服务器 -> 高级设置 处,手动强制加入一个DHCP选项来下发DNS服务器配置:6,<路由器IP>

坑2: 在一些插件内,勾选DNS重定向会绕过AdGuardHome

如果你勾选了这个选择,那DNS请求会被强制直接转达到dnsmasq的地址,也就是54端口上,导致AdGuardHome被绕过了。那如果你仍然需要类似的功能呢?可以在 OpenWrt -> 网络 -> 防火墙 -> 端口转发中手动创建一条规则

具体如下:

# /etc/config/firewall
config redirect 'dns_int'
	option name 'Intercept-DNS'
	option family 'any'
	option proto 'tcp udp'
	option src 'lan'
	option src_dport '53'
	option target 'DNAT'