使用 DNSCrypt-proxy 建立安全的 DNS 解析服务

2012年11月13日 | 分类: 翻墙相关 | 标签: , , ,

DNSCrypt-proxy 的工作原理:
通过与首层DNS建立加密的连接通道,确保DNS解析安全;建立一个本地DNS代理,收到解析请求的 时候,转发到远程DNS,之间通过证书加密防止DNS窃听,阻断DNS劫持和DNS污染的可能性;注意,这防止不了HTTP协议的过滤和监听,因此务必使 用SSH隧道所建立的socks5代理进行HTTP或者HTTPS加密浏览

项目地址:https://github.com/opendns/dnscrypt-proxy/
下载:https://github.com/opendns/dnscrypt-proxy/downloads

运行平台:Windows、Android、Linux、iOS

<如果要看YouTube视频,方案是DNSCrypt-proxy本地解析 + SSH隧道浏览器Socks5代理 + youtube ssl连接,只有这样组合运用才可以万无一失;facebook、twitter等类似>

Windows 系统下采用SSH隧道socks5代理上网浏览的方法
http://bbs.73yi.net/thread-2132-1-1.html

以Windows平台为例做个简单的说明,解压缩后,运行dnscrypt-proxy.exe,不要退出程序,将本机DNS指向127.0.0.1即可使用

如果想让它作为一个系统服务,在Windows平台中安装为一个系统服务的方法:
复制dnscrypt-proxy.exe到本机,打开终端或者系统自带命令行,键入命令(需要完整的路径,这里仅供参考,也可以尝试用修改快捷方式的方法附带参数):

dnscrypt-proxy.exe –install
这样系统中就增加了一项名为dnscrypt-proxy的服务;

服务卸载方法(需要完整的路径,这里仅供参考,也可以尝试用修改快捷方式的方法附带参数):
dnscrypt-proxy.exe –uninstall

更多详细说明,请拜读位于github的项目主页

DNSCrypt-proxy 是一个对 DNSCurve 的轻微修改版,DNSCurve 站点:http://www.dnscurve.org/

此工具配合SSH/Socks5/VPN 使用效果更佳,建议有特殊需要的朋友,下载它的源码进行修改,改为自己喜欢的源DNS

另外的连接:
https://github.com/jedisct1/dnscrypt-proxy
http://www.opendns.com/technology/dnscrypt

==========================================
Windows 系统下采用SSH隧道socks5代理上网浏览的方法:

1 putty【绿色免安装】
http://www.chiark.greenend.org.uk/~sgtatham/putty/
https://code.google.com/p/puttycn/
https://code.google.com/p/puttycn/downloads/list
http://puttycn.googlecode.com/files/putty_0.62cn.zip
http://jakub.kotrla.net/putty/
http://jakub.kotrla.net/putty/portable_putty_062_050_all_in_one.zip
运行putty,在程序界面左侧,点击 >SSH >通道
在右侧配置,源端口:7070,目的地:动态,自动;点击 >增加 按钮
在左侧,点击 >会话,主机名称或IP:填写VPS主机域名或IP,连接类型:SSH,点击右下方 >打开 按钮
浏览器设置localhost端口7070代理即可

2 xshell【需要安装,作为ssh客户端功能超级强大,极力推荐】
Telnet/SSH客户端 – Xshell 4
http://www.netsarang.com/download/down_xsh.html
http://download.netsarang.com/files/xsh04000113.exe
http://download.netsarang.co.kr/files/xsh04000113.exe
绿色汉化:http://www.portablesoft.org/xshell/
Serial: 690313-111999-999313
开启socks5方法:
New 》 New Session Properties 》 Protocol:默认SSH > Host:填写域名或者IP > Tunneling > Add… 》 Forwarding Rule > Type (Direction):选择Dynamic(SOCKS4/5) > Listen Port:默认1080或者自定义 > OK 》 OK 》 Connect
设置浏览器localhost端口1080代理即可

3 MyEnTunnel【菜鸟傻瓜SSH隧道socks5专属】
https://code.google.com/p/portabletoolbox/downloads/detail?name=myentunnel.7z
https://portabletoolbox.googlecode.com/files/myentunnel.7z
https://code.google.com/p/webmaster-tools/downloads/detail?name=Myentunnel%203.5.7z
https://webmaster-tools.googlecode.com/files/Myentunnel%203.5.7z
浏览器设置localhost端口7070代理即可

4 pietty
http://ntu.csie.org/~piaip/pietty/
http://ntu.csie.org/~piaip/pietty/archive/pietty0400b14.zip
从putty而来,不多介绍

5 KiTTY
http://kitty.9bis.com/
http://www.9bis.net/kitty/?file=kitty_portable.exe
从putty而来,不多介绍

6 VanDyke SecureCRT
http://www.vandyke.com/products/securecrt/
sn:03-65-006068、name:muziling、Key:ACAM1E Y4RE4Y 5335S4 FHT1QK ACDKYE KKGEEC E23SH4 NWHC1W

VanDyke SecureCRT便携版
http://www.portablesoft.org/securecrt/
http://www.mremoteng.org/
http://www.royalts.com/main/home/mRemote.aspx
==========================================

来源
http://bbs.73yi.net/thread-2055-1-1.html
http://bbs.73yi.net/thread-2132-1-1.html

  1. SA
    2012年11月18日19:12

    希望发表一篇ios下的使用指南。

    • iGFW
      2012年11月18日20:46

      这个我没研究过。

  2. test
    2012年11月16日10:45

    经过测试,发现dnscrypt-proxy经常超时,dnscrypt-proxy和国外dns的加密连接可能已受到干扰

    • z235689785
      2012年11月16日23:21

      建议仔细阅读它的Git项目主页,作者提供了一个图形界面的客户端,在那个图形界面里你可以选择端口、协议已经是否通过纯IPv6线路来解析域名

      有条件的话可以通过纯IPv6解析,直接甩开在IPv4协议下GFW对DNScrypt的干扰

  3. Ben
    2012年11月16日10:00

    用上了,效果感觉是iGFW近来介绍的几个反DNS污染工具中效果最好的(针对Win),比DNSProxy、DNSServerTCP53、z-dns等工具效果都明显,而且不需要安装配置,支持IPv6,推荐小白使用!!!!

    以下针对youtube.com的解析为例,晒晒效果。

    首先,A解析,当然被GFW污染,解析到的是随机IP:

    C:\>nslookup youtube.com. 8.8.8.8
    服务器: google-public-dns-a.google.com
    Address: 8.8.8.8
    名称: youtube.com
    Addresses: 37.61.54.158
    159.106.121.75

    然后,AAAA解析,我这里是教育网的IPv6出口,现在因为十八大的关系,DNSv6也被干扰了:

    C:\>nslookup youtube.com. 2001:4860:4860::8888
    DNS request timed out.
    timeout was 2 seconds.
    服务器: UnKnown
    Address: 2001:4860:4860::8888
    名称: youtube.com
    Addresses: ::90fa:2b46:0:0
    1.1.1.1

    (据校内童鞋说:教育网线路部署了对ordns.he.net的解析干扰,具体原理不知,也不知道不用教育网的IPv6是不是就不受影响。盼望igdw.net近期能搜集一些此方面的文章。IPv6的墙貌似已经开始萌芽了)

    最后,使用本文介绍的DNSCrypt-proxy,正确IP立马出现(v4v6都有,而且连返回的结果都是根服务器格式的~):

    D:\dnscrypt-proxy>dnscrypt-proxy.exe
    [INFO] Generating a new key pair
    [INFO] Done
    [INFO] Server certificate #1346958918 received
    [INFO] This certificate looks valid
    [INFO] Server key fingerprint is ****:62A6:****:F1E8:****:C486:****:E692:****:****:****:597A:04A0:BAB1:AF02:****
    [INFO] Proxying from 127.0.0.1:53 to 208.67.220.220:443

    C:\>nslookup youtube.com.
    1.0.0.127.in-addr.arpa
    primary name server = localhost
    responsible mail addr = nobody.invalid
    serial = 1
    refresh = 600 (10 mins)
    retry = 1200 (20 mins)
    expire = 604800 (7 days)
    default TTL = 10800 (3 hours)
    (root) ??? unknown type 41 ???
    服务器: UnKnown
    Address: 127.0.0.1

    非权威应答:
    名称: youtube.com
    Addresses: 2404:6800:4005:c00::5d
    74.125.128.190
    74.125.128.93
    74.125.128.91
    74.125.128.136

    很给力啊,不过就是使用时会不断返回这条:
    [WARNING] recvfrom(client): [Connection reset by peer [WSAECONNRESET ]]

    这是啥意思?是GFW抢在前面返回的假包么???

    • iGFW
      2012年11月16日22:08

      不清楚啊,没研究,呵呵

  4. 2012年11月13日19:10

    很早就用DNSCrypt了。

  5. zdcs
    2012年11月13日18:57

    疾风OpenVPN for Android:http://3forever.com/category/android-openvpn/,只適用安卓四或以上android 4 不需要root權限,博主辛苦试试能用吗(手边没android,没法试)?无意中看到的,奇怪不用翻墙就能打开这个网址。

    • iGFW
      2012年11月14日09:29

      感谢支持,我也没有android

      • zdcs
        2012年11月14日09:51

        呵呵 那就看客自己试吧