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

2014 年 2 月 17 日
 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端口做反向代理,那能代理的网站就多了,可惜国内大部分机房都有白名单,所以有些想法无法实现。
19516 次点击
所在节点    分享创造
27 条回复
pfitseng
2014 年 2 月 17 日
就是所有的ssl 都会被转发了?
Chentao1006
2014 年 2 月 17 日
先口头谢谢,用段时间试试
regent
2014 年 2 月 17 日
测试看看
orzfly
2014 年 2 月 17 日
这需要客户端启用 SNI 支持才行吧。
hedaode
2014 年 2 月 17 日
@pfitseng 仅仅转发被污染域名的数据。
@orzfly 是的。就是根据SNI来转发的。以前抓包发现有这么个东西,但没深入研究,现在才知道专有名词叫SNI,感谢。
sarices
2014 年 2 月 17 日
facebook也可以?facebook走spdy啊
hedaode
2014 年 2 月 17 日
@sarices fb可以的。spdy也是在ssl之上。这个代理服务器是透明转发,不关心数据内容。
Coda
2014 年 2 月 18 日
亲测可用, 用用看, 谢谢~
missdeer
2014 年 2 月 18 日
我想问的是自己搭的DNS怎么实现edns-client-subnet协议支持
hedaode
2014 年 2 月 18 日
@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 年 2 月 19 日
只能在wifi环境下用么?
cassiuschen
2014 年 2 月 20 日
现在已经失效了?地址42.*的这个地址ping不通啊…
tabrisux
2014 年 2 月 21 日
可以用,多谢分享
tabrisux
2014 年 2 月 21 日
有个问题就是,图片刷不出来
v2ro88
2014 年 2 月 26 日
测试可用,很快
iscuen
2014 年 3 月 3 日
@tabrisux 和你一样的疑问,图片不能刷出来
streamgo
2014 年 5 月 7 日
非常好用!我这里图片什么的倒是大体正常。
songrui2008
2014 年 11 月 16 日
facebook挂了 貌似是ssl错误,建议lz将facebook改成dns解析,不走特殊代理,twitter正常
hedaode
2014 年 11 月 17 日
@2008songrui 现在已取消了特殊代理,只提供无污染解析服务。
yuhaaitao
2015 年 1 月 4 日
监听端口是多少?

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

https://study.congcong.us/t/100613

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

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

© 2021 V2EX