用ssh加密DNS查询的方法

来源:http://igfw.tk/archives/4408

现在解决DNS污染的方法一 般是通过修改使DNS使用TCP协议传输和通过延迟DNS查询舍弃GFW干扰的IP来获得真实IP。这两种方法的原理不同,通过修改使DNS使用TCP协 议传输的原理是DNS传输默认使用UDP传输所以GFW的DNS污染也是在UDP传输层,至少现在还没有干扰TCP传输层的DNS请求,所以使用TCP协 议请求的DNS查询目前是不受DNS污染的,不过不能保证以后GFW不会这么干;通过延迟DNS查询的原理是这样的,GFW的DNS污染是这样的,比如你 电脑发出一个域名的DNS查询请求就会通过域名服务器查询,这个过程中GFW检测在其黑名单里的域名,然后迅速返回给你的电脑一个假IP,而你的电脑却把 它当成真的了,等一会DNS服务器查询到的真实IP返回给你就会被系统舍弃,DNS污染就这么着发生了,如果你通过软件延迟DNS查询,等待真实IP返回 再返回给系统,这样就解决了DNS污染。(域名服务器缓存污染

不过即使这两种都被干扰了你也可以使用VPN或ssh加密DNS查询。

使用VPN的方法可以参考 http://igfw.tk/archives/2483 修改路由表让8.8.8.8通过vpn然后设置本机DNS为8.8.8.8,不过这个对个人翻墙就画蛇添足了。

用ssh加密DNS查询的方法还是有用的,以下是网友路人甲提供的方法,有兴趣的可以研究下。

我找到一个可以用ssh加密DNS查询的方法
用plink命令, 把下文"密码""用户名""SSH服务器端口""SSH服务器地址" 改成你找到的SSH帐号

plink -N -v -D 127.0.0.1:5123 -L 8853:8.8.8.8:53 -pw 密码 -l 用户名 -P SSH服务器端口 SSH服务器地址

这条命令运行后可以把本地的127.0.0.1:8853当成是8.8.8.8:53的google DNS,因为做了端口转发。在网卡
的DNS设定上改成127.0.0.1:8853就可以用SSH加密向8.8.8.8做DNS查询了。
(同时这命令也开了一个127.0.0.1:5123的本地端口做socks5代理,这样SSH帐号就物尽其用了)

再结合dnsproxy.exe的cn域名用国内DNS查询的功能就十分完美了。既100%不被DNS污染也不会损失速度。

==========================================================================

说漏了,127.0.0.1:8853要加在dnsproxy.exe的data/dnsproxy.conf里用,windows不能直用127.0.0.1:8853
因为windows只支持标准的53端口DNS服务器。

不过在XP里可以把8.8.8.8的53端口转成本机的53端口,那命令改成这样
plink -N -v -D 127.0.0.1:5123 -L 53:8.8.8.8:53 -pw 密码 -l 用户名 -P SSH服务器端口 SSH服务器地址

win7里如果不想用dnsproxy.exe,又想用8.8.8.8就用psexec那招来绑定本机53端口吧。

===========================================================================

这个是为了以后,如果TCP查询DNS的方式也被关键字过滤封杀,预先作打算。

Linux里也能用这样的端口转发,把plink改成ssh就行了(本来plink就是win版的ssh)

ssh -N -v -D 127.0.0.1:5123 -L 53:8.8.8.8:53 -pw 密码 -l 用户名 -P SSH服务器端口 SSH服务器地址

8.8.8.8的53端口就变成本机127.0.0.1的53端口了,如果本机开了DNS服务不能转发成本机53,
那就改成别的端口,然后加到本机DNS服务的上游DNS列表里。
比如改成8853端口

plink -N -v -D 127.0.0.1:5123 -L 8853:8.8.8.8:53 -pw 密码 -l 用户名 -P SSH服务器端口 SSH服务器地址

==================================================================================

把命令写到批处理文件里就行了(bat或cmd后缀的txt文件),以后双击批处理运行就不用次次打一样的命令了。

顺便说说plink从哪下,去putty主页下载plink新版, 在那堆文件列表里点plink.exe
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

之前的命令去掉端口转发就是一个纯粹连接ssh做socks5代理的命令。
例如连接SSH做个127.0.0.1:1080的socks5代理

plink -N -v -D 127.0.0.1:1080 -pw 密码 -l 用户名 -P SSH服务器端口 SSH服务器地址

注意:
那些参数 -N -v -D 之类的都是大小写敏感的,大写N或D之类的不能换成小写的。

快可以写一个plink教程了…..

有些内容可能要参考http://igfw.tk/archives/4300路人甲提供的方法。

本文原始地址http://igfw.tk/archives/4408

―――――――――――――――――――――――――――――――――――――――――

需要翻墙利器? 请安装Wuala,查找和添加gfwblog为好友,就可高速下载翻墙软件,或访问http://tinyurl.com/gfwblog直接下载。

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。


发表评论