IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

自建DNS以防止GFW干扰

A programmer's life 2014-03-19 23:03:04 累计浏览 13,130 次
本机暂存

   国内用户无法访问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端口,然后本机再开一个作为它的缓存。嗯嗯 。

同分类推荐文章

  1. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. gen_tcp发送进程被挂起起因分析及对策 (累计阅读 37,823)
  2. TCP 的那些事儿(上) (累计阅读 22,700)
  3. 如何拿下简短的域名 (累计阅读 16,938)
  4. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,938)
  5. 彻底屏蔽优酷广告 (累计阅读 12,981)
  6. 浅谈TCP优化 (累计阅读 11,084)
  7. 强制刷新本地 DNS 缓存记录 (累计阅读 10,930)
  8. 推荐一些socket工具,TCP、UDP调试、抓包工具 (累计阅读 10,846)
  9. SSL证书的分类(按功能) (累计阅读 10,274)
  10. 查看 Apache并发请求数及其TCP连接状态 (累计阅读 10,073)