fw876 / helloworld

GNU General Public License v3.0
3.64k stars 2.64k forks source link

是否有支持mosdns的计划 #1278

Closed chobitsos closed 10 months ago

chobitsos commented 12 months ago

mosdns的解决方案 1.国内已经域名 List 用国内 DNS 解析,直连访问 2.国外已经域名 List 用国外 DNS 解析,添加到 ipset ,走代理访问 3.对于未知域名的处理是 mosdns 的核心,未知域名用国内国外 DNS 同时查询,如果国内 DNS 返回国内 IP ,则直接返回给客户端,如果返回非国内 IP ,则用国外 DNS 返回的结果,同时添加到 ipset 中,走代理访问,这样就实现了比如美国大使馆、美国大学这些未封但访问慢的网站走代理

最新版的mosdns V5且可以防止dns泄露 看了一下挺多大佬推荐的,有计划加入支持吗? 项目在此 https://github.com/IrineSistiana/mosdns https://github.com/sbwml/luci-app-mosdns

142857X1 commented 12 months ago

看上去非常不错的样子,比smartdns 简单又省事,

hcym commented 12 months ago

自己编译,也方便,一直都在用,不然ipv6不能开 。不看ipv6的话也不需要

142857X1 commented 12 months ago

自己编译,也方便,一直都在用,不然ipv6不能开 。不看ipv6的话也不需要

怎么整?有详细的操作么?

chobitsos commented 12 months ago

自己编译,也方便,一直都在用,不然ipv6不能开 。不看ipv6的话也不需要

还是集成到SSRP里面使用更加方便一些,而且mosdns更新也不是很频繁,以后只要维护List表就行了

XiaoliChan commented 12 months ago

自己照着葫芦画瓢,把mosdns添加进入(主要是需要在切换节点的时候,能够重启mosdns),挺容易的 image

我不确定我的配置文件是否存在问题,如果配置文件没问题,我想我可以弄个PR

配置文件功能:

coolsnowwolf commented 11 months ago

可以,期待楼上PR

chobitsos commented 11 months ago

自己照着葫芦画瓢,把mosdns添加进入(主要是需要在切换节点的时候,能够重启mosdns),挺容易的 image

我不确定我的配置文件是否存在问题,如果配置文件没问题,我想我可以弄个PR

配置文件功能:

  • 禁止IPv6
  • TCP转发DNS
log:
    level: info
plugins:
    - tag: forward_google
      type: forward
      args:
        upstreams:
            - addr: tcp://8.8.8.8
            - addr: tcp://8.8.4.4

    - tag: main_sequence
      type: sequence
      args:
        - exec: prefer_ipv4
        - exec: $forward_google
        - matches: 
          - qtype 28 65
          exec: reject 0

    - tag: udp_server
      type: udp_server
      args:
        entry: main_sequence
        listen: 0.0.0.0:5335

    - tag: tcp_server
      type: tcp_server
      args:
        entry: main_sequence
        listen: 0.0.0.0:5335

@XiaoliChan 大佬赶紧PR一下代码啊,大雕都发话了

zlwu commented 11 months ago

mosdns太臃肿了,不但二进制体积大,也是内存占用大户...

chobitsos commented 11 months ago

mosdns太臃肿了,不但二进制体积大,也是内存占用大户...

这还大啊,我觉得mosdns非常合适匹配ssrp,因为ssrp的使用场景就是没有那么多规则文件,一次配置终身养老,mosdns简直天选之配

XiaoliChan commented 11 months ago

这还大啊,我觉得mosdns非常合适匹配ssrp,因为ssrp的使用场景就是没有那么多规则文件,一次配置终身养老,mosdns简直天选之配

对硬件配置相对低的设备,确实重,毕竟go写的东西,远远不及c的效率,但是mosdns确实方便,在配置相对高的设备无感

TBH,还得是看个人选择吧

XiaoliChan commented 11 months ago

目前的话,已经把mosdns的功能加进来了,现在还缺少类似chinadns-ng分流的活,后续应该只需要调节config文件,然后luci加上类似chinadns的DNS选项即可

如果大家有好的配置文件,可以在这里发出来讨论一下

@zxlhhyccc Ping

Reference:

fonlan commented 11 months ago

在shell脚本里用sed处理yaml配置文件总不是太优雅,是否可以考虑引入依赖yq来对yaml做处理?

XiaoliChan commented 11 months ago

在shell脚本里用sed处理yaml配置文件总不是太优雅,是否可以考虑引入依赖yq来对yaml做处理?

Good idea!

fonlan commented 11 months ago

在shell脚本里用sed处理yaml配置文件总不是太优雅,是否可以考虑引入依赖yq来对yaml做处理?

Good idea!

支持使用jq,ssrp默认依赖的。mosdns已经有了luci,似乎可以考虑整合一下。

jq是处理json的,不能处理yaml吧?

XiaoliChan commented 11 months ago

image

这个是我想到的一个分流策略

TBH,如果你们有更好的配置文件,希望可以贴出来分享一下

chobitsos commented 11 months ago

image

这个是我想到的一个分流策略

TBH,如果你们有更好的配置文件,希望可以贴出来分享一下

大佬,可以分享一下你的分流策略吗,我觉得你这个就挺完美的

XiaoliChan commented 11 months ago

大佬,可以分享一下你的分流策略吗,我觉得你这个就挺完美的

没呢,随便构思的,其实就是把chinadns-ng的活干了,不同的现有ssrp里面的chinadns没开添加ipset参数

XiaoliChan commented 11 months ago

目前进度:

Screenshot: image

用到的分流数据 image

minlang112 commented 11 months ago

目前在用Mosdns在替代ssrp内置的解析方案,感觉效果挺好。

XiaoliChan commented 11 months ago

目前在用Mosdns在替代ssrp内置的解析方案,感觉效果挺好。

能分享一下配置文件吗

chobitsos commented 11 months ago

目前进度:

  • luci-app-mosdns的配置文件CV进来,然后调整了一下逻辑之类的,目前已经实现精准分流
  • DNS泄露已经解决
  • 路由模式下,还不知道是否需要每次获取到外国IP都添加进入blacklist ipset组,因为我们已经有china的ipset(在china组之外的应该都走路由吧) 这点我有点困惑,还请@coolsnowwolf 解答一下

Screenshot: image

用到的分流数据 image

卧槽,你怎么配置的,求配置文件

ramondelee commented 11 months ago

目前进度:

  • luci-app-mosdns的配置文件CV进来,然后调整了一下逻辑之类的,目前已经实现精准分流
  • DNS泄露已经解决
  • 路由模式下,还不知道是否需要每次获取到外国IP都添加进入blacklist ipset组,因为我们已经有china的ipset(在china组之外的应该都走路由吧) 这点我有点困惑,还请@coolsnowwolf 解答一下

Screenshot: image

用到的分流数据 image

大佬可不可以把修改版共享一下

XiaoliChan commented 11 months ago

大佬可不可以把修改版共享一下

https://github.com/XiaoliChan/helloworld/tree/mosdns-improv

XiaoliChan commented 11 months ago

image

chobitsos commented 11 months ago

image

不知道规则文件里面那个有问题, google play商店无法下载app也无法更新app

XiaoliChan commented 11 months ago

不知道规则文件里面那个有问题, google play商店无法下载app也无法更新app

好,还有没有其他问题

chobitsos commented 11 months ago

不知道规则文件里面那个有问题, google play商店无法下载app也无法更新app

好,还有没有其他问题

暂时没有,就是有个域名好奇怪 ip.cn 这个域名判定还是国外

XiaoliChan commented 11 months ago

暂时没有,就是有个域名好奇怪 ip.cn 这个域名判定还是国外

你把dns泄露那个功能关了就可以了,原理就是如果都不在大陆和非大陆域名,转发到fallback,开启防泄露后,全部查询转发到国外,这样就能防止dns泄露了

XiaoliChan commented 11 months ago

@chobitsos 解决了,更新一下,然后重新更新一下数据,geosite里面有脏数据,cn里面还是有google-cn,按照他们readme的原话,google-cn应该是添加到了非大陆的,可是还存在,然后重新写了一下脚本去除脏数据就好了

chobitsos commented 11 months ago

@chobitsos 解决了,更新一下,然后重新更新一下数据,geosite里面有脏数据,和cn里面还是有google-cn,按照他们readme的原话,google-cn应该是添加到了非大陆的,可是还存在,然后重新写了一下脚本去除脏数据就好了

可,那我直接clone你fork的源,切换一下分支pull一下了更新可以吧,然后重新编译一次看看

XiaoliChan commented 10 months ago

@chobitsos 这个issue可以关闭了