大多数机场、酒店之类场所,当你输入一个网址比如www.google.com时,会弹出一个页面要你输入帐号密码才能上网。这个时候DNS能正确解析,但是上网要付费认证。
可以通过DNS隧道来实现免费上网。具体做法是:
(1)找一个支持DNS解析的域名,现在这类免费域名很多,比如tk的、co.cc的。假设该域名是abc123.tk。
(2)在tk的注册机构里,设置abc123.tk的NS服务器为你自己的主机(最好是Linux VPS),例如:
abc123.tk. IN NS ns.abc123.tk.
ns.abc123.tk. IN A 74.81.81.81
(3)在74.81.81.81上,以root身份运行一个Perl脚本(这个脚本来自Dan Kaminsky的OzymanDNS包):
./nomde.pl -i 0.0.0.0 abc123.tk
上述脚本会侦听在UDP 53端口,接受DNS请求,并且只解析abc123.tk域。
(4)在客户机上(要求有ssh,最好是Linux系统),运行如下命令:
ssh -ND 7070 -o ProxyCommand=”./droute.pl sshdns.abc123.tk” user@localhost
上述ssh命令,-ND 7070表示在本机打开7070的socks 5代理端口。droute.pl是DNS隧道的客户端工具,同样来自于OzymanDNS包。sshdns是固定的主机名,加在域名abc123.tk前面。user是你在74.81.81.81上的登录名字,@localhost是固定的,不需要改(因为隧道过去后,就是74.81.81.81本机)。
运行上述ssh命令后,会提示输入密码。输入正确密码后,就和远程主机建立了ssh连接,获取到一个SSH终端。并且,在本机打开了7070的socks 5代理端口。配置浏览器使用这个代理端口,开始享受免费冲浪吧!
貌似在android手机上搞不定?
是不是电信宽带欠费了也能上啊,因为DNS是通的?
是的。只要DNS能通,就能上网。
话说回来,DNS隧道是利用UDP协议的,慢且不太稳定。
太牛逼了吧,在android手机上有试验过么?
Pingback引用通告: DNS 隧道&有DNS的地方就能上网(用DNS隧道实现免费上网) | Abanet's blog
您说出来了,那就会被堵上了吧,呵呵。。。
Pingback引用通告: 利用dns隧道免费上网 | { yeah : 必须哒 }
Pingback引用通告: 有DNS的地方就能上网 | Albert's recording
Pingback引用通告: 用DNS隧道实现免费上网 | Roothx
Pingback引用通告: DNS 隧道&有DNS的地方就能上网(用DNS隧道实现免费上网) « 细节的力量
真的啊 我试试
Pingback引用通告: 有DNS的地方就能上网 | 天蓝色的彼岸
Pingback引用通告: 有DNS的地方就能上网 - 技术文档 - DNS - iodine - Linux - 隧道 - 自由的风
Pingback引用通告: 用DNS隧道实现免费上网 | 航海志
Pingback引用通告: 用DNS隧道实现免费上网 « Yet another wordpress blog
Pingback引用通告: 利用dns上网和利用iodine翻墙 « 细节的力量
Pingback引用通告: Definite Digest » 利用dns上网和利用iodine翻墙
Pingback引用通告: Definite Digest » 利用dns上网和利用iodine
Pingback引用通告: 有DNS的地方就能上网 « 细节的力量
Pingback引用通告: Definite Digest » 有DNS的地方就能上网
Pingback引用通告: 亨sir » 有DNS的地方就能上网
Pingback引用通告: 用VMWare组网,实验DNS隧道 | GooRockey's Life
问一个小问题,这个会耗费VPS的流量吗?
当然了,你上网的流量都经过隧道到VPS。