Pages

Thursday, 30 July 2015

一个可以用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之类的不能换成小写的。
------------------------------------------------------------------------------

pwx-dns-proxy — 基于 Python 以及 Twisted 框架写成的支持几乎所有的 DNS 请求类型的DNS 代理服务器

这个 DNS 代理服务器是基于 Python 以及 Twisted 框架写成的,并且它支持几乎所有的 DNS 请求类型,包括 A 地址以及 AAAA 地址(IPv6)。
远程服务器的 DNS 应答根据它们的 TTL 值将会被缓存在本地。
另外,这个服务器能够链接多个上游服务器,并且根据查询域名的不同,使用特定的服务器查询。
在查询上游服务器的时候,可以使用 TCP 协议,而不是 UDP 协议。这样,就可以避免大部分 DNS 污染了。
提供了本地 HOSTS 表的功能,支持 IPv4 和 IPv6 的地址。
这个项目的初衷是为中国大陆的用户提供一个完整的 DNS 代理解决方案——因为它能够透过 GFW,获得被屏蔽的网站的真实 IP 地址。另外,当中国大陆的用户使用 VPN 翻墙的时候,他们既能够使用更安全的、国外的 DNS 服务器,也能够享受更快的上网速度——DNS 查询结果会被缓存,而且大陆拥有 CDN 的门户网站也能够通过 ISP 的 DNS 服务器查询地址,不至于翻山越岭到美国的服务器上访问这些门户网站的内容。
Linux 用户:
1、请安装 Python 2.7,以及 Twisted-11.0
2、请通过 git 下载源代码。运行 run.sh 即可打开代理服务器。
Windows 用户:
1、下载 dnsproxy-0.1-alpha-2.rar,解压到任意文件夹。
2、dnsproxy.exe 是主程序。下载之后,请修改 data/dnsproxy.conf:
将 add_server(“isp”, “202.96.209.133″, 53, False) 里面的 202.96.209.133 修改成你的 ISP DNS。
希望有兴趣的亲能够参与到这个项目中,E-mail 至 airyai@gmail.com
项目地址http://code.google.com/p/pwx-dns-proxy/
下载地址http://code.google.com/p/pwx-dns-proxy/downloads/list

你直接双击dnsproxy.exe窗口只是一闪就关了,就是失败了。
成功运行后会有一个窗口显示当前DNS解释情况。那个窗口还不能关,关了就没dnsproxy.exe了。
还有记得把所有网卡,网络连接的DNS改成dnsproxy.exe的服务地址,不然没用。
或是把 “本地连接” 的DNS改成dnsproxy.exe,别的网卡,连接上的DNS都删掉。
win7 vista win2008用户如果无法运行可以参考此法
去microsoft的网站下这个工具
http://technet.microsoft.com/en-us/sysinternals/bb897553
用以下命令开一个system用户权限的cmd窗口
psexec -s -i cmd.exe
去dnsproxy目录运行以下命令
start dnsproxy.exe
然后会弹出一个空的全黑的dos窗口,那个就是dnsproxy的窗口。
之前打开的cmd窗口就可以关掉了。
注意:
start dnsproxy.exe命令的start一定不能少不然你的cmd窗口一关,dnsproxy的窗也一起关掉了。
不要在system权限的cmd窗口运行别的程序,这个帐号是给服务进程用的,别把没用的进程弄进去.