Sing-box 是一款强大的网络代理工具,它支持多种代理协议和路由规则,可以用于构建复杂的网络代理服务。Sing-box 的一个特点是不使用系统的 getaddrinfo 函数,因此不受 gai.conf 文件的控制,即无法设置 IPv4 优先或 IPv6 优先。这导致在使用 Sing-box 进行网络请求时,无法通过 gai.conf 来指定 DNS 解析的优先级。一些用户在使用 Sing-box 时遇到了无法设置 IPv4 或 IPv6 优先级的问题,特别是在使用 fakeip 模式时,因为这种模式下翻墙客户端发给代理的数据包中只有域名,没有 IP 地址。为了解决这个问题,一些技术爱好者尝试了修改 Sing-box 的源代码,通过在代码中添加对 getaddrinfo 的调用,使得 Sing-box 可以使用系统的 DNS 解析功能。他们通过修改 Sing-box 的 dns/router.go 文件,添加了 net.LookupIP(domain) 调用,并重新编译了 Sing-box。测试结果显示,修改后的 Sing-box 可以正确地使用系统的 getaddrinfo 函数进行 DNS 解析,从而可以根据 gai.conf 文件设置 IPv4 或 IPv6 的解析优先级。这一修改为使用 Sing-box 的用户提供了更多的灵活性和控制能力,使得他们可以根据自己的需求来设置 DNS 解析的优先级。Sing-box 的这一改进对于需要精细控制网络代理行为的用户来说是一个重要的进步。

标签: none

评论已关闭