自建DNS以防止GFW干扰
国内用户无法访问youtube的主要原因是当浏览器进行DNS查询时GFW 会拦截此请求并返回错误的结果。那么一个解决办法就是采用更安全的传输方式。
DNS请求默认是采用UDP协议,它是无连接的,所以UDP协议头部的IP地址非常容易被伪造,拦截的成本很低。但是DNS也支持tcp协议,经众多网友测试,GFW 不会处理TCP形式的DNS请求。
所以解决办法之一就是:自建一个本地的DNS服务器,把TCP协议的DNS服务转成UDP的,以给其它程序用。
此处推荐一个软件:unbound。它是FreeBSD操作系统下的默认DNS服务器软件。它不仅支持FreeBSD,也支持Linux和Windows。其中Windows版本的下载地址是:http://www.unbound.net/downloads/unbound_setup_1.4.21.exe 这是一个安装文件,默认会安装在C:\Program Files (x86)\Unbound目录下。
然后修改unbound的配置文件:
用记事本打开C:\Program Files (x86)\Unbound\service.conf,把里面原来的东西统统删掉,然后换成
server:
# verbosity level 0-4 of logging
verbosity: 1
# if you want to log to a file use
logfile: ”C:\unbound.log”
interface: 0.0.0.0
do-ip6: no
tcp-upstream: yes
access-control: 192.168.1.0/16 allow
val-permissive-mode: yes
module-config: ”iterator”
forward-zone:
name: ”.”
forward-addr: 8.8.8.8
然后用开始菜单打开命令行提示符,执行以下两条命令
sc stop unbound
sc start unbound
然后测试一下是不是好了。
如果好了,就去修改网络连接属性,让默认的DNS服务器指向本地的127.0.0.1
然后直接打开浏览器上网就行了。
如果有一天这个办法不好使了,我再告诉你一个办法:
unbound支持ssl的upstream和listener。所以你在境外找一台主机用unbound开一个ssl的tcp端口,然后本机再开一个作为它的缓存。嗯嗯 。
建议继续学习:
- 强制刷新本地 DNS 缓存记录 (阅读:9224)
- 2014年1月21日中国互联网DNS瘫痪事件原因分析 (阅读:6845)
- 关于 SOCKS 代理的远端 DNS 解析 (阅读:6393)
- DNS 隧道 (阅读:5623)
- 什么是DNS劫持和DNS污染? (阅读:4914)
- nslookup通往DNS的桥梁 (阅读:4745)
- CentOS下通过Webmin管理BIND实现DNS轮询 (阅读:4680)
- dig挖出DNS的秘密 (阅读:4601)
- DNS解析过程及DNS TTL值 (阅读:4511)
- public DNS servers (阅读:4065)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:A programmer's life 来源: A programmer's life
- 标签: DNS GFW
- 发布时间:2014-03-19 23:03:04
- [68] Go Reflect 性能
- [68] 如何拿下简短的域名
- [67] Oracle MTS模式下 进程地址与会话信
- [62] IOS安全–浅谈关于IOS加固的几种方法
- [61] 图书馆的世界纪录
- [60] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [48] 读书笔记-壹百度:百度十年千倍的29条法则