真正的技术贴来了!SmartDNS + PassWall,看懂一张图,上网快又稳

  • x
    xiaokai
    写在前面的话:


    终于是时候展现真正的技术了!

    家用网络路由系统中,软路由是关键点所在,我们希望实现的各种需求,都需要通过这个设备来实现。

    所谓软路由,一般指的是在微型 PC 机硬件上安装 Openwrt 系统作为路由器使用。使用软路由最大的好处,就是 CPU 和内存更强大,系统扩展性更好,可以实现某些在硬路由上无法实现的功能。

    对我个人而言,最常用的需求是使用 SmartDNS + PassWall 实现国内外流量的分流加速访问,尤其是流畅连接 Switch 服务提升猛男捡树枝的体验。尽管现在的很多固件都喜欢将 AdGuard Home 或者 KoolProxy 的去广告功能也加到这个组合中,但根据我个人的长期使用体验,路由系统中的去广告的功能不仅很难达到理想的效果,反而容易带来各种稀奇古怪的问题,所以建议一般使用者只用这两者的组合就行了。

    以下是两个插件之间协同工作的拓扑图,看懂了这张图,那对于各个配置项该如何设置而且为什么这么设置也就了然于心了。看不懂也没关系,下方会有详细的教程,手把手教会你配置出一个又快又稳的软路由。







    一、SmartDNS 设置要点

    首先,添加 DNS 列表并分为国内(china)和国外(world)两个分组,国内采用 UDP 连接,国外采用 TCP 连接。

    1. 点击“添加”按钮①,等新的 DNS 列表项出来了,再点击“修改”按钮②。


    2. 在设置页面中,严格按照 DNS 列表中的内容,填写各个属性,建议每填完一个先“保存”①,然后“返回至概况”②,等待全部填写完毕之后再进行“保存并应用”。



    3. 以下是我个人收集和测试过的国内外 DNS 列表,请参考选用。填写时,类型和服务器组请特别注意不要出错。



    然后,对 DNS 分组的各项属性进行配置,我会结合编号来配合说明各项属性的意义。

    1. 基本分组对应 china 分组,用来对国内的域名进行解析,可以实现直连效果。

    • ① 服务器名称对应确认这个分组中可以使用哪些上面设置好了分组的 DNS 服务器。
    • ② 本地端口不能是53等默认端口,之后在 Passwall 中需要对应设置。
    • ③ 勾选TCP服务器,以便 Passwall 可以进行调用。
    • ④ 域名预加载,可以提前解析已加载页面中还未访问的链接域名。
    • ⑤ 过期缓存服务,可以避免查询等待。
    • ⑥ (重要!)重定向选择“无”,以免干扰 Passwall 接管 DNS 解析。
    • ⑦ 缓存大小可以根据软路由配置设置大一点。




    2. 第二 DNS 服务器对应 world 分组,用来对国外的域名进行解析,可以实现加速效果。

    • ① 不要跳过测速,以便可以从加速线路访问最快的地址。
    • ② + ④ 组合勾选,以便去除 IPv6 DNS 解析对于访问的影响。
    • ③ 跳过 Cache,使用 Passwall 的 pdnsd 进行缓存。



    3. 把 IP 黑名单和自定义设置中的广告过滤规则全部清空,避免出现意想不到的问题。

    经过如上操作,SmartDNS 的设置就完了,但其实还不能单独发挥效果。接下去进入更关键的 PassWall 设置,让两者结合产生奇妙化学反应。


    二、PassWall 设置要点

    首先,在“节点列表”或者“节点订阅”中添加你的加速路线节点,这个如何实现我们就不在这里细谈了,你懂的……

    其次,也最重要的是,进入“基本设置-DNS”使用 PassWall 接管整个系统的 DNS 解析,并且实现国内外网站的访问分流。

    • ① + ② 将 ChinaDNS-NG 强制设置为 dnsmasq 的上游,保证所有的联网设备都能获取正确的解析结果。
    • ③ 使用 SmartDNS 的基本分组,为国内域名提供解析。
    • ④ 使用 pdnsd 过滤方式,保留本地缓存,提升访问速度。
    • ⑤ 设置通过 TCP 节点请求 DNS,和 SmartDNS 的相关设置匹配。
    • ⑥ 服务请求地址指向 SmartDNS 的第二服务器,为国外域名提供解析。




    然后,在“模式”选项中,对于流量的分流模式进行选择,如图所示即可。



    最后,进入“直连/代理列表管理”,把所有的国内 DNS 地址加入直连列表,把国外 DNS 地址加入代理列表。同时,建议把京东、淘宝这些有国际站的域名,也都加入到直连列表中,以免出现错误定向至国际站的问题。






    设置到这里,我们再回到“基本设置 - 主要”里面,选择对应的节点,再保存并应用,恭喜你已经可以享受又快又稳的网络啦!

    不过为了能有最好的体验,强烈建议你在有条件的情况下,再多做几步让网络更稳点。

    首先,在有多个节点可用的情况下,强烈建议使用负载均衡实现并发分流。

    • 设置的关键是,如果有多个节点的物理位置很近甚至就在一个机房内,可以设置为一个分组。如果物理位置相隔很远,则不建议使用这个功能,带来的不可预测的问题会比较多。
    • 设置为同一个组的节点,除了地址之外,其他的属性如类型、端口、密码等都必须完全一样。
    • 通过设置不同的均衡端口,可以设置多个分组,比如我日常加速用的是香港节点分组,而为了看 Netflix 就特意建立了一个新加坡分组。



    设置完负载均衡分组后,回到“节点列表”设置页,点击“添加”节点,新增一个相同类型的节点。

    • ① + ② + ③ 使用和分组节点完全相同的属性。
    • ④ + ⑤ 地址使用本地地址 127.0.0.1 ,端口选择对应分组的端口号。



    如果你和我一样,还有通过新加坡节点看 Netflix 的需求,那么就再建一个 V2ry 的分流节点。

    (你问我为啥要搞这么复杂?还不是因为贫穷!新加坡节点可以访问一个月只要36块的土区账号,比港区省了一半的钱啊!)



    最后,我们再回到“基本设置 - 主要”里面,选择对应的节点,点击“保存和应用”,就可以开心的捡树枝啦!




    三、来几个小彩蛋

    男人啊,就是不知道知足啊,有了又快又稳的网络之后,总还是想着再玩点花样来。虽然我已经将主要的服务都用 Docker 方式部署到了服务器上,但软路由上还是上了几个轻量级的服务,可以再稍稍提升一下使用体验。

    • Netdata:满足一下技术宅男的恶趣味,感觉看看图标网速就起飞了。
    • DDNS:动态DNS,可以将家庭网络的 IP 地址和域名进行绑定,配合端口转发,方便从公网访问内网设备。
    • 微信推送:通过微信通知,定时或者设定条件发送网络状态信息。
    • 迅雷快鸟:测速看了一下的确有所提升,算起来比直接升级要更划算一些。
    • UPnP:允许局域网内客户端自动设置路由器上的端口转发。
    • KoolProxy:哈哈哈,打自己的脸啪啪响,主要用全局 http 过滤聊胜于无吧。
  • M
    MixOrange
    图片出不来 iOS fly ~
  • c
    chykey
    mark。
  • d
    deviny
    先订在看
  • u
    ultrang
    回头看下
    iOS fly ~
  • F
    Fanboy
    不会被删么? 关键字一大堆啊
  • r
    roc.wang
    能行吗 科学呢天
  • g
    gwgb
    能出去不
  • c
    chykey
    张大妈里有图
  • f
    fqxufo
    有docker或者一键脚本吗?
  • f
    fyi151
    smartdns不是不好用吗
  • s
    slimx
    openclash好用,就是配置麻烦一点
  • b
    bpdq
    没有软路由 iOS fly ~
  • p
    pdafish
    前排留名学习 iOS fly ~
  • x
    xiaokai
    回复10#chykey


    等会来编辑一下,调调格式,两边的编辑器真是一样难用啊……
  • g
    gcyme
    太复杂,折腾不动了。
  • r
    rockdo
    马克菠萝蜜
  • h
    heq
    感谢楼主发如此详贴造福大众,无量功德
  • 时间潜艇
    先收藏。
  • h
    heron96
    马克技术贴。
  • x
    xuwei2
    买个刷好Openwrt的N1,这些软件都有。
  • s
    shi2513
    学习一下,昨晚还在折腾smartdns
  • l
    lin16303
    Netflix的软文吧,到处都有推荐nf,还不如捐个pt vip一劳永逸
  • x
    xin.h
    有x86固件放一个,晚上找时间搞上
  • 见风
    马克西姆 iOS fly ~
  • x
    xin.h
    有x86固件放一个,晚上找时间搞上
  • D
    Didoo
    马克备用
  • a
    alsa
    留名。。。
  • x
    xiaokai
    回复30#jozx


    实践出真知,要不试试?
  • d
    davidchiu
    技术贴,赞赞赞
  • j
    justincnn
    那么问题来了,软路由的话,有什么便宜大碗可以推荐呢,
  • y
    yyysuo
    用smartdns,dns请求一样可以走代理 iOS fly ~
  • 数不清
    还有一点是PW开启“多进程并发”,特别是多核处理器,对Trojan有加持!

    我四核开了8进程,之前用8核章鱼开了16进程。
  • n
    networm_cn
    学习一下
  • C
    CJJT
    技术型贴子
  • 尔康
    马克进收藏夹
  • x
    xuehuaye
    lean也在issue中也说过类似,smartdns没用。他的固件中集成只是为了恶心一堆不懂装懂的up主
  • 石秀
    回复1#xiaokai


    请问楼主用的什么软路由?一般家用N1可以满足吗?
  • B
    BuleGood
    这么折腾DNS,感觉意义不大呀
    小尾巴~
  • 莲尖
    强烈关注 iOS fly ~
  • x
    xiaokai
    我擦,能吃Netflix的软饭是我的人生梦想啊!谢君吉言,一定好好努力
  • x
    xiaokai
    实践出真知,我觉得效果挺好的
  • x
    xiaokai
    没看到设置项啊?是另外一个工具可以用吧
  • 谁家丢的西瓜皮
    标记加收藏 iOS fly ~
  • o
    onetozi
    有没有能方便套入设置的?看着要弄一轮就觉得累啊
  • 谁家丢的西瓜皮
    现在用的啥 iOS fly ~