软路由基础设置

概述

设置流程基于IPV6大全版固件,仅为adgaurd+ passwall+ smartdns设置流程。此文件涉及敏感词,不建议在大陆解密发送和传播。 

软路由设置是否成功和正确,从日志判断是最准确的,这也是本设置流程的依据。

架构解析

设备DNS查询-> 转发到adgurad监听的5353端口-> Dnsmasq监听的53端口->PASSWALL接管dnsmasq进行分流->smartdns相应的分流端口。下图可作为示例,但不是本架构的精确描述,且遗漏了Dnsmasq部分。

玩家必须了解以上架构,并保证网内主机的DNS没有专门设置,会严格从路由器进行解析。架构设置完毕,主机建议用 ipconfig /flushdns 方式清空缓存DNS。手机则可以开飞行模式,恢复后清空DNS缓存。

此架构搭建时,除基本网络接口设置外,建议从后向前设置,即先设置SMARTDNS,再设置PASSWALL,能成功出墙后再设置ADG更新内核。

设置流程

网络->负载均衡

此项与PASSWALL的负载均衡会有冲突,如果不用多WAN,此项建议直接禁用掉。

接口

WAN口->高级设置:

  1. 使用内置IPV6管理,
  2. 获取IPv6地址->自动,
  3. 使用默认网关,
  4. 使用对端通告的DNS服务器,取消勾选。//不然会下发运营商的DNS,导致客户端跳过路由器而直接使用公共DNS造成污染。
  5. 防火墙设置,默认为WAN/MAN即可,若默认有误则手动选中。

一般建议外网口新增城域网接口,MAN口://和WAN共用一个口

  1. 传输协议用DHCP客户端。这样就可以直接用IP访问上游的光猫。
  2. 但如果是docker版,据说会有问题,无法访问光猫。
  3. 防火墙设置,选择WAN/MAN。

LAN口->基本设置:

  1. 传输协议,静态地址,如192.168.2.1
  2. 网关为路由器本身,如192.168.2.1
  3. 不使用自定义的DNS服务器 //IPV4的DNS默认会是网关,即路由器本身
  4. IPV6分配长度为64
  5. IPV6后缀为 ::1

LAN口->高级设置:

  1. 使用内置的IPV6管理
  2. 强制链路

下方的高级设置,

  1. 使用动态DHCP
  2. 强制

下方的ipv6设置

  1. 路由通告服务,服务器模式
  2. DHCPV6服务,服务器模式 //不然会把MAC地址上传到上游网关,据说不安全
  3. NDP代理,混合模式
  4. 总是通告默认路由,勾选

IPV6的/64地址无法进行2级路由下发而只能采用通告和中继模式,设置很容易出问题,所以网络中不建议使用2级路由。

DHCP/DNSDnsmasq

基本设置:

DNS转发,填写127.0.0.1#6054 //#不要错误写成冒号

高级设置:

禁止解析 IPv6 DNS 记录,取消勾选,启用IPV6解析。

DNS 服务器端口:保持默认的53//作为未来adguard的上游

DNS查询缓存大小,建议设置为0

防火墙

自定义规则:

#iptables -t nat -A PREROUTING -p udp –dport 53 -j REDIRECT –to-ports 53

#iptables -t nat -A PREROUTING -p tcp –dport 53 -j REDIRECT –to-ports 53

#ip6tables -t nat -A PREROUTING -p udp –dport 53 -j REDIRECT –to-ports 53

#ip6tables -t nat -A PREROUTING -p tcp –dport 53 -j REDIRECT –to-ports 53

注释掉这些行,防止防火墙规则跨越ADGUARD的5353端口。

ACC网络加速设置

建议除FULLCONE(全锥形NAT)外全部取消,DNS加速必须取消。

SmartDNS

基本设置

第二DNS服务器

上游服务器:

记得分组时,ali为china,dns.google为guowai。

此部分不需要设置太多DNS。dns.google已走代理,但实际运行时,似乎第一次DNS请求不会走代理,所以国外部分还是要走DOH。

//此时SMART只是待机状态,并没有被任何软件指向。

PASSWALL

->节点列表, 

如果VPS用fail2ban保护了SSRR,千万记得要取消Tcping,不然会留下错误日志导致IP被封,虽然手动解封也不难。

添加以下节点,以开启负载均衡:

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

基本设置->DNS:(不要开启chinadns-NG为上游)

高级设置->定时配置->启动守护进程,勾选。

直连/代理名单管理->代理列表:

已默认dns.google和IP(8.8.8.8,8.8.4.4)走代理表,若没有请自行添加。若有其它国外DNS,也一并添加到表内。

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

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

AdGuard Home

先更新内核,由于系统已走代理,很容易成功。

重定向NAT的53请求到Adgurd的5353端口。

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

//这种设置的好处是,手机不会提示断网,即使ADG停止,也不影响正常的DNS解析。

进入管理器:

->DNS设置:

  1. 上游DNS服务器,127.0.0.1:53 //指向系统的Dnsmasq端口
  2. 禁用IPV6,取消
  3. DNS缓存大小,建议设置为0

关于IPV6

路由器的::1为IPV6地址,与IPV4的127.0.0.1是无缝互通的;adguard也会处理IPV6流量,开启后从防火墙规则可以看出来;而阿里和GOOGLE的IPV4型DNS就可以解析IPV6地址,所以整个流程中对IPV6并不需要做专门设置。

更新日志

2021.9 解决PASSW的负载均衡与MWAN的冲突问题,清除DNSMASQ和ADG的缓存,防止被污染的DNS过长时间存在于缓存中

2021.8 更正国内SMART端口格式为#6054

2021.8 取消smardns的“域名预加载”,以减轻软路由负担

2021.7 尝试设置7.24版本,虚拟机尝试成功

2021.6 以元旦版为固件,基本形成系统

2021.1 开展尝试与总结

来自电报sirpdboy-openwrt 聊天群