说明: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博客
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/674/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
大佬,我安装完一直显示dns异常是不是我的PHP的pdo组件的问题
这个你可以移至最下面的小z博客提问,一般他最清楚
crontab 那个在宝塔里怎么设置?
左侧计划任务,执行脚本,每一分钟,任务/root/shell/reload.sh
好的,谢谢
博主推荐推荐 哪里注册域名比较好啊~ 话说博主域名哪里注册的? 求一波支援!!!国内呆不下去了。。另外还求个国外主机!
域名注册商一直是namesilo,很多人用这家,而且新用户可以减1美元,具体查看:https://www.moerats.com/archives/508/。建站的话可以用搬瓦工CN2 Gia或者CN2,查看地址:https://www.moerats.com/archives/252/。
谢谢博主啦~ 域名再namesilo注册了 。剩下的就是挑选主机了。。哈哈 主要是不想备案 不然随时可能GG
国内主机太贵了,带宽也低,国外玩的爽些。
国内限制条件太多了。已被逼疯
所以我不用国内。
为什么一定要是国内的服务器啊,大佬
是不是延迟的考虑
不是延迟问题,一般国外服务器是不适合搭建DNS的,只要过墙就会被污染。
过来学习一下