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

推荐订阅源

V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Latest news
Latest news
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
B
Blog
T
Threat Research - Cisco Blogs
罗磊的独立博客
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Proofpoint News Feed
P
Palo Alto Networks Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
T
Tor Project blog
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
Recorded Future
Recorded Future
D
DataBreaches.Net
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
B
Blog RSS Feed
Scott Helme
Scott Helme
P
Proofpoint News Feed
V
Vulnerabilities – Threatpost
A
Arctic Wolf
Help Net Security
Help Net Security
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Vercel News
Vercel News
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Schneier on Security
Hacker News: Ask HN
Hacker News: Ask HN
N
Netflix TechBlog - Medium
L
LangChain Blog
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
M
MIT News - Artificial intelligence
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
W
WeLiveSecurity

Deep Router

解决Codex Desktop高频TRACE日志写入logs_2.sqlite问题 | Deep Router Hermes Agent 优化:解决GLM-5.2模型429(1305 overloaded) | Deep Router 解决微信图片加载缓慢:从DNS到OSPF路由的问题排查 | Deep Router Windows Alma 太卡? 我有特殊的使用技巧 | Deep Router 使用Pipedream同步RSS至Twitter(X.com) | Deep Router 使用Pipedream同步RSS至BlueSky | Deep Router OpenWRT IPv6防火墙规则:如何放行客户端地址及端口 | Deep Router 国内外DNS服务器推荐列表 | Deep Router 在OpenWRT上使用Neovim | Deep Router ImmoralWRT软件源分享 | Deep Router NieR Automata Ver 1.1a | Deep Router 网关互指情况下,旁路由是否需要开启upnp? | Deep Router 【Horace And Pete】百年酒馆 第一季 1080P 阿里云 | Deep Router
Dae搭配AdGuard Home使用指南 | Deep Router
Yawatasensei · 2024-11-07 · via Deep Router

// 原方案采用Dae(大鹅) + MosDNS,Dae负责流量分流与代理,MosDNS实现DNS并发请求、DoH/DoT服务及广告过滤。然而,MosDNS的队列机制与无图形界面导致特殊规则配置复杂,遂引入AdGuard Home专注于广告过滤与自定义规则,同时保留MosDNS作为纯DNS转发器,大幅提升配置效率与使用体验。

$ git log --oneline --stat

📁 category: 技术分享📅 updated: 2026-06-29🏷️ tags: Debian, 旁路由, DNS

😀

在之前配置好家庭网络环境后,稳定运行了很久,大致上也基本满足日常需要,但是还有一些小的问题需要去解决。之前使用的是Dae + MosDNS配置,由DAE劫持流量进行最后的分流和代理,MosDNS主要用于DNS的并发请求和使用DOH、DOT服务,同时也负责DNS去广告。在使用过程中,由于MosDNS的队列化和无图形界面配置,进行特殊规则配置过于麻烦,最终决定还是在整体的DNS链路中增加AdGuard Home单独负责去广告和相关特殊规则的指定,MosDNS仅作为DNS转发器使用,不再兼顾过滤器的作用。

由于Dae(大鹅)的DNS处理方式与OpenClash、Singbox等不同,是通过劫持流量方式实现,无法直接指定端口进行DNS劫持,所以主要的配置部分在于Dae,MosDNS与AdGuard Home的配置部分基本维持原有配置即可。

另一个配置前提:由于我在主路由RouterOS上已经使用ospf进行了国内外流量的分流,所以此教程可能不一定适合于完全使用Dae进行分流的用户,如果存在分流错误等问题,可以尝试修改Global配置中的连接选项为domain++模式。

📝 Dae配置部分

Daed安装

其实这部分说明文档里面已经很完善,可以参考Github上的教程。我自己使用的是Daed,目前最新的Daed版本是0.9.0版本。相比于Dae,Daed提供一个可视化的网页管理面板,日常进行自定义配置时候更为方便一些。在资源占用上,Daed相比Dae占用的内存要多一些,大概多出100mb左右。

Debian或者Ubuntu安装执行如下命令:

其他系统可参考:

getting-started.md

daeuniverse

Global配置

连接选项使用domain模式,其他无需修改。不需要使用Dae的domain+domain++ 模式。

DNS

由于处理DNS分流和解析不再由Dae负责,所以DNS部分的配置非常简单:

其中adg即AdGuard Home,配置为AdGuard Home监听的地址和端口。此处我使用的默认53端口,如果53端口已经被占用或者存在其他问题,可替换为其他非标端口。

路由部分

路由部分需要在原有的配置基础上,对AdGuard Home进程、MosDNS进程以及系统默认的NetworkManager进程使用direct(must)规则特殊处理,从而避免产生路由回环。

同时,为了在AdGuardHome中可以正确的显示各设备的IP地址,需要对geoip:private 规则进行修改,使用direct(must)规则。如果使用的是direct规则,那么在AdGuard Home中显示的设备信息均为localhost(127.0.0.1)

Route整体规则

整体规则大致如下,里面有一些自定义的配置,可以根据自己需要进行删减。

direct与direct(must)区别

must_rules表示不将DNS流量重定向到dae并继续匹配。对于单一规则,directmust_direct的区别在于direct会劫持和处理DNS请求(用于流量分割使用),但must_direct不会。当存在DNS请求的流量循环时,must_direct很有用。must_direct也可以写成direct(must)

在上述配置中,以AdGuard Home为例,即进程AdGuardHome匹配的规则不进行DNS流量的劫持和处理且为直连,由AdGuard Home及其上游进行处理,同时由于规则:

将通过Google DNS的流量使用代理处理,从而避免DNS污染。

📝 AdGuard Home配置部分

AdGuard Home部分没有什么需要特别注意配置的,只需要指定上游DNS为Dae所在机器IP地址即可。需要注意的是,如果使用MosDNS作为Dae的DNS解析服务程序,AdGuard Home中不要指向MosDNS的地址,会造成内存泄露以及高CPU占用。公共DNS服务器可以参考:国内外DNS推荐列表

adguard home dns配置

🤗 总结归纳

目前情况良好,暂时没有出现错误问题,且能够更方便的对特定客户端、域名进行放行。

后续

由于AdGuard Home与Dae处于同一台机器,在使用must_direct规则时会造成DNS泄露问题,但如果使用direct规则,在AdGuard Home中又无法正常识别发出DNS请求的客户端,所以我最终还是选择在PVE中新建一个CT容器(LXC),单独负责AdGuard Home和Tailscale。AdGuard Home的上游DNS指向Dae所在的内网IP地址,同时在Dae中,对private部分规则使用direct规则,既满足避免DNS泄露的需要,又满足对各客户端DNS请求的管理。

这也是我第一次使用LXC,CT模板使用的是alpine,目前对效能感到满意,在未开启AdGuard Home时,CPU占用几乎没有,内存占用13MB左右,开启AdGuard Home的情况下,单核CPU占用0.4%,内存占用不到50MB。

在使用局域网其他机器作为DNS入口时,需要在Dae的Routing中增加以下配置,避免DNS请求环路,将下面的10.0.0.20 替换为你的DNS服务入口IP地址。

同时由于内存泄露问题,建议使用Dae而非Daed,同样配置文件,在Dae下内存占用不到500M,但是Daed基本要奔着1G去了,长时间使用情况下,Daed的内存泄露问题更为严重。在Dae的版本上,目前我在使用Dae 0.9rc2情况下,存在CPU占用虚高问题,0.8版本未出现问题。

我自身配置问题,与Daed无关,配置正确情况下,未发现Daed出现内存泄露情况。同时初始内存占用也没有1G。

另外,如果使用其他机器作为DNS入口,那么其指向的DNS应为Dae所在机器的IP,不要直接指向MosDNS,由Dae再指向MosDNS,避免DNS重复劫持,造成内存泄露与CPU高占用,配置文件大致如下:

AdGuard Home中的上游DNS指向Dae所在机器IP,同时Dae的DNS部分配置指向MosDNS端口

关于AdGuard Home的卸载

由于已经在LXC容器中单独部署了AdGuard Home,所以原来Debian机器上的AdGuard Home就可以卸载了,首先找到AdGuard Home二进制文件的位置,Debian/Ubuntu系统的位置一般位于/opt/AdGuardHome

执行以下命令注销AdGuard Home相关服务

删除AdGuard Home工作文件夹

📎 参考文章

💡

有关AdGuard Home安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~