起因:
前段时间u2被dns投毒了,然后就想着能不能自己建一个dns。
首先要准备一台在国内的服务器 ,或者刷了openwrt之类的路由器也行。
然后先搭建chinadns作为上游dns。
先下载编译chinadns
wget --no-check-certificate https://github.com/shadowsocks/ChinaDNS/releases/download/1.3.2/chinadns-1.3.2.tar.gz tar -zxvf chinadns-1.3.2.tar.gz cd chinadns-1.3.2 ./configure && make
然后更新CHNRouter
curl 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > chnroute.txt
开启
./src/chinadns -m -c chnroute.txt -s 119.29.29.29,208.67.220.222:443
这里默认开启的是53端口,要注意的是记得打开防火墙,阿里云之类的服务商还得打开安全组的udp和tcp端口。
访问http://tool.chinaz.com/dns/?type=1&host=你想解析的域名&ip=服务器的ip看看能不能用,如果响应ip那里啥也没有请检查服务是否出错和防火墙的配置是否有问题。
确认无误后把chinadns用5353端口启动就行了。注意,终端退出的话chinadns也会停止,具体解决方法有很多,随便找一个用就是了。
然后安装DNSMasq。至于是编译安装还是用包管理器安装随便,这里就不说了。
安装完后编辑/etc/dnsmasq.conf文件
# 指定监听 53 端口port=53
# 禁止 DNSMasq 使用 resolv.conf
no-resolv
no-poll
# 指定监听IP,将 x.x.x.x 换成你的 eth0 网卡IP(用 ifconfig 命令查看)
listen-address=127.0.0.1,x.x.x.x
# 指定额外配置文件夹
conf-dir=/etc/dnsmasq.d/
需要注意的是,如果你是想把这个dns服务用于公网,后面那个x.x.x.x是必须要加的。127.0.0.1是让本地访问。<br/>
添加chinadns作为上游dns服务器
echo "server=127.0.0.1#5353" > /etc/dnsmasq.d/chinadns.conf
然后重启DNSMasq就行了。