通知 爱刷机 路由器教程 →→《省钱助手

smartdns+mosdns配置分享访问国内网站有卡顿

2024-09-24
0评论
/
阅读
爱搜啊

smartdns+mosdns配置分享访问国内网站有卡顿

一直以来我都是SmartDNS的忠实拥趸者,单用其很长一段时间,之前也发过自用配置的贴发个自用的smartdns配置https://ioozu.com/post-3348.html

在使用过程中也逐渐发现了一些问题,最明显的两个:

1、国内外分流缺少更加细致的判断,除了纳入文件清单的,其他的只能国内歪果任选其一;

2、有些网站初始访问会有停顿感,特别是国内网站更为明显。


针对第一个问题,很多人应该都选择了有更多条件判断的mosdns来搭配,我也是加入了mosdns+smartdns的队伍中。


第二个问题,其实原因很好猜,主要还是smartdns测速的问题。


举个例子,国内网站的DNS延迟很多都在40ms以内,甚至10几ms的都很多,比如说我打开企鹅的网站,DNS延迟就10几ms,经过smartdns测速花了5ms,最终测速结果可能比没测速就提升了1ms,很明显在延迟低的情况下,smartdns反而起到了负作用,我估计这也是很多人说没用的原因,毕竟我们大多数时候访问的都是国内网站。


这个问题我寻找了许久,一直没有好的解决方案,要放弃smartdns却有不甘,因为smartdns在我的使用过程中是有实际效果的,特别是一些小众网站,比如topazlabs的网站,不用smartdns打开时一直加载转圈,用了基本达到国内网站平均的打开速度。


有人会说那就国内的关了测速呗,这。。。smartdns还有灵魂吗?而且,不知道大伙信不信,我用着smartdns玩王者的延迟从原来的四五十降到了十几二十(可能是玄学)。


啰嗦了些题外话,进入正题了,第二个问题后来的解决方案是在研究mosdns配置的时候突发奇想尝试了,实际使用后效果甚佳,这里就和大家分享交流一下。

解决思路:

主要是利用了smartdns的设计特点(开启缓存功能后,无论使用哪种方式,smartdns都会将最佳结果保存到缓存中)和mosdns的主次流水线设计。


基本原理就是mosdns主流水线上游为smartdns,次流水线上游为smartdns的上游,设定一个超时时间,发起请求后,规定时间内没有收到smartdns的结果,那么先采用smartdns上游的结果,并赋予一个几秒的ttl值,等待超时后二次查询时smartdns可以从缓存直接给出最佳结果。


举个例子:


smartdns地址:192.168.1.11

smartdns上游:119.29.29.29


mosdns的配置可以这样写:


1、plugins定义三个插件

 # 转发至smartdns的插件
  - tag: forward_smartdns
  type: fast_forward
  args:
    upstream:
       - addr: "192.168.1.11"

  # 转发至smartdns上游的插件
  - tag: forward_sy
  type: fast_forward
  args:
    upstream:
      - addr: "119.29.29.29"

  # 调整TTL为4秒的插件
  - tag: ttl_4s
  type: ttl
  args:
    maximum_ttl: 4

2、主要的运行逻辑main_sequence部分引入主次流水线

 # 已知的国内域名或CDN域名
 - if: query_is_cnsite
  exec:
    - primary:
    # 主流水线转发给smartdns
        - forward_smartdns
     secondary:
    # 次流水线转发给smartdns上游
       - forward_sy
      # 修改上游返回结果ttl为4秒
       - ttl_4s
    # 超时设置为25毫秒
     fast_fallback: 25
    # 开启同步查询方便超时后次流水线更快给出结果
     always_standby: true

这样配置后,就算第一次smartdns测速不能及时返回结果,也可以优先使用未测速结果,等待几秒后二次查询便可以返回最佳结果。

注意:

1、smartdns必须开启缓存,持久性缓存不建议开,管理功能太简陋,如果网络出错等原因缓存到错误结果你会很崩溃。

2、以上mosdns配置只是实现部分,具体完整配置请结合你自己使用的进行调整融合。(还有是mosdns v4的配置,v5的太割裂没研究请自行实现)

3、超时时间请结合自家网络使用实践调整,25毫秒只是我自己使用比较合适的值。

最后,效果我自己用起来丝滑流畅,但是可能因人因网络因设置而异,没效果的请弃疗,不用跟我说了,不清楚具体情况解决不了。

配置部分因帖子格式问题对齐有点错乱,请自行解决。


点击链接加入群聊三群:751529538

点击链接加入群聊二群:376877156

点击链接加入群聊【路由器交流群:622891808已满】

本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


饿了么红包

饿了么红包

标签: smartdns mosdns
于2024-09-24发布