ChinaDNS 与 DNSMasq 结合起来用,使其更加稳定并且可以支持 TCP 查询,防止dns污染和挟持,DNSMasq 作为主 DNS 服务端,将 ChinaDNS 作为 DNSMasq 的上游 DNS
ChinaDNS安装配置
1. 下载并编译
- 如果你的系统中没有
make
和gcc
就需要先安装
# Ubuntu / Debian
apt-get install -y make gcc
# CentOS
yum install -y make gcc
- 下载 ChinaDNS 源码并解压编译
cd /root
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
mv chinadns-1.3.2 chinadns
cd chinadns
./configure && make
- 更新 chnrouter
cd /root/chinadn
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
2. 配置 supervisor 守护进程
防止 ChinaDNS 进程挂掉
如果你的系统中已经有 supervisor,那么忽略安装步骤,酌情参考除了安装之外的配置步骤
- 安装
# python2
pip install supervisord
# python3
pip install git+https://github.com/Supervisor/supervisor
- 初始化并修改配置文件
此处和原先不一样的一点:让 ChinaDNS 在5353
端口(或者其他非53
端口)监听,因为我们要让它做 DNSMasq 的上游 DNS
echo_supervisord_conf > /etc/supervisord.conf
echo "[program:chinadns]
command=/root/chinadns/src/chinadns -p 5353 -m -c /root/chinadns/chnroute.txt -s 114.114.114.114,208.67.222.222:443
user = root
autostart = true
autorestart = true" >> /etc/supervisord.conf
- 添加 supervisor 开机自启
echo "supervisord -c /etc/supervisord.conf" >