Skip to content

如何在做本地DNS解析缓存,优化Unblock Youku DNS在较远地区的使用体验

Baiyi "Patrick" Liao edited this page May 7, 2017 · 1 revision

恭喜,你现在已经会用Unblock Youku的DNS来解锁各种国内网站了。

但如果你是个离北美大陆比较远一点的地方(例如在日本和欧洲的一些国家), 你可能会注意到解析的速度非常慢,具体的表现为网页得转好久才会开始加载但是加载的时候就很快。 原因就在于你距离Unblock Youku 的DNS太远了,每次打开网页时浪费的时间都浪费在拉取DNS解析记录了。

比如我,就在日本租了一台Linode,打开b站那叫一个慢... 好消息是,对于Linux和mac用户,你们的福音来了。 只需在本地缓存这些DNS解析记录即可解决问题。而且这么做还可以帮助Unblock Youku的服务器缓解压力,你的贡献可不会少于捐助哟~~

安装

  1. 备份/etc/resolv.conf这个文件,具体可以这么做:
cp /etc/resolv.conf /etc/resolv.conf.original
  1. 使用以下命令来安装bind9
apt -y install bind9

配置

  1. 运行以下命令来备份原版配置文件
mv /etc/bind/named/named.conf.options /etc/bind/named.conf.options.original
  1. 写一个bind9的配置文件,文件名为named.conf.options.original,当然你也可以直接把这个现成的写进去:
options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable 
	// nameservers, you probably want to use them as forwarders.  
	// Uncomment the following block, and insert the addresses replacing 
	// the all-0's placeholder.
       
	max-cache-size 65536; 
	forwarders {
        158.69.209.100;
        45.32.72.192;
//	 	8.8.8.8;
//		8.8.4.4;
//		2001:4860:4860::8888;
//		2001:4860:4860::8844;
	};

	//========================================================================
	// If BIND logs error messages about the root key being expired,
	// you will need to update your keys.  See https://www.isc.org/bind-keys
	//========================================================================
	dnssec-validation no;

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
};

具体偷懒方法:

  1. vim一下配置文件(应该里面什么都没有,如果你做了第一步的话)
vim /etc/bind/named.conf.options
  1. 按一下I键,进入编辑模式
  2. 复制上面的范例,然后对着编辑窗口右键粘贴
  3. ESC,然后输入:
:wq

即可。

使用

  1. 打开你的系统的DNS设置,将DNS设置为127.0.0.1

如果你是Ubuntu或者其他Linux系的用户,可以修改 刚刚提到的```/etc/resolv.conf```文件
  1. 用你习惯的编辑器(例如我刚刚用的vim)打开 /etc/resolv.conf文件
  2. 注释所有其他行,然后新增如下行
nameserver 127.0.0.1

保存退出,搞定。

  1. 重启一下bind9服务,让你的配置文件生效
systemctl restart bind9
  1. 这时你的本地DNS应该就搭建完成了,你可以通过如下命令试一下你的成果:
dig @localhost bilibili.com

如果能正确解析,并且解析结果里有42.96开头的一个服务器,那就表明你做对了,恭喜。