聚合 DNS 管理系统,自建三网分流优选 IP

AI-摘要
Yutian81 GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
聚合 DNS 管理系统,自建三网分流优选 IP
雨天狂奔聚合 DNS 管理系统,自建三网分流优选 IP
群友 Jin x 推荐的神器,彩虹聚合 DNS 管理系统,抱着玩玩看的心态部署了一个,看了一下确实很强大,现将部署过程与大家分享一下
项目简介
彩虹聚合 DNS 管理系统 是一款基于 ThinkPHP 开发的网站程序,可实现在单一网站内管理多个平台的域名解析,目前已支持的域名解析平台有:阿里云、腾讯云、华为云、百度云、西部数码、火山引擎、DNSLA、CloudFlare、Namesilo、PowerDNS
功能特性
- 多用户管理: 可为每个用户可分配不同的域名解析权限;
- 提供 API 接口: 可获取域名单独的登录链接,方便各种 IDC 系统对接;
- 容灾切换功能: 支持 ping、tcp、http(s) 检测协议并自动暂停/修改域名解析,并支持发送通知;
- 定时切换功能: 设置在指定时间/周期,自动修改/开启/暂停/删除域名解析;
- CF 优选 IP 功能: 支持获取最新的 Cloudflare 优选 IP,并自动更新到解析记录;
- SSL 证书申请与自动部署: 支持从 Let’s Encrypt 等渠道申请 SSL 证书,并自动部署到各种面板、云服务商、服务器等;
- 多种通知渠道: 支持邮件、微信公众号、Telegram、钉钉、飞书、企业微信等。
官方仓库
部署方式
官方提供了两种部署方式:
- PHP 程序 —— 可部署到 VPS 或虚拟主机
- DOCKER —— 可部署于 VPS 或支持 docker 的容器,如 zeabur、leaflow、爪云、猫云等
本文只讲 PHP 部署,并以 Serv00 虚拟主机为例
需要其他部署方式的,请移步官方仓库 README.md 文件
步骤一:创建数据库
在 Serv00 上创建一个 mysql 类型的数据库,你也可以在自己的服务器上创建,或在免费的 db4free 上免费创建一个
此处以 Serv00 为例(下文若无特殊说明,均以 Serv00 为例)
- 登录 Serv00 网页面板
- 依次点击左侧
mysql→ 顶部标签Add database
- 记录以下数据备用
- HOST:数据库域名,如
mysql10.serv00.com,如果你是 S11 服务器,那域名就是mysql11.serv00.com - Database name:数据库名称
- Username:数据库用户名
- Password:数据库密码
- HOST:数据库域名,如
步骤二:创建网站
- 依次点击
WWW website→Add new website - 填入你自己的域名,可以是托管在 CF 的,也可以是未托管的,点击
添加
步骤三:申请证书
- 点击
Manage SSL certificates标签,出现两个 IP - 将其中一个 IP 解析到你的域名,暂不开启小黄云
- 解析完成后,点击 IP 后面的
manage按钮,开始添加证书
- 如果你的域名托管在 CF,可以先到 CF 那里申请 15 年源证书并分别保存到记事本
- 然后选择你刚刚创建的域名,将证书上传到此处
- 如果你不会申请 CF 证书,Type 那里选择自签证书,并选择你的域名
- 现在访问你的域名,已经可以打开默认的首页
步骤四:部署项目
1. 到官方仓库下载源码
下载当前最新版本 Releases · netcccyun/dnsmgr
2. 上传源码
- 回到主机的网页管理面板,点击
File manager进入文件管理器 - 在文件列表中找到你的域名文件夹,将刚刚下载的 ZIP 包上传到
public_html目录下,完整路径/domains/你的域名/public_html - 上传完成后双击进入压缩包,全选所有文件,右键选择
解压 - 全部解压到
/domains/你的域名/public_html
3. 重写根路径
由于项目是用 think php 开发,其根路径没有 index.php 文件,而是在 /public 文件夹下
因此现在直接访问域名无法进入项目,需要访问 https://域名/public 才能进入首页
对于完美主义者,这当然不能接受,我们可以重写路径来解决
- 方法一:(推荐)
- 在
/domains/你的域名/public_html下新建.htaccess文件,内容如下:
- 在
1 | # 1. 基础安全设置 |
- 方法二:
- 通过 SSH 连接服务器,运行以下命令:
1 | devil www edit <此处改为你的域名> public_directory /public_html/public |
4. 进入主页初始化项目
现在访问你的域名 https://项目域名,进入到初始化页面
按照要求填写数据库相关信息,以及管理员账号和密码,然后登录
进阶玩法
实现自动查询域名到期时间(不支持二级域名)、证书到期时间并定时通知
- 进入虚拟主机管理页面,点击
cron-job定时任务 - 添加一个定时任务,每 5 分钟执行一次以下命令
1 | pgrep -f "think certtask" > /dev/null || (cd /usr/home/你的用户名/domains/你的项目域名/public_html/ && /usr/local/bin/php think certtask > /dev/null 2>&1) |
启动自动容灾服务
服务用途:支持 ping、tcp、http(s) 检测协议并自动暂停/修改域名解析
默认情况下,项目后台管理中看到的这个服务是停止状态
按以下步骤来启动它:
- 连接 ssh 登录 Serv00
- 执行命令
find /usr/local/lib/php -name "swoole.so" 2>/dev/null - 如果返回类似
/usr/local/lib/php/20230831/swoole.so这样的代码,说明你的主机支持Swoole组件,记住这个路径,继续往下操作 - 如果没有返回或提示找不到,去 github 看看有没有已经编译好的 FreeBSD 系统的
swoole.so - 如果也没有,那就放弃这一步
依次运行以下命令启动服务
1 | cd /usr/home/yutian010/domains/s10dns.kaic.hidns.co/public_html |
- 现在再去看项目管理后台的容灾服务,已经处于运行状态
- 设置定时任务确保服务不会终止
- 回到 Serv00 管理面板的定时任务中,添加两条,执行的命令为
1 | pgrep -f "think dmtask" > /dev/null || (cd /usr/home/你的用户名/domains/你的项目域名/public_html/ && /usr/local/bin/php -d extension=/usr/local/lib/php/20230831/swoole.so think dmtask > /dev/null 2>&1) |
至此,项目部署已经完成。关于如何添加域名账户、域名管理、CF 优选 IP 等等,就自行摸索去吧
#容器 #域名 #建站 #DNS
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果












