使用dnsmasq解决openwrt的DNS解析问题
在以前的《一键安装PPTP服务》中,用google的dns(8.8.8.8)来替代了ISP提供的dns服务器,因为如果不替代,运营商dns会将google等被屏蔽网站指向一个不正确的地址,即使是通过VPN也无法正确访问。
但是采用国外dns后发现了一个问题,一些国内网站在dns解析时会提供一个国外的地址,比如访问淘宝,会出现美国淘宝的页面,访问速度也会大大降低。
在openwrt上集成了dnsmasq,这是一个小型的dns代理缓存软件,它可以将特定的域名发送给不同的dns服务器进行解析,可在/etc/dnsmasq.conf文件中进行配置,比如将淘宝域名taobao.com交给国内ISP的dns(210.21.196.6)进行解析,添加如下语句到/etc/dnsmasq.conf文件即可:
server=/taobao.com/210.21.196.6
要解决dns解析问题,有 两种思路:
1、获取国外主流的、被屏蔽的域名列表(GFWLIST),保证被墙网站走国外DNS解析;
2、获取国内主流站点域名列表(ChinaList),保证List中的国内域名走国内DNS解析;
国内主流列表:
https://github.com/felixonmars/dnsmasq-china-list
将文件114.114.114.114替换为自己的ISP的dns
国外主流列表:
应用:
修改 /etc/dnsmasq.conf ,在最后加入 conf-dir=/etc/dnsmasq.d ,新建并进入目录 /etc/dnsmasq.d ,下载 accelerated-domains.china.conf 和 foreign_list.conf 两个文件后根据需要分别复制两个文件到 /etc/dnsmasq.d 目录。
如果缺省走国内ISP的DNS,则只需拷贝 foreign_list.conf 文件,如果缺省走国外DNS,则只需拷贝 accelerated-domains.china.conf即可。
注意:如果缺省走国内DNS,需要将PPTP的如下红框选项去掉,避免PPTP连接后使用国外的DNS:
拷贝后重启dnsmasq立即生效或直接重启路由器:
/etc/init.d/dnsmasq restart
评论:1