好吧,我也分享一个特殊的私人 DNS

2014-02-17 18:43:25 +08:00
 hedaode
iPhone/iPad将DNS设置成42.121.3.227即可用https模式访问twitter和facebook,支持app客户端。

另外该DNS实现了edns-client-subnet协议,加上国内大部分权威DNS服务器(如dnspod)也实现了该协议,所以完全不用担心解析出来的IP不是离你最近的节点而影响速度。

说下原理吧:之所以特殊,是因为该DNS对部分域名做了DNS拦截,将IP解析到一个特殊的代理服务器。该代理服务器监听了443端口,分析SSL握手包,取出客户端访问的主机名(如:facebook.com),然后和目标主机建立连接,进行数据转发,从而正常通行。

当然,如果该代理服务器在80端口做反向代理,那能代理的网站就多了,可惜国内大部分机房都有白名单,所以有些想法无法实现。
18408 次点击
所在节点    分享创造
27 条回复
pfitseng
2014-02-17 19:00:22 +08:00
就是所有的ssl 都会被转发了?
Chentao1006
2014-02-17 19:36:25 +08:00
先口头谢谢,用段时间试试
regent
2014-02-17 19:46:35 +08:00
测试看看
orzfly
2014-02-17 19:53:40 +08:00
这需要客户端启用 SNI 支持才行吧。
hedaode
2014-02-17 20:16:37 +08:00
@pfitseng 仅仅转发被污染域名的数据。
@orzfly 是的。就是根据SNI来转发的。以前抓包发现有这么个东西,但没深入研究,现在才知道专有名词叫SNI,感谢。
sarices
2014-02-17 21:32:48 +08:00
facebook也可以?facebook走spdy啊
hedaode
2014-02-17 22:18:00 +08:00
@sarices fb可以的。spdy也是在ssl之上。这个代理服务器是透明转发,不关心数据内容。
Coda
2014-02-18 08:26:05 +08:00
亲测可用, 用用看, 谢谢~
missdeer
2014-02-18 09:53:44 +08:00
我想问的是自己搭的DNS怎么实现edns-client-subnet协议支持
hedaode
2014-02-18 14:16:45 +08:00
@missdeer 要自己实现edns-client-subnet也不难。

如果你不想看相关文档,也不想大改代码,那么可以通过篡改DNS包(dnsPacket)的方式简单实现edns-client-subnet协议:

1.先篡改DNS Hedader,将Additional RRs改为1:
dnsPacket[10]=0x00;
dnsPacket[11]=0x01;

2.然后在dnsPacket后面追加下面的22字节Additional records数据(16进制表示):
000029020000000000000b00080007000118007f0000
注:主要关注最后3个字节,它取的是客户端IP地址的前3个字节。

3.将上面22字节中最后3个字节改成客户端IP的前3个字节,示例如下:
dnsPacket[size-3]=192;
dnsPacket[size-2]=168;
dnsPacket[size-1]=1;

另外关于如何拦截,可以写个简单的DNS代理程序即可实现。
zhen14
2014-02-19 17:18:44 +08:00
只能在wifi环境下用么?
cassiuschen
2014-02-20 11:29:49 +08:00
现在已经失效了?地址42.*的这个地址ping不通啊…
tabrisux
2014-02-21 10:37:34 +08:00
可以用,多谢分享
tabrisux
2014-02-21 10:46:29 +08:00
有个问题就是,图片刷不出来
v2ro88
2014-02-26 13:29:08 +08:00
测试可用,很快
iscuen
2014-03-03 23:20:00 +08:00
@tabrisux 和你一样的疑问,图片不能刷出来
streamgo
2014-05-07 10:15:39 +08:00
非常好用!我这里图片什么的倒是大体正常。
songrui2008
2014-11-16 19:07:25 +08:00
facebook挂了 貌似是ssl错误,建议lz将facebook改成dns解析,不走特殊代理,twitter正常
hedaode
2014-11-17 15:33:21 +08:00
@2008songrui 现在已取消了特殊代理,只提供无污染解析服务。
yuhaaitao
2015-01-04 07:51:46 +08:00
监听端口是多少?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/100613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX