shadowsocks / shadowsocks-nodejs

https://github.com/shadowsocks/shadowsocks
Other
1.25k stars 724 forks source link

当一个域名同时包含A记录和AAAA记录的时候解析地址的优先级问题 #22

Closed ihipop closed 11 years ago

ihipop commented 11 years ago

比如 The KAME project 的官方网站 www.kame.net 网站本身是双栈的 域名同时包含A记录和AAAA记录 我观察到nodejs版本的shadosocks的解析优先级是以A记录优先的 也就是说 即使我有IPv6 通过shadowsocks-nodejs 也是默认访问的他的V4站点 这点和Linux里面的一些软件的行为 比如wget,不一样 wget什么的优先访问的是V6的地址。另一个shadowsocks的C实现:shadowsocks-libuv 也是如此,默认V6优先。 虽然很难说这两种模式的优劣,但是我也不想在HOST里面强制绑定一些网站使用V6(太多了 没法举穷) 能不能实现此软件的一些选项 使得解析的时候 DNS的解析行为可以被无痛的按需调整为IPv6优先/IPv4优先?

clowwindy commented 11 years ago

给 node.js 提了一个 issue

https://github.com/joyent/node/issues/4566

clowwindy commented 11 years ago

他们认为默认返回 IPv6 会带来很多问题。我这边也不做这个处理了。

ihipop commented 11 years ago

他只是说IRC上很多人觉得没有V6的情况下返回V6会带来一次不必要的连接尝试 认为在实际上直接返回V4更加直接。其实还是众口难调的问题。我建议他加上一个RFC 3484 的开关 需要的人打开 不需要的人关闭 这样大家皆大欢喜不是更好?

clowwindy commented 11 years ago

看他们怎么想吧。我觉得关心这个问题的人很少。你可以先改一下 node 源码把排序去掉,就能用 /etc/gai.conf 控制用什么 IP 了。

ihipop commented 11 years ago

好吧。其实主要是我走代理上的时候他老给我解析到V4地址 然后有些高校网站V4地址只对内 V6才对外。所以才会有这个需求。