爱极客专注分享-好玩的docker应用-源码分享

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

1. 概述

本设置试图实现DNS完全自主定义和日志追踪效果,以及实现基础国内外上网功能
设置流程基于恩山论坛IPV6大全版固件,仅为adgaurd+ passwall+ smartdns设置流程。软路由设置是否成功和正确,从日志判断是最准确的,这也是本设置流程的依据。
本设置会让DNS数值看起来很好,但0.02ms和200ms看似1万倍差距,其实感觉不出来差异,故实际意义有限,实际设置时不用太纠结。
因为新旧固件差异很大,此教程主要讲述原理,实际设置只要架构对就可以,绝大部分默认设置其实也不需要变动。

本教程是软路由作为主路由,软路由作为旁路由的用户,可以根据教程自行选择设置,流程是一样的!!

架构解析

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
玩家必须了解以上架构,并保证网内主机的DNS必须为路由器地址,会严格从路由器进行解析。架构设置完毕,主机建议用 ipconfig /flushdns 方式清空缓存DNS。手机则可以开飞行模式,恢复后清空DNS缓存。
此架构搭建时,除基本网络接口设置外,建议从后向前设置,即先设置SMARTDNS,再设置PASSWALL,能成功出墙后再设置ADG更新内核。

另一种方法,如用adguard直接监控53,再转到DNSMASQ的54端口,也能完成架构,但旧版存在DNS无法下发导致手机直接走流量的问题!

2. 设置流程

玩家需要知道,各DNS应用设置不当都可能导致DNS架构崩塌,故原则上某APP只允许设置自己的部分而不应该强制去变动DNSMASQ。

2.1 光猫桥接

记住VLAN号,增加桥架设置,如下:

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

桥接后,所有IPV6配置中,关闭所有RA通告和DHCPV6服务。DHCPV4的建议保留,以方便维护。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.2 分区扩容

如果要扩容开docker,就第一时间搞,不要设置完了想搞把配置弄丢了。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.4 计划任务&任务设置

简单看一下,没事别释放内存和重启机器,固件中很少发现内存泄漏软件,释放内存和重启只会让机器变慢。

2.5 系统->启动项

普通用户Nginx和avahi服务,点击为禁用状态。Nginx会占用80&443端口导致冲突,avahi的mDNS组播服务可能导致FE80的IPV6每20分钟被回收和重新注册而触发PASSWALL重启。若使用ipad隔空打印,则建议/etc/avahi/avahi-daemon.conf 中设置 use-ipv6=no

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.6 SmartDNS

实现的功能:

  1. 屏蔽不需要IPV6解析的网站以实现快速解析
  2. 理论上选取较快的唯一DNS反馈给查询的主机。
    除红色部分外绝大部分设置其实不需要变动,此处仅为理论分析协助玩家理解。 基本设置 【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

一般仅开启IPV6选项即可,其它取消。各选项解释如下:

  • TCP服务器:用于网络有备份DNS服务器的情况;普通用户不需要
  • IPV6服务器,监听IPV6本机地址[::1]:6054的请求;
  • 双栈IP优选:若IPV4/IPV6其中一个延时太长,则直接丢弃DNS解析,目前大陆网络IPV6已全面提速,此项建议取消。
  • 域名预加载:缓存的DNS过期即TTL=0时,自动向上查询更新;这个理论上效果最好,但也在理论上会加重路由器负担,并导致频繁向上游查询DNS和连接代理查询国外DNS,长期连接代理或许更容易导致节点被封
  • 缓存过期服务:当DNS过期即TTL为0时,回复TTL=5的短周期DNS给客户端以防止等待
  • 缓存大小,设置为0即可,因为后续有ADG的乐观缓存,等同于此处的缓存过期服务,故SMART不开启缓存,仅作为一个查询过程使用。
  • 解析本地主机名:按架构DNSMASQ其实会直接回复客户机,此处不需要SMART来解析
  • 停用IPV6解析,不返回IPV6解析地址,此项一般会取消,以返回IPV6地址。
  • 停用HTTPS地址解析:过滤掉 HTTPS 类型65的查询 ,避免iOS设备绕过常规DNS服务
  • TTL时间,默认即可,一般不需要额外设置。

第二DNS服务器

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

第二DNS服务器建议 停用IPV6地址解析。
旁门左道版设置,则不停用IPV6。 如此一来主机会直连IPV6的油管,油管接收信息后返回撞上防火墙;卡顿后会从IPV4走代理过去,但油管会判断主机有大陆的IPV6地址,从而减少或者没有广告。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

上游服务器:
国内为:223.5.5.5, 223.6.6.6, UDP
国外为:8.8.4.4,8.8.8.8,DOT,其它DOH和DOT节点亦可。若使用DOT(tls),请记得passwall的TCP转发端口增加853,不然DNS请求会被丢弃。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

此栏为特色设置,例如禁用国际版领英的IPV6以强制其走代理;另可设置WIN默认时间同步为路由器地址(DNS劫持建议都做在DNSMASQ,设置在这里似乎新版本不行,会走CNAME被跳过)。

此时SMART进入服务状态,实际并未被任何服务使用。

2.7 接口

在2023的固件中有设置向导,原则上设置后不需要变更细节。此章节引导手动设置,尽量少改动默认值为妙。

全局网络选项

IPv6 ULA 前缀 建议删除好了,直接用公网前缀即可。
一般建议外网口新增城域网接口,MAN口://和WAN共用一个口

  1. 传输协议用DHCP客户端。这样就可以直接用IP访问上游的光猫。
  2. 防火墙设置,选择WAN/MAN。 【软路由基础设置】软路由Adguard+passwall+smartdns设置流程【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

WAN6接口设置

如果用路由器拨号,物理设置改为@WAN,即可看到前缀等信息。如果是猫拨号并下发前缀则用WAN口即可。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

LAN口->IPV6设置

检查一下DNS,有可能是错误的。::1地址的前缀很折腾,此处直接留空即可。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

观察IPV6 WAN的分发前缀,例如:
IPv6-PD: 2408:*::/60

若没有前缀,则联系供应商下发前缀。/64前缀也可下发,但会是最小子网。
IPV6的/64子网无法进行2级路由下发而只能采用通告和中继模式,设置很容易出问题,所以网络中不建议使用2级路由。若非要2级路由,则建议主路由下发整个WAN口的/60长度且主路由支持dhcp前缀下发,2级路由下发/62或/64才行。具体设置较为复杂且作者没有这方面的实战经验。

2.8 DHCP/DNS(Dnsmasq)

基本设置:
DNS转发,填写127.0.0.1#6053 //#不要错误写成冒号 重绑定保护,在校园网这种有内网解析的环境中要取消。
也可支持域名,以便内网同步时间。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

高级设置:
禁止解析 IPv6 DNS 记录,取消勾选,启用IPV6解析。
DNS 服务器端口:保持默认的53
最大并发查询数,建议加大为9999 //其实意义不大
DNS查询缓存大小,建议设置为1 //其实意义不大

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

至此,所有DNS会进入路由器,之后被转发到SMARTDNS的6054口,即阿里DNS。
此时并没有分流!也就是会存在DNS污染。

2.9 防火墙

自定义规则,53端口的条目全部注释掉,防止防火墙规则跨越ADGUARD的端口。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.10 ACC网络加速设置

建议除FULLCONE(全锥形NAT)外全部取消,DNS加速必须取消。
注意:在新版本固件中,FullCone-NAT在“防火墙”设置中。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.11 PASSWALL

新版可直接添加本地SOCKS节点127.0.0.1:1181,以开启负载均衡:建议健康检查1小时即可,1分钟其实有点过于频繁。//IPV6节点其实不会被封

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

注意旧版的PASSWALL,其类型、密码、加密方式等,必须与“负载均衡”中的所有节点一模一样!否则无法工作。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

基本设置->DNS:(不要开启chinadns-NG为上游)
若为其它版本,此画面会不同,但原则不变:
国内为DNSMASQ解析,前方设置中已转发到SMART的6054国内端口;

过滤模式为UDP,地址可能为127.0.0.1:7054,用冒号或者#号取决于不同版本,设置成功后看日志即可确认是否正确。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

高级设置/(其它设置):
TCP转发端口,若使用了DOT的DNS,请记得常用端口只有(22,25,53,143,465,587,993,995,80,443),853在旧版固件中并没有在常用端口中,一定要手动添加853。
IPv6透明代理(TProxy)只能用于NAT6,也就是非公网IPV6的内网,一般不建议这样设置,故不建议开启。//此处不开正好满足国内IPV6地址透露给油管的需求,即故意撞墙。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程//shadowsocks仅支持Redirect方式,故透明代理理论上要用v2ray或xray节点才行。
直连/代理名单管理->代理列表:
已默认dns.google,doh.opendns.com和IP(8.8.8.8,8.8.4.4,208.67.222.222, 208.67.220.220)走代理表,若没有请自行添加。若有其它国外DNS,也一并把域名和IP地址添加到表内。//一般建议把github.com也添加进代理。建议把linkedin.com也添加进去。

检验设置是否成功,请在启动后查看PASSWALL日志,若有以下信息即为正确:

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

此时系统应该能正常出墙。

2.12 AdGuard Home

先更新内核,由于系统已将github走代理,很容易成功。
重定向NAT的53请求到Adgurd的端口。
开机后网络准备好时重启,建议勾选。//理论上这样重启后效果更好。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

防火墙的NAT表中可看到已转发:

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

//这种设置的好处是,手机不会提示断网,即使ADG停止,理论上也不影响正常的DNS解析。
点击管理界面的绿色区域“Web:3000”进入管理器:

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.12.1 设置->DNS设置:

  1. 上游DNS服务器,127.0.0.1:53 //指向系统的Dnsmasq端口 【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
  2. 禁用IPV6,取消 【软路由基础设置】软路由Adguard+passwall+smartdns设置流程
  3. 若此处DNS缓存建议直接设置大值并开启乐观缓存。 【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

//此处乐观缓存DNS解析数据为0.1毫秒左右,很漂亮。但也只是看起来漂亮。
//每个DNS约605字节,此处约10万+缓存,基本够用了。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

2.12.2 检查客户端

若客户端只有路由器的DNS(192.168.2.1以及2408:*::1),没有其它DNS,则代表成功。当然部分小米手机会自带DNS,部分软件也会从自己的DNS解析,所以实质上不能完全保证所有软件从路由器解析,也无法保证有些手机不被DNS污染。

关于IPV6
路由器的::1为IPV6地址,与IPV4的127.0.0.1是无缝互通的;adguard也会处理IPV6流量,开启后从防火墙规则可以看出来;SMART作为最终DNS服务器,IPV4的点和DOT均实现IPV6的完美解析和访问。
旁门左道版设置会正确解析油管的IPV6,但会用国内IPV6地址直连,除教育网外都会撞墙,以达到去广告的目的。另有部分IPV6地址未被墙网站如推特则会用IPV6地址直连。
关于DNS缓存
根据架构,DNS时会经历ADG,DNSMASQ,SMART三个流程,此3项皆可设置缓存。显然,从理论上分析,ADG即最底层做DNS缓存和乐观缓存会更有效加快DNS解析。
但实质上软路由处理此3项流程都是瞬间完成的,无论SMART或是ADG带有缓存并返回过期服务,就能实现软路由的最快解析。
关于重启
正常情况下没有内存泄漏的软件,软路由设置好后解析和服务会越来越快,不建议重启。
//WAN口变动时/etc/hotplug.d/iface/下防火墙等会重启和自动适应。
//路由器若不稳定,则应该从系统日志中找原因,重启并不能解决问题。
关于配置备份
实测发现大部分配置能恢复,但adguard内部设置,以及docker无法恢复。
关于打印机
存储->打印服务,可开启打印机,但只适应于windows安装驱动后使用;
另一服务CUPS可供安卓和苹果使用,建议使用以下docker:
docker run -d -p 631:631 –privileged=true -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus –name cupsd olbat/cupsd
驱动程序较多,密码和用户名为print/print,地址格式示例为:
192.168.2.1:631/printers/HP_DeskJet_1200_series
游戏设置
游戏设置理论上会导致端口暴露,增加风险,但实质上问题不大。
防火墙
启用fullcone-nat为高性能模式,一般上运营商上游设备也有此设置,即可允许外界玩家联接本机。
流量规格,则建议转发WAN口至LAN的IPV6高位端口的TCP/UDP转发,以优化IPV6游戏体验。这样会导致端口暴露,但/64子网数量巨大,并不担心外界扫描子网地址。

【软路由基础设置】软路由Adguard+passwall+smartdns设置流程

3. vps主机

PASSWALL默认代理国外UDP流量,此时需要关闭PASSWALL的负载均衡,以保证UDP流量会代理到同一主机。
VPS方面则建议直接开启高位的UDP端口,以允许国外连接。
firewall-cmd –permanent –add-port=1024-65535/udp

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容