immortalwrt / homeproxy

The modern ImmortalWrt proxy platform for ARM64/AMD64 (powered by sing-box)
GNU General Public License v2.0
463 stars 139 forks source link

关于自定义路由模式DNS解析的疑问 #54

Closed ximiTech closed 9 months ago

ximiTech commented 9 months ago

参考了资料如下: https://gist.github.com/douglarek/b9e8a6e64abb1e7dce222dd047185606

发现有以下问题: 使用singbox版本1.7.5,若在大陆白名单模式时,可以手动指定国内组dns的端口号,连接检查中的百度检测通过; 但是相同的singbox配置,在自定义路由模式时,国内组dns无法指定端口号了,连接检查中的百度检测失败,且singbox log有关于dns的报错,如果国内组dns直接设为运营商dns,发现打开国内网站的速度相比白名单模式时明显减慢。 上述两种情况的国外组都可以手动指定端口号,连接检查无问题。

大佬看看自定义路由模式有没有什么问题呢?

1715173329 commented 9 months ago

我怎么不知道 DNS 可以指定非标端口,你似乎在依赖一些从未支持过的特性。

ximiTech commented 9 months ago

可能是singbox的隐藏功能吧,手动指定国内组端口号,在白名单模式下确实可用,但是在自定义路由模式下失效。

muink commented 9 months ago

singbox不支持非标准端口号,非自定义路由模式下,查询非标准端口上游是由chinadns-ng实现的

ximiTech commented 9 months ago

singbox不支持非标准端口号,非自定义路由模式下,查询非标准端口上游是由chinadns-ng实现的

哥们儿,你有没有手搓配置文件试过,你确定?

muink commented 9 months ago

hp里测试了,是可行的。虽然singbox文档里没写。按照host: port格式写dns server就对了。

ximiTech commented 9 months ago

找到了自定义路由模式测试百度不通的原因,如下 修改 /etc/homeproxy/scripts/firewall_post.ut Line 488 {% elif (routing_mode === 'bypass_mainland_china'): %} 改为 {% elif (routing_mode === 'bypass_mainland_china' || bypass_cn_traffic === '1'): %}