原因

默认smartDNS接管软路由的解析,作为路由器dnsmasq的上游服务器的时候,貌似对国外域名的解析是走的国内路线

就算设置了第二服务器还有passwall指定了dns为国外dns,但是软路由下的设备,还是用的smartdns默认的国内dns去查,个人猜测smartdns并没有对域名做一个判断就直接使用国内dns(默认)去查。所以,需要对smartdns配置里手动增加分流的域名

准备

  • vscode软件 x 1
  • gf_list
  • 普通浏览器 x 1

开始

  1. 随便找一个gf_list,用base64解码,得到域名列表
  2. 打开vscode,使用正则对gf_list进行一个处理
    1. 首先,粘贴处理过的gf_list
    2. 使用 Ctrl + H 打开 "替换" 功能,开启正则表达式功能
      并在查找输入框使用如下正则表达式:
    (^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$)
    

    理论上能匹配到gf_list所有的域名
    替换框使用如下表达式:

    domain-rules /$1/ -n (你的smartdns国外分组名)
    

    请将如上括号内换为你的smartdns国外解析组的分组名

    比如我的是world,就为

    domain-rules /$1/ -n world
    

    填好后点击替换按钮,如下就是处理好的效果

  3. 把处理好的内容复制粘贴到smartdns自定义配置里

  4. 开始享受