V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hedaode
V2EX  ›  分享创造

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

  •  
  •   hedaode · 2014-02-17 18:43:25 +08:00 · 18395 次点击
    这是一个创建于 3718 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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端口做反向代理,那能代理的网站就多了,可惜国内大部分机房都有白名单,所以有些想法无法实现。
    第 1 条附言  ·  2014-12-31 19:48:45 +08:00
    现在已取消了特殊代理,只提供无污染解析服务。
    27 条回复    2017-03-04 16:14:30 +08:00
    pfitseng
        1
    pfitseng  
       2014-02-17 19:00:22 +08:00 via Android   ❤️ 1
    就是所有的ssl 都会被转发了?
    Chentao1006
        2
    Chentao1006  
       2014-02-17 19:36:25 +08:00
    先口头谢谢,用段时间试试
    regent
        3
    regent  
       2014-02-17 19:46:35 +08:00 via iPhone
    测试看看
    orzfly
        4
    orzfly  
       2014-02-17 19:53:40 +08:00
    这需要客户端启用 SNI 支持才行吧。
    hedaode
        5
    hedaode  
    OP
       2014-02-17 20:16:37 +08:00
    @pfitseng 仅仅转发被污染域名的数据。
    @orzfly 是的。就是根据SNI来转发的。以前抓包发现有这么个东西,但没深入研究,现在才知道专有名词叫SNI,感谢。
    sarices
        6
    sarices  
       2014-02-17 21:32:48 +08:00
    facebook也可以?facebook走spdy啊
    hedaode
        7
    hedaode  
    OP
       2014-02-17 22:18:00 +08:00
    @sarices fb可以的。spdy也是在ssl之上。这个代理服务器是透明转发,不关心数据内容。
    Coda
        8
    Coda  
       2014-02-18 08:26:05 +08:00
    亲测可用, 用用看, 谢谢~
    missdeer
        9
    missdeer  
       2014-02-18 09:53:44 +08:00
    我想问的是自己搭的DNS怎么实现edns-client-subnet协议支持
    hedaode
        10
    hedaode  
    OP
       2014-02-18 14:16:45 +08:00   ❤️ 1
    @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
        11
    zhen14  
       2014-02-19 17:18:44 +08:00
    只能在wifi环境下用么?
    cassiuschen
        12
    cassiuschen  
       2014-02-20 11:29:49 +08:00 via iPhone
    现在已经失效了?地址42.*的这个地址ping不通啊…
    tabrisux
        13
    tabrisux  
       2014-02-21 10:37:34 +08:00
    可以用,多谢分享
    tabrisux
        14
    tabrisux  
       2014-02-21 10:46:29 +08:00
    有个问题就是,图片刷不出来
    v2ro88
        15
    v2ro88  
       2014-02-26 13:29:08 +08:00
    测试可用,很快
    iscuen
        16
    iscuen  
       2014-03-03 23:20:00 +08:00 via iPhone
    @tabrisux 和你一样的疑问,图片不能刷出来
    streamgo
        17
    streamgo  
       2014-05-07 10:15:39 +08:00
    非常好用!我这里图片什么的倒是大体正常。
    songrui2008
        18
    songrui2008  
       2014-11-16 19:07:25 +08:00
    facebook挂了 貌似是ssl错误,建议lz将facebook改成dns解析,不走特殊代理,twitter正常
    hedaode
        19
    hedaode  
    OP
       2014-11-17 15:33:21 +08:00
    @2008songrui 现在已取消了特殊代理,只提供无污染解析服务。
    yuhaaitao
        20
    yuhaaitao  
       2015-01-04 07:51:46 +08:00
    监听端口是多少?
    yuhaaitao
        21
    yuhaaitao  
       2015-01-04 07:52:06 +08:00
    服务器端口是多少?
    songrui2008
        22
    songrui2008  
       2015-01-12 18:32:27 +08:00
    国外网站仅限ipv6访问?
    songrui2008
        23
    songrui2008  
       2015-01-14 19:19:08 +08:00
    实测在教育网(应该是ipv6的缘故)使用这个dns可以十分流畅的看youtube,fb也可以 tw貌似不行
    hedaode
        24
    hedaode  
    OP
       2015-01-17 21:05:30 +08:00
    @yuhaaitao 标准的udp 53端口。
    hedaode
        25
    hedaode  
    OP
       2015-01-17 21:07:53 +08:00
    @2008songrui 那应该是解析的IP还没被GFW封锁,所以可用HTTPS加密访问。
    szpliman
        26
    szpliman  
       2015-12-08 11:09:38 +08:00
    谢谢,非常好用,希望一直 online 哦~!
    yanggis
        27
    yanggis  
       2017-03-04 16:14:30 +08:00
    @hedaode 最近很少见你网上活动啊,忙什么呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1046 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:28 · PVG 06:28 · LAX 15:28 · JFK 18:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.