基于DNSmasq写了个WEB界面(开源)

时间:2022-07-27
本文章向大家介绍基于DNSmasq写了个WEB界面(开源),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

网上找了一下好像没有合适的 DNSmasq WEB 界面,虽然 DNSmasq 配置已经足够简单了,但还是觉得 WEB 管理更加方便。

PHPDNS是基于DNSmasq开发的WEB界面 环境要求

阅读前准备

  • 掌握Linux基础知识,熟悉Linux基本命令
  • 熟悉网络基础

关于DNSmasq

DNSmasq是一个小巧且方便地用于配置DNSDHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。

使用DNSmasq可以很方便的搭建递归DNS(公共DNS),诸如类似的119.29.29.29

适用场景

  • 适合公司、家庭等适量用户的小型网络

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

安装PHPDNS

  1. 访问master.zip下载最新源码,并解压到站点根目录,同时注意站点目录所属用户权限可读可写。(新手易犯此错误)
  2. 编辑application/helpers/check_helper.php设置用户名、密码,里面有注释说明。
  3. 访问您的域名http://domain.com/?登录测试

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

编写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 设置crontab定时任务 #安装crontab yum install crontabs #新建定时任务 crontab -e #写入下面的内容,注意路径 */1 * * * * /root/shell/reload.sh #重载crontab service crond reload /root/shell/reload.sh 是上面shell脚本的绝对路径,请注意修改。

建立软连接 软连接默认已经生成好了,直接登录PHPDNS后台,讲命令复制到Linux终端执行即可。