ChinaDNS icon indicating copy to clipboard operation
ChinaDNS copied to clipboard

2.0.0版本现在可用了吗?

Open ghost opened this issue 8 years ago • 25 comments

-m -l 参数怎么去掉了? -e 参数如何使用 "本地公网IP,远程服务器IP" ?

ghost avatar Mar 26 '17 08:03 ghost

我试了下可以用 /usr/bin/chinadns -p 5354 -s 127.0.0.1:5300 -c /etc/chinadns_chnroute.txt -e 101.x.x.x,168.x.x.x

ghost avatar Mar 26 '17 09:03 ghost

还没发布,目前还有一些问题。

-s 参数只能使用支持 ECS 的国外 DNS server, 并且不能使用 dns-forwarder 或者 ss-tunnel 之类的工具中转,所以基本只能用 8.8.8.8

aa65535 avatar Mar 26 '17 10:03 aa65535

@aa65535 好吧,上面的127.0.0.1:5300的确是dns-forwarder提供的,我还以为能用了,应该是用了之后ecs特性就没了,dns-forwarder还不支持ecs打包tcp吧。

ghost avatar Mar 26 '17 10:03 ghost

支持的,可能是 Google DNS 不支持 TCP 协议的 ECS。 测试 8.8.4.4 也不能正常工作。

aa65535 avatar Mar 26 '17 10:03 aa65535

@aa65535 那安卓那边也不能正常工作吗,我看他们好像也用了ecs并且还是tcp

https://github.com/shadowsocks/shadowsocks-android/blob/master/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala#L340

https://github.com/shadowsocks/shadowsocks-android/blob/master/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala#L358

ghost avatar Mar 26 '17 10:03 ghost

@aa65535

qq 20170326184702

Google DNS 应该是支持 TCP 协议的 ECS 吧,要不然不可能这么精确的,不加client解析到美国去了,加了就在国内了。

ghost avatar Mar 26 '17 10:03 ghost

@suikatomoki 可能是数据包结构的问题,我目前没有去做调试,只是猜测。

aa65535 avatar Mar 26 '17 10:03 aa65535

@suikatomoki 因为 dig 默认带有一个空的 Additional record,目前 chinadns 是直接在后面追加 Additional record ,可能是这个原因导致 TCP 下 ECS 的支持出了问题。

使用 curl nslookup ping 发起的 DNS 请求倒是没有问题。

如果不是使用 dig 测试的话是可以搭配 dns-forwarder 使用的。

aa65535 avatar Mar 27 '17 04:03 aa65535

@aa65535 从2.0.0版本开始,DNS“分流”全靠ECS了吗?以前的思路不再采用了吗?旧版本还会维护吗?

ghost avatar Mar 27 '17 14:03 ghost

@suikatomoki 是的,以前的思路不再采用了。

aa65535 avatar Mar 27 '17 14:03 aa65535

@aa65535 再问个问题, -y 设置 delay 是出于什么考虑

ghost avatar Mar 27 '17 15:03 ghost

@suikatomoki 目前逻辑很简单,就这里.

aa65535 avatar Mar 28 '17 00:03 aa65535

@aa65535 我之前看到 @cokebar 解释说“ delay 等待时间: 默认值:0.3 为防止GFW的DNS污染抢答,而设置一个等待时间,请根据自己填写的国外DNS延迟值来填写,留下一定的裕度。GoogleDNS在国内延迟一般在100-200ms,留0.3比较合适。过大的值会造成DNS解析较大的延迟时间,过小的值可能导致无法接收正确的解析结果。” 所以不是很明白目前 -y 参数的必要性。

ghost avatar Mar 28 '17 14:03 ghost

@suikatomoki 目前存在以下四种情况

  1. 国内 Client Subnet 返回国内 IP 地址, pass
  2. 国外 Client Subnet 返回国内 IP 地址, delay
  3. 国内 Client Subnet 返回国外 IP 地址, filter
  4. 国外 Client Subnet 返回国外 IP 地址, delay

13, 24 不会同时出现, 对于 fake answer 会在上面判断之前被检测出来并 drop.

上面的 delay 是针对国外 Client Subnet 的应答, 因为目前的策略是国内 Client Subnet 优先.

而 delay time 是可以小于 0.3s 的,因为现在的应答都是来自同一个服务器.

aa65535 avatar Mar 29 '17 03:03 aa65535

screenshot_20170329-042829

@aa65535 dig针对同一个域名(tieba.baidu.com)测试了十几次 发现有那么一两次返回的是国外 Client Subnet 应答的 得到了香港ip 其他得到了国内ip。

ghost avatar Mar 29 '17 03:03 ghost

@suikatomoki 受限于上游 DNS,另外如果两个应答不是同时返回或者有一个丢包了,也会有这个情况。

aa65535 avatar Mar 29 '17 03:03 aa65535

@aa65535 嗯 2017-03-29_115155

谷歌DNS针对国内 Client Subnet 有时候返回国内的 有时候返回国外的 蛋疼

ghost avatar Mar 29 '17 03:03 ghost

@suikatomoki 的确会这样,在 https://dns.google.com/query?name=tieba.baidu.com&type=A&dnssec=true&ecs=111.193.0.0 测试也是会偶尔返回香港 IP 的结果。

另外 -e 参数建议使用模糊化的 IP, 只要能大致定位对就行。

aa65535 avatar Mar 29 '17 03:03 aa65535

想要这样的 主从dns(同时支持设置多上游,ecs client ip) 主DNS(国内):119.29.29.29,119.28.28.28 ecs_ip:自己的公网ip/24 从DNS(国外):8.8.8.8,8.8.4.4,vps搭建的dns ecs_ip:自己的ss的ip/24 hosts列表,匹配直接返回ip 黑白名单: 白名单=dnsmasq_china_list可用+自定义 黑名单=gfwlist可用+自定义 白名单命中直接主dns解析,返回ip 黑名单命中直接从dns解析,返回ip 剩下的: 先向主dns发送请求解析,返回的ip如果匹配chnroute.txt直接返回ip,不匹配直接使用从dns解析,并返回ip(剩下的可能有更好的逻辑)

cjjdaq avatar Jun 09 '17 05:06 cjjdaq

@aa65535 我之前好像看到google说,8.8.8.8并不一定保证接收ecs client ip,所以有时候并不准确,要准确获取需要google的https Dns proxy

cjjdaq avatar Jun 09 '17 05:06 cjjdaq

OpenDNS是不是号称支持ECS但是实际并不支持?dig了一下返回里并没有相关的数据,和谷歌的返回有明显区别……

techotaku avatar Jul 23 '17 13:07 techotaku

目前没法用。 Google DNS的ecs支持也不好。 TCP模式下面不可用。

2017年7月23日 21:51,Ian Li [email protected]写道:

OpenDNS是不是号称支持ECS但是实际并不支持?dig了一下返回里并没有相关的数据,和谷歌的返回有明显区别……

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/aa65535/ChinaDNS/issues/1#issuecomment-317254385, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFKrOp65WKXgxBmDM_zTtpCiopkigWL5ks5sQ0_FgaJpZM4MpXQ-.

aa65535 avatar Jul 23 '17 14:07 aa65535

感觉有条件的话还是自己在远端部署 DNS 到 HTTPS-DNS 的代理靠谱……

techotaku avatar Jul 24 '17 16:07 techotaku

XD 确实已经过去了快半年 Google DNS OpenDNS 还有新出来的IBM Quad9 DNS都无法做到很好的支持 不过已经算是还好了 我自己将这个版本的ChinaDNS部署到了Openwrt/LEDE 然后擅自修改了luci chinadns XD 应该没什么问题(吧). 拉了三个不同地区的朋友一起体验了三个月并且都是使用的8.8.8.8. 大概体验就是: 1.虽然现在TCP模式还是无法支持ecs,但是防火墙无法伪造ecs数据包,所以可以避免抢答和DNS污染. 2.中国移动对UDP 53端口的强制干扰也有所缓解 3.解析方面确实像www.qq.com,tieba.baidu.com这类的域名很容易被解析到香港的服务器,不过从实际体验上来讲不影响使用 4.视频网站比如bilibili,优酷等能够保证准确的解析,至少在我的体验中还未出现解析到国外服务器的情况

大致情况就是这样XD希望可以提供给开发者一定的参考

lrinQVQ avatar Dec 06 '17 19:12 lrinQVQ

冒昧的问一下😅,目前这个版本现在能使用了吗 (使用 8.8.8.8)?

pexcn avatar Mar 07 '19 17:03 pexcn