AdGuard Home 配合 Clash 配置指南,DNS净化与代理分流实战

本文详解如何通过AdGuard Home实现本地DNS净化,结合Clash代理实现广告拦截与跨境访问的双重优化,提供完整的YAML配置示例与常见问题解决方案。

为什么需要AdGuard Home配合Clash

单独使用Clash时,DNS解析通常由远程服务器完成,存在隐私泄露与广告拦截不彻底的问题,AdGuard Home作为本地DNS服务器,可先在本地过滤广告域名,再将合法请求转发至Clash代理,实现以下优势:

  • 广告拦截:本地解析广告域名并返回NXDOMAIN,减少代理带宽消耗
  • 隐私保护:DNS查询不经过远程服务器,防止DNS泄露
  • 访问加速:国内域名直接解析,避免不必要的代理转发

安装与基础配置步骤

安装AdGuard Home

AdGuard Home支持Docker、OpenWrt路由器及Windows/Mac/Linux桌面端,以Docker为例:

docker run -d --name adguardhome \
  -v /opt/adguardhome/work:/opt/adguardhome/work \
  -v /opt/adguardhome/conf:/opt/adguardhome/conf \
  -p 53:53/tcp -p 53:53/udp \
  -p 3000:3000/tcp \
  --restart unless-stopped \
  adguard/adguardhome

安装完成后访问http://本机IP:3000完成初始化。

配置AdGuard Home上游DNS

在AdGuard Home设置中,将上游DNS服务器指向Clash的DNS监听地址,Clash配置需开启DNS并设置listen: 0.0.0.0:53

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  nameserver:
    - 223.5.5.5
    - 119.29.29.29
  fallback:
    - 8.8.8.8
    - 8.8.4.4

AdGuard Home上游填写0.0.1:53,实现DNS请求先经过AdGuard过滤再转发Clash。

配置Clash代理组

根据使用场景选择合适的代理组类型:

代理组类型 适用场景 配置示例
select 手动选择节点 需人工切换节点时使用
url-test 自动测速选择 视频、下载等带宽优先场景
fallback 故障转移 重要业务需要高可用性

示例配置:

proxies:
  - name: "节点A"
    type: ss
    server: 1.2.3.4
    port: 443
    cipher: aes-256-gcm
    password: xxx
proxy-groups:
  - name: "自动选择"
    type: url-test
    proxies:
      - 节点A
      - 节点B
    url: "http://www.gstatic.com/generate_204"
    interval: 300
  - name: "手动选择"
    type: select
    proxies:
      - 节点A
      - 节点B
      - DIRECT

配置分流规则

Clash规则采用从上到下匹配机制,常用规则类型:

  • DOMAIN:精确域名匹配,如DOMAIN,ad.doubleclick.net
  • DOMAIN-SUFFIX:域名后缀匹配,如DOMAIN-SUFFIX,googlesyndication.com
  • IP-CIDR:IP段匹配,如IP-CIDR,10.0.0.0/8,no-resolve
  • GEOIP:国家/地区匹配,如GEOIP,CN,DIRECT

推荐规则配置顺序:

rules:
  # 广告拦截
  - DOMAIN-SUFFIX,doubleclick.net,REJECT
  - DOMAIN-KEYWORD,advertisement,REJECT
  # 国内直连
  - GEOIP,CN,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  # 国际访问走代理
  - MATCH,自动选择

TUN模式与系统代理的区别

系统代理模式

适用于浏览器HTTP/HTTPS流量,配置简单但无法代理UDP流量(如游戏、语音通话)。

TUN模式

通过创建虚拟网卡接管所有流量,包括UDP、游戏数据包,适合需要全流量代理的场景。

tun:
  enable: true
  stack: system
  dns-hijack:
    - 8.8.8.8
  auto-route: true

注意:TUN模式下AdGuard Home需监听其他端口(如5353),避免冲突。

常见问题FAQ

现象:广告拦截无效,仍有广告显示

原因:AdGuard Home未正确设置为系统DNS,或Clash的fake-ip模式与AdGuard冲突

解决方法:将系统DNS手动设置为AdGuard Home的IP地址;或在Clash中关闭fake-ip,改为redir-host模式

现象:部分网站无法访问

原因:DNS解析结果被污染或广告规则误拦截

解决方法:在AdGuard Home的排除列表中添加对应域名;或检查Clash代理组是否正常工作

现象:代理速度变慢

原因:AdGuard Home增加了DNS解析环节,或节点带宽不足

解决方法:启用AdGuard Home的DNS缓存;在Clash中使用url-test自动切换到低延迟节点

节点选择建议

稳定可靠的节点是良好体验的基础,选择时可参考以下标准:

  • 延迟测试:通过ping或traceroute检测节点到目标服务器的响应时间
  • 带宽需求:4K视频需50Mbps以上带宽,普通浏览20Mbps即可
  • 协议支持:推荐支持Shadowsocks或VMESS协议的节点

如需获取高质量节点,建议选择提供多协议支持、具备CN2线路的正规服务商,确保跨境访问的稳定性与安全性。

您可以还会对下面的文章感兴趣: