使用PHPDNS 搭建自己的DNS,带Web界面

由来:  前面说的电信4G流量劫持比较严重,连我这个小博客迫不得已也上了SSL,想着如果换电脑每次都要设置拦截域名,刚好看见 小z 大佬发布了 PHPDNS ,刚好就搭建在吃灰的阿里云机器上,手机也dns设置自己的机器,等后面遇到53端口也污染再换端口弄成加密的~

PHPDNS拦截电信4G广告界面

PHPDNS

PHPDNS是基于DNSmasq开发的WEB界面

环境要求

  • CentOS 6/7
  • PHP 5.6+(需要支持PDO组件)
  • SQLite 3

阅读前准备

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

关于DNSmasq

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。
使用DNSmasq可以很方便的搭建递归DNS(公共DNS),诸如类似的119.29.29.29

适用场景

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

安装DNSmasq

系统要求:CentOS 67,且需要国内服务器。
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终端执行即可。

请输入图片描述

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇