fyi2000 发表于 2020-4-7 08:05

老毛子/Padavan设置SmartDNS提速+AdGuard Home去广告之东施效颦

本帖最后由 fyi2000 于 2020-8-19 19:19 编辑

更多信息请点击 只看该作者 或↑↑↑↑

近来看了许多 SmartDNS+AdGuard Home 的设置教程,其中OpenWrt教程较为详细,而老毛子教程则较为精简,然而两者介面设计大不相同,因此出现不少疏漏或误区,以下示范详细设置方法,外加验证方法。

应网友要求制作懒人包,请将附件 SmartDNS-AdGuard.zip 解压,以SCP/WinSCP上传至 /etc/storage,覆盖旧文件,再依序修改SmartDNS设置后启用,其次启用AdGuard Home,再开启WEB管理地址,勾选阻止列表,最后记得保存 NVRAM 和内部存储 (/etc/storage) 到闪存



路由器:K2P A2
固件:smartdns/55p+/aliddns/Adbyby plus+ padavan固件源码分享 (chongshengB版老毛子 = hanwckf版老毛子增强版)

static/image/hrline/4.gif
首先设置 SmartDNS

[*]浏览器开启 http://192.168.2.1
[*]点击 DNS服务 -> SmartDNS -> 基本设置
DNS加速 启用
服务器名称 默认 smartdns
本地端口 默认 6053
域名预加载 启用
过期缓存服务 启用
重定向 无
缓存大小 1024 (可适当增加)
点击 应用设置

[*]点击 上游服务器
虽然可以手动添加服务器,但是为了便于日后修改,建议此处不添加服务器

[*]点击 其他设置
域名地址:
输入:
address /modem/192.168.1.1
address /dns.cloudflare.com/104.16.133.229
address /dns.google/8.8.8.8定义光猫和国外https组的IP,避免域名污染

自定义设置:
输入:
# 2020-08-10
# 本设置默认只使用国内公共DNS服务器,请自行修改以便充分运用其他服务器
# 建议添加宽带运营商的DNS服务器于 "国内组 (-group china)"
#
# 127.0.0.1:6053       -默认组 = 国内组 (没有添加 -exclude-default-group)
# 127.0.0.1:6054       -国内组
# 127.0.0.1:6055       -国内https组
# 127.0.0.1:6056       -国外组
# 127.0.0.1:6057       -国外https组
#
# DNS监听端口号
bind :6054             -group china
bind :6055             -group china-https
bind :6056             -group oversea
bind :6057             -group oversea-https
#
# 上游UDP DNS
# 国内组
server 119.29.29.29    -group china
server 114.114.114.114 -group china
server 223.5.5.5       -group china
server 180.76.76.76    -group china
#
# 国外组
server 1.1.1.1         -group oversea                                  -exclude-default-group
server 8.8.8.8         -group oversea                                  -exclude-default-group
#
# 以下配置值如果包含域名,除非已自行定义,否则交给路由器外网设置的DNS服务器解析,小心运用!
#
# 上游HTTPS DNS
# 国内https组
server-https https://sdns.233py.com/dns-query   -group china-https   -exclude-default-group
#
# 国外htps组
server-https https://1.1.1.1/dns-query            -group oversea-https -exclude-default-group
server-https https://dns.cloudflare.com/dns-query -group oversea-https -exclude-default-group
server-https https://dns.google/dns-query         -group oversea-https -exclude-default-group
#
# 指定域名使用server组解析
nameserver /.cn/china
# nameserver /.io/oversea
# nameserver /.org/oversea-https
# nameserver /.net/oversea-https
# nameserver /.edu/oversea-https
#
# 测速模式选择,SmartDNS 的作者 pymumu 表示不建议修改。
# "大部分网站都是响应ping的。只有个别网站不响应ping,比如github,
# 这种就单独用domain-rule配置一下特定域名的测速方式就好了"
# speed-check-mode ping,tcp:80
domain-rules /.right.com.cn/ -speed-check-mode tcp:443,tcp:80
#
# 禁用IPV6解析
force-AAAA-SOA yes
#
# 附加配置文件
# 在此为anti-AD广告过滤列表,请勿与AdGuard Home重复设置
# 文件若不存在则不生效,注意,必须定期手动更新并重启SmartDNS
# 手动运行 wget -O /etc/storage/anti-ad-smartdns.conf https://anti-ad.net/anti-ad-for-smartdns.conf
# conf-file /etc/storage/anti-ad-smartdns.conf点击 应用设置


static/image/hrline/4.gif
接下来设置 AdGuard Home

[*]运行 PuTTY
连线 SSH: 192.168.2.1:22
运行 "nano /etc/storage/adg.sh" (或以 vi 代替 nano,请先搜寻 vi 用法)
找到:
blocked_response_ttl: 10
ratelimit: 20改成:
blocked_response_ttl: 60
ratelimit: 0输入 Ctrl-O,回车,Ctrl-X
以下设置让 PuTTY 支持显示中文

字型选择支持 CHINESE_GB2312 字集的中文字型

编码选择 UTF-8

nano 不支持显示中文,但不影响剪贴和储存

修改 "blocked_response_ttl: 60" 和 "ratelimit: 0"

[*]浏览器开启 http://192.168.2.1
[*]点击 DNS服务 -> AdGuardHome
AdGuardHome 启用
DNS重定向 作为dnsmasq的上游服务器
点击 应用设置

[*]点击 http://192.168.2.1:3030/
用户名 admin
密码  admin
点击 登入
点击 设置指导

[*]点击 设置 -> DNS 设置
上游 DNS 服务器
输入 SmartDNS 的本地端口:
127.0.0.1:6053Bootstrap DNS 服务器
输入:
114.114.114.114 (或宽带运营商的DNS服务器)点击 应用
点击 测试上游 DNS
下图代表测试正确无误


下图显示设置错误的信息

[*]点击 过滤器 -> DNS封锁清单
勾选想要阻止的国外清单,建议暂时不用勾选,等将来再调整,勾选完毕务必检查系统剩余内存
点击 添加阻止列表
新封锁清单
输入名称 anti-AD
输入 URL https://anti-ad.net/easylist.txt点击 保存
点击 检查更新

[*]点击 仪表盘


static/image/hrline/4.gif
以上完成设置 SmartDNS 和 AdGuard Home,接下来则是检测设置

[*]浏览器开启 http://192.168.2.1
[*]点击 内网 LAN -> DHCP 服务器 -> 自定义配置文件 "dnsmasq.conf"
检查是否有一行:
server=127.0.0.1#5335
[*]点击 系统日志 -> 全部日志
检查是否有一行:
dnsmasq: using nameserver 127.0.0.1#5335
[*]如果以上均正确无误,则
点击 系统管理 -> 配置管理
点击 保存 NVRAM 到闪存: 提交
点击 保存内部存储到闪存: 提交

*******************************************************************
最后以实际查询网址,检测服务是否配置成功

[*]运行 PuTTY
连线 SSH: 192.168.2.1:22
运行:
K2P:/home/root # nslookup modem
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

Name:      modem
Address 1: 192.168.1.1
K2P:/home/root # nslookup www.right.com.cn 114.114.114.114
Server:    114.114.114.114
Address 1: 114.114.114.114 public1.114dns.com

Name:      www.right.com.cn
Address 1: 59.56.79.48
Address 2: 59.56.79.22
Address 3: 115.231.230.150
K2P:/home/root # nslookup www.right.com.cn
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

Name:      www.right.com.cn
Address 1: 59.56.79.22以上代表 SmartDNS 返回 www.right.com.cn 的测速最佳结果(各地结果可能不同),也是唯一的结果
[*]接着测试 AdGuard Home 的过滤效果,下载DNS封锁清单 "anti-AD easylist.txt",找到其中一个钓鱼网址 "youtibe.com"
K2P:/home/root # nslookup youtibe.com 114.114.114.114
Server:    114.114.114.114
Address 1: 114.114.114.114 public1.114dns.com

Name:      youtibe.com
Address 1: 162.215.252.78 162-215-252-78.unifiedlayer.com
K2P:/home/root # nslookup youtibe.com
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

nslookup: can't resolve 'youtibe.com'以上代表 AdGuard Home 已经正确封锁 youtibe.com
[*]接下来模拟修改 SmartDNS 设置,但并未重启 AdGuard Home,将会产生什麽结果
请关闭再启用 SmartDNS 加速
运行:
K2P:/home/root # ps | egrep 'adg|dns' | grep -v grep
3517 admin   1512 S    {adguardhome.sh} /bin/sh /usr/bin/adguardhome.sh start
3518 admin   661m S    /tmp/AdGuardHome/AdGuardHome -c /etc/storage/adg.sh -w /tmp/AdGuardHome -v
3723 nobody    1324 S    /usr/sbin/dnsmasq
3780 admin   9984 S    /usr/bin/smartdns -f -c /etc/storage/smartdns.conf
K2P:/home/root # nslookup modem
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

nslookup: can't resolve 'modem'
K2P:/home/root # nslookup www.right.com.cn
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

Name:      www.right.com.cn
Address 1: 59.56.79.48
Address 2: 59.56.79.22
Address 3: 115.231.230.150
K2P:/home/root # nslookup youtibe.com
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.localdomain

Name:      youtibe.com
Address 1: 162.215.252.78 162-215-252-78.unifiedlayer.com以上可见所有程序貌似运行无误,但是 AdGuard Home 却已经失去作用,实际上是 dnsmasq 向外网 DNS 114.114.114.114 查询所返还的结果,没有加速或过滤的效果,因此只要是修改或重启 SmartDNS,就必须同时重启 AdGuard Home,路由器重启则无此问题

static/image/hrline/4.gif
SmartDNS 运行参数储存如下:
/etc/storage/smartdns.conf (自动产生,请勿修改)
/etc/storage/smartdns_address.conf(域名地址)
/etc/storage/smartdns_blacklist-ip.conf(IP黑名单)
/etc/storage/smartdns_custom.conf(自定义设置)
/etc/storage/smartdns_whitelist-ip.conf(IP白名单)
/etc/storage/anti-ad-smartdns.conf (自行增加的附加配置文件:anti-AD广告过滤列表)
AdGuard Home 运行参数储存于 "/etc/storage/adg.sh" 和 nvram 当中,以下是我所蒐集的 AdGuard Home 封锁清单,请自行编辑加入,重启 AdGuard Home 后,再勾选想要封锁的列表:
filters:
- enabled: false
url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
name: AdGuard Simplified Domain Names filter
id: 1
- enabled: false
url: https://adaway.org/hosts.txt
name: AdAway
id: 2
- enabled: false
url: https://hosts-file.net/ad_servers.txt
name: hpHosts - Ad and Tracking servers only
id: 3
- enabled: false
url: https://www.malwaredomainlist.com/hostslist/hosts.txt
name: MalwareDomainList.com Hosts List
id: 4
- enabled: true
url: https://anti-ad.net/easylist.txt
name: anti-AD
id: 5
- enabled: false
url: https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/basic/hosts.txt
name: neoHosts Basic
id: 6
- enabled: false
url: https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/full/hosts.txt
name: neoHosts Full
id: 7
- enabled: false
url: https://raw.githubusercontent.com/vokins/yhosts/master/data/tvbox.txt
name: yhosts tvbox
id: 8
- enabled: false
url: https://easylist-downloads.adblockplus.org/easylist.txt
name: EasyList
id: 9
- enabled: false
url: https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt
name: CJX's EasyList Lite
id: 10
- enabled: false
url: https://easylist-downloads.adblockplus.org/easylistchina.txt
name: EasyList China
id: 11
- enabled: false
url: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
name: StevenBlack
id: 12
- enabled: false
url: https://gitlab.com/CHEF-KOCH/cks-filterlist/raw/master/hosts/Ads-tracker.txt
name: CHEF-KOCH ADs
id: 13
- enabled: false
url: https://raw.githubusercontent.com/CHEF-KOCH/NSABlocklist/master/HOSTS/HOSTS
name: CHEF-KOCH NASBlocklist
id: 14
- enabled: false
url: https://zerodot1.gitlab.io/CoinBlockerLists/hosts
name: CoinBlocker
id: 15在此特别说明,anti-AD 貌似已经整合 neoHosts + yhosts + EasyList/CJX's EasyList Lite + EasyList China,因此勾选 anti-AD 就不必勾选其他

强烈推荐 "如何正确使用smartdns搭配adguardhome, 优选dns并去除广告",由於我不便盗图,所以请自行前往阅读,尤其是其中的拓朴图,关键在于 "china-dns 分流" 和 "正确上网姿势",大致实现国内国外分流,美中不足的是 AdGuard Home 无法像 SmartDNS 一样设置多个端口,虽然可以针对个别网域设置上游DNS,但是扩展性仍嫌不足,所以只能国内国外择一设置

参考教程:
smartdns和adguardhome同时设置 恩山无线论坛
关于smartdns不能正确获取最快IP的方法 恩山无线论坛
如何正确使用smartdns搭配adguardhome, 优选dns并去除广告_值客原创_什么值得买
用上这个神器后,广告从此去无忧!(全平台免费支持,无需安装任何客户端软件) - 掘金
Configuration · AdguardTeam/AdGuardHome Wiki · GitHub
GitHub - pymumu/smartdns: A local DNS server to obtain the fastest website IP for the best Internet experience, 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验。
GitHub - privacy-protection-tools/anti-AD: anti-AD是目前中文区命中率最高的广告过滤列表,实现了精确的广告屏蔽和隐私保护。现已支持AdGuardHome,dnsmasq, Surge,Pi-Hole,smartdns等网络组件。完全兼容常见的广告过滤工具所支持的各种广告过滤列表格式
GitHub - neoFelhz/neohosts: 自由·负责·克制 去广告 Hosts 项目
GitHub - vokins/yhosts: AD hosts爱好群,群号:201973909;
GitHub - cjx82630/cjxlist

fyi2000 发表于 2020-8-9 17:36

leonZL 发表于 2020-8-8 17:45
那是否可以启动或者关机的时候先删除anti-ad-smartdns.conf文件。这样再自动下载。
另外想问一下,使用s ...

SmartDNS不支持订阅!只要你看懂如何把anti-AD加入SmartDNS,答案就很清楚,除非将来 "conf-file" 支持超链结

SmartDNS的CPU和内存使用率低,运行效率高,估计MT7620也能跑得顺,AdguardHome支持仪表盘和多重规则订阅,新版也增加了SmartrDNS的部份功能,但是还不支持国内外查询分流,如果CPU够快,内存够大,建议还是按照一楼设置,但是把anti-AD规则移到SmartDNS,配合低调上网,至少出国还有anti-AD把关

fyi2000 发表于 2020-6-15 05:33

leonZL 发表于 2020-6-14 11:10
您好!请问如果对于局域网中个别终端不想用去广告功能,是不是在adguard里面:设置→DNS设置→不允许的客 ...

是完全不允许查询网域名,并非只有不能去广告
不允许的客户端
CIDR 或 IP 地址列表。如配置,则 AdGuard Home 会放弃源自这些 IP 地址的请求。AdGuardHome - DNS重定向 - 重定向53端口到AdGuardHome
AdGuardHome - WEB管理地址 - 设置 - DNS设置 - 不允许的客户端 - 设置不允许的IP - 保存配置
提交 NVRAM & /etc/storage

但是C大20200507之前的版本有一个臭虫,启动重定向53端口到AdGuardHome之后,结果少了udp dpt:53重定向K2P:/home/root # iptables -t nat -L PREROUTING -n
Chain PREROUTING (policy ACCEPT)
target   prot opt source               destination
vserver    all--0.0.0.0/0            192.168.1.2
REDIRECT   tcp--0.0.0.0/0            192.168.2.1          tcp dpt:53 redir ports 5335
REDIRECT   tcp--0.0.0.0/0            192.168.1.2         tcp dpt:53 redir ports 5335检查 /usr/bin/adguardhome.sh 后发现
set_iptable()
{
    if [ "$(nvram get adg_redirect)" = 2 ]; then
      IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`"
      for IP in $IPS
      do
                iptables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports 5335 >/dev/null 2>&1
                iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports 5335>/dev/null 2>&1
      done

      IPS="`ifconfig | grep "inet6 addr" | grep -v " fe80::" | grep -v " ::1" | grep "Global" | awk '{print $3}'`"
      for IP in $IPS
      do
                ip6tables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports 5335 >/dev/null 2>&1
                ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports 5335 >/dev/null 2>&1
      done
    logger -t "AdGuardHome" "重定向53端口"
    fi
}其中
                iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports 5335>/dev/null 2>&1在 "5335" 和 ">/dev/null" 之间少了一个空格,暂时的解决办法是修改 "参数设置 - 脚本 - 在路由器启动后执行:",加入
#AdGuardHome /usr/bin/adguardhome.sh set_iptable() fix
#必须适度增加 sleep 秒数,让修正脚本在 AdGuardHome 之后运行
sleep 10
if [ "$(nvram get adg_enable)" = 1 ] && [ "$(nvram get adg_redirect)" = 2 ]; then
    IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`"
    for IP in $IPS
    do
            iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports 5335 >/dev/null 2>&1
    done
    logger -t "AdGuardHome" "重定向udp:53端口"
fi提交 NVRAM & /etc/storage,重启,检查系统日志
Jun 15 05:13:57 自动启动: 正在启动SmartDns
Jun 15 05:13:58 SmartDNS: 创建配置文件.
Jun 15 05:13:58 SmartDNS: SmartDNS启动成功
Jun 15 05:13:58 自动启动: 正在检查路由是否已连接互联网!
Jun 15 05:13:58 自动启动: 正在启动adguardhome
Jun 15 05:13:58 AdGuardHome: 下载AdGuardHome
Jun 15 05:14:02 AdGuardHome: AdGuardHome下载成功。<=== 万一下载不成功则不运行修正脚本
Jun 15 05:14:03 AdGuardHome: 重定向53端口
Jun 15 05:14:03 AdGuardHome: 运行AdGuardHome
Jun 15 05:14:05 AdGuardHome: 重定向udp:53端口 <=== 设置成功,必须在 AdGuardHome 之后运行K2P:/home/root # iptables -t nat -L PREROUTING -n
Chain PREROUTING (policy ACCEPT)
target   prot opt source               destination
vserver    all--0.0.0.0/0            192.168.1.2
REDIRECT   tcp--0.0.0.0/0            192.168.2.1          tcp dpt:53 redir ports 5335
REDIRECT   tcp--0.0.0.0/0            192.168.1.2         tcp dpt:53 redir ports 5335
REDIRECT   udp--0.0.0.0/0            192.168.2.1          udp dpt:53 redir ports 5335
REDIRECT   udp--0.0.0.0/0            192.168.1.2         udp dpt:53 redir ports 5335我没有github帐号,所以只能请网友转告C大

fyi2000 发表于 2020-4-8 23:04

本帖最后由 fyi2000 于 2020-4-9 04:39 编辑

MilkT 发表于 2020-4-8 13:26
能整合一个去广告规则吗
编辑 /etc/storage/adg.sh
- enabled: true
url: https://hosts.nfz.moe/basic/hosts
name: neoHosts Basic
id: 5
- enabled: false
url: https://hosts.nfz.moe/full/hosts
name: neoHosts Full
id: 6
- enabled: true
url: https://raw.githubusercontent.com/vokins/yhosts/master/data/tvbox.txt
name: yhosts tvbox
id: 7
- enabled: true
url: https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt
name: CJX's EasyList Lite
id: 8
- enabled: true
url: https://easylist-downloads.adblockplus.org/easylistchina.txt
name: EasyList China
id: 9
- enabled: true
url: https://easylist.to/easylist/easylist.txt
name: EasyList
id: 10
- enabled: false
url: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
name: StevenBlack
id: 11记得 "保存内部存储到闪存"

补充:
找到一个整合好的列表 anti-AD,貌似包含 neoHosts / yhosts / cjxlist / EasyList 等

GitHub - privacy-protection-tools/anti-AD: anti-AD是目前中文区命中率最高的广告过滤列表,实现了精确的广告屏蔽和隐私保护。现已支持AdGuardHome,dnsmasq, Surge,Pi-Hole,smartdns等网络组件。完全兼容常见的广告过滤工具所支持的各种广告过滤列表格式
anti-AD Filters | 目前中文区命中率最高的广告过滤列表

fyi2000 发表于 2020-4-7 08:07

老毛子/Padavan单独设置SmartDNS去广告

本帖最后由 fyi2000 于 2020-5-3 23:27 编辑

以PuTTY登陆SSH 192.168.2.1:22
运行
wget -O /etc/storage/anti-ad-smartdns.conf https://gitee.com/privacy-protection-tools/anti-ad/raw/master/anti-ad-for-smartdns.conf将一楼附件 SmartDNS-AdGuard.zip 解压,除了 adg.sh 以外,以SCP/WinSCP上传至 /etc/storage,覆盖旧文件
以浏览器登陆老毛子后台 192.168.2.1
点击 DNS服务 - AdGuard Home
启用AdGuardHome 关闭
应用设置

点击 DNS服务 - SmartDNS
DNS加速 启用
重定向 作为dnsmasq的上游服务器
应用设置
最后记得保存 NVRAM 和内部存储 (/etc/storage) 到闪存

由於SmartDNS并不支持订阅,所以必须手动更新 anti-AD 广告列表

lesing 发表于 2020-4-7 08:39

好好学习 天天向上

chyiori 发表于 2020-4-7 08:56

厉害了,学习下。

kinkit 发表于 2020-4-7 08:57

谢谢分享!!!

筋斗云 发表于 2020-4-7 09:04

非常详细,回去试试

狂笑一君 发表于 2020-4-7 09:17

感谢分享,火钳刘明

hank1198 发表于 2020-4-7 09:20

感谢分享!很好的教程

ralhf 发表于 2020-4-7 09:20

好教程,等一下试试

ralhf 发表于 2020-4-7 09:21

试试效果怎么样

1442660018 发表于 2020-4-7 09:33

感谢分享!

lzhlenshan0 发表于 2020-4-7 09:36

非常详细,马上试试

左手断线 发表于 2020-4-7 11:14

楼主,smartDNS 需要配置自己运营商的Dns吗?

fengfp 发表于 2020-4-7 14:12

非常好的经验分享,刚需要就学习到了,感谢分享!

锦鷀 发表于 2020-4-7 15:25

谢谢楼主分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 老毛子/Padavan设置SmartDNS提速+AdGuard Home去广告之东施效颦