fw876 / helloworld

GNU General Public License v3.0
3.7k stars 2.66k forks source link

luci-app-ssr-plus: add mosdns support #1298

Closed XiaoliChan closed 1 year ago

XiaoliChan commented 1 year ago

Features:

Reference:

XiaoliChan commented 1 year ago

Screenshot:

XiaoliChan commented 1 year ago

@coolsnowwolf Confirm this PR can do review ^^

zxlhhyccc commented 1 year ago

@coolsnowwolf Confirm this PR can do review ^^

为何mosdns还是需要设置上游dns解析?建议直接使用mosdns通过yaml的配置文件来解析,通过yaml文件处理,可以更好的进行分流,此时就不需要在luci界面设置上游dns了!如果设置上游dns解析,与pdnsd之类的解析有何区别?这样子解析把mosdns的功能阉割了! 建议参考:https://github.com/stupidloud/helloworld/tree/tmp 此仓库就是直接使用yaml配置处理,效率高了很多!

XiaoliChan commented 1 year ago

为何mosdns还是需要设置上游dns解析?建议直接使用mosdns通过yaml的配置文件来解析,通过yaml文件处理,可以更好的进行分流,此时就不需要在luci界面设置上游dns了!如果设置上游dns解析,与pdnsd之类的解析有何区别?这样子解析把mosdns的功能阉割了! 建议参考:https://github.com/stupidloud/helloworld/tree/tmp 此仓库就是直接使用yaml配置处理,效率高了很多!

没能懂你的意思,关于yaml这一块之类的东西

此外,这个确实是做pdnsd的功能,但是pdnsd ipv6这块没有mosdns处理得好(对我而言)

另外,HelloWorld本身就不需要这么复杂的分流之类的,对于用户而言,我只需要出墙的站点走tcp dns查询,并且决定是否屏蔽出墙站点的ipv6,剩下的分流只需要交给HelloWorld自带的路由决定即可,高级用户而言,真需要复杂的请求处理,你可以填入第三方dns地址

zxlhhyccc commented 1 year ago

另外,HelloWorld本身就不需要这么复杂的分流之类的,对于用户而言,我只需要出墙的站点走tcp dns查询,并且决定是否屏蔽出墙站点的ipv6,剩下的分流只需要交给HelloWorld自带的路由决定即可,高级用户而言,真需要复杂的请求处理,你可以填入第三方dns地址

如果确实使用pdnsd功能,建议上游dns可以设置多个并直接读取到yaml里,以便通过yaml查询最快dns来解析。。。

XiaoliChan commented 1 year ago

如果确实使用pdnsd功能,建议上游dns可以设置多个并直接读取到yaml里,以便通过yaml查询最快dns来解析。。。

例子来一个,我这个只设置了一个dns,你的意思是mosdns会检测最快的dns?

我觉得只需要加上个缓存功能即可,而且每次切换节点的时候,都会重启mosdns,意味着不用担心有旧的缓存

XiaoliChan commented 1 year ago

更新日志:

Reference:

zxlhhyccc commented 1 year ago

如果确实使用pdnsd功能,建议上游dns可以设置多个并直接读取到yaml里,以便通过yaml查询最快dns来解析。。。

例子来一个,我这个只设置了一个dns,你的意思是mosdns会检测最快的dns?

我觉得只需要加上个缓存功能即可,而且每次切换节点的时候,都会重启mosdns,意味着不用担心有旧的缓存

比如上游dns设置如下: image 然后将其读取到yaml里的upstreams:中,可以参考luci-app-mosdns中的模式

XiaoliChan commented 1 year ago

比如上游dns设置如下: image 然后将其读取到yaml里的upstreams:中,可以参考luci-app-mosdns中的模式

最新的commit已经有了,但是请记住,mosdns用在这里只做pdnsd的活,不做分流之类的,分流之类的应该让ssrp完成就好

XiaoliChan commented 1 year ago

@XiaoliChan 功能都正常了吗? 可以 merge 了吗?

我x86实测,没问题

zxlhhyccc commented 1 year ago

最新的commit已经有了,但是请记住,mosdns用在这里只做pdnsd的活,不做分流之类的,分流之类的应该让ssrp完成就好

使用mosdns做分流不是更好吗?

XiaoliChan commented 1 year ago

使用mosdns做分流不是更好吗?

后续我再看看吧,现在其实已经很好使了,你说的分流应该是把chinadns的活也干了,后续应该只需要调整一下yaml就好了

zxlhhyccc commented 1 year ago

使用mosdns做分流不是更好吗?

后续我再看看吧,现在其实已经很好使了,你说的分流应该是把chinadns的活也干了,后续应该只需要调整一下yaml就好了

建议直接使用yaml来分流,可使用多个上游dns直接读取到yaml中处理解析。。。。

XiaoliChan commented 1 year ago

建议直接使用yaml来分流,可使用多个上游dns直接读取到yaml中处理解析。。。。

没能懂你意思,现在已经有多个DNS了啊

你说的分流功能我还在看,后续应该会有,因为我要看怎么搭配ipset,目前ssrp已经有分流啊

或者你可以等这PR结束后你再fork一份弄个PR

XiaoliChan commented 1 year ago

@zxlhhyccc 做了一下功课,大概懂你的意思了,无非就是自动添加ipset条目,这个功能我还在考虑是不是要加上,因为其实它也是依赖第三方数据库实现的,这样会与ssrp本身做重复活

XiaoliChan commented 1 year ago

@Beginner-Go 实测了几天,没问题,原有的功能都还在,没有动以前的功能,像 @zxlhhyccc 所说的,只是加多一个自动添加ipset的feature,这个还在考虑中

zxlhhyccc commented 1 year ago

@zxlhhyccc 做了一下功课,大概懂你的意思了,无非就是自动添加ipset条目,这个功能我还在考虑是不是要加上,因为其实它也是依赖第三方数据库实现的,这样会与ssrp本身做重复活

配置上游dns后到yaml添加后,yaml可以配置geoip数据库,并使用域名或IP数据库分流处理即可,不再需要ssrp去做分流。。。

XiaoliChan commented 1 year ago

配置上游dns后到yaml添加后,yaml可以配置geoip数据库,并使用域名或IP数据库分流处理即可,不再需要ssrp去做分流。。。

不是的,你只是追加你外国的IP到blacklist的ipset里面而已,实际上你还是要靠ssrp...

其实就是chinadns的活而已,并且“接管”DNSMASQ shadowsocksr#L204

实现这个功能的话,后续也许会考虑吧,只需要CV这个功能,匹配到大陆的IP就往china 的ipset里面加IP就好了,不过,用chinadns-ng 的话,其实并没有开启 "-A, -a" 选项,所以你说的功能还有待实验

XiaoliChan commented 1 year ago

突然找到一处逻辑错误,等我修复了先XD

zxlhhyccc commented 1 year ago

在线等 好了说一声

你开始抄作业了?

XiaoliChan commented 1 year ago

@Beginner-Go OK了,忘记处理mosdns服务器那,把DNS地址加入到ipset列表

image

XiaoliChan commented 1 year ago

@XiaoliChan 可以 merge 了吗?

可以了

@zxlhhyccc 说的功能后续再看看怎么加进来吧

zxlhhyccc commented 1 year ago

@XiaoliChan 可以 merge 了吗?

可以了

@zxlhhyccc 说的功能后续再看看怎么加进来吧

好的,如果加上由masdns进行分流,那就非常完美!

另外,还是同样问题,ssrp无论是mosdns还是pdnsd均出现dns泄漏,且非常严重。。。。,所以mosdns还是建议使用yaml分流。 image

zxlhhyccc commented 1 year ago

下面两行在状态栏无:DNS 防污染服务,请问是有意为之吗?!建议恢复! https://github.com/fw876/helloworld/blob/master/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua#L115 https://github.com/fw876/helloworld/blob/master/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua#L172 image

XiaoliChan commented 1 year ago

@zxlhhyccc 请移步到issues