说明:DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。使用DNSmasq可以很方便的搭建递归DNS(公共DNS),诸如类似的119.29.29.29,可以有效的帮助我们防止DNS劫持、屏蔽广告等,博主很久前发过一个DNSmasq搭建教程,查看:Linux安装DNSmasq搭建自己的公共DNS,使用起来还是有点麻烦,现在小Z大佬使用PHPDNS为DNSmasq写了个Web界面,让我们使用更加方便了。

截图

请输入图片描述

安装DNSmasq

系统要求:CentOS 6、7,且需要国内服务器。

1、安装DNSmasq
先使用ifconfig命令查看服务器IP,并记录,比如下图中的192.168.0.4。
请输入图片描述
再执行下面的命令安装DNSmasq

#安装epel源
yum -y install epel-release
#安装DNSmasq
wget https://raw.githubusercontent.com/helloxz/dnsmasq/master/dns.sh --no-check-certificate
chmod +x dns.sh
#注意后面填写ifconfig看到的IP
./dns.sh 192.168.0.4

如果是阿里云等服务器,注意防火墙还要放行tcp/udp 53端口。输入netstat -apn|grep 'dnsmasq'可查看DNSmasq是否运行正常。

2、常用命令

启动:service dnsmasq start
停止:service dnsmasq stop
重启:service dnsmasq restart

安装PHPDNS

Github地址:https://github.com/helloxz/phpdns

1、运行原理

#PHPDNS生成DNSmasq格式的配置文件
#服务器crontab定时检测配置文件变化,若有改动则重启DNSmasq使其生效

2、环境要求

PHP 5.6+(需要PDO组件支持)、SQLite 3

3、安装PHPDNS
先访问master.zip下载最新源码,并解压到站点根目录,同时注意站点目录所属用户权限可读可写。

再编辑application/helpers/check_helper.php设置用户名、密码,里面有注释说明。

最后访问您的域名http://domain.com/登录测试。

4、Nginx伪静态设置
如果是Apache已经自带了.htaccess规则,无需额外设置。如果是Nginx请再server段内添加:

location ^~ /application {
        deny all;
}
location ^~ /system {
        deny all;
}
location ^~ /(application|system) {
        deny all;
}
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

添加完成后别忘记重启一次nginx。

5、编写Shell脚本
PHPDNS通过shell脚本检测DNSmasq文件变化,使用vi reload.sh命令新建Shell脚本,并写入以下内容,路径请自行修改。

CentOS 7系统:

#!/bin/bash
find /data/wwwroot/xxx.com/application/conf/ -name '*.conf' -mmin -1 -exec /usr/bin/systemctl restart dnsmasq.service {} ;

CentOS 6系统:

#!/bin/bash
find /data/wwwroot/xxx.com/application/conf/ -name '*.conf' -mmin -1 -exec /sbin/service dnsmasq restart {} ;

参数说明:

/data/wwwroot/xxx.com/application/conf/是DNSmasq配置文件目录,改为自己的目录。
/usr/bin/systemctl是CentOS 7 systemctl的目录
/sbin/service是CentOS 6的service目录

别忘记赋予脚本执行权限:chmod +x reload.sh。

6、设置crontab定时任务

#安装crontab
yum install crontabs
#新建定时任务
crontab -e
#写入下面的内容,注意路径
*/1 * * * * /root/shell/reload.sh
#重载crontab
service crond reload

/root/shell/reload.sh是上面shell脚本的绝对路径,请注意修改。

7、建立软连接
软连接默认已经生成好了,直接登录PHPDNS后台,将命令复制到Linux终端执行即可。
请输入图片描述

文章来源:小Z博客

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!