🚀 支持多DNS提供商 | 💎 现代化界面 | 🔒 企业级安全
一个功能强大、界面精美的DNS记录管理系统,支持Cloudflare、彩虹DNS等多种DNS服务商
群号:1044379774
扫码加入群聊,与开发者和其他用户实时交流!
# 安全防护 - 禁止访问敏感文件
location ~ * \.(db|sqlite|sql|bak|backup|log)$ {
return 301 /;
}
# 优化静态资源缓存
location ~ * \.(css|js|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y ;
add_header Cache-Control "public, immutable" ;
}
六趣DNS 是一个基于PHP开发的现代化DNS管理系统,为用户提供简洁、高效的DNS记录管理体验。系统支持多DNS提供商(Cloudflare、彩虹DNS、DNSPod、PowerDNS),具备完善的用户管理、积分系统和邮件验证功能。
🎨 用户体验优先 - 简洁直观的操作界面
🔒 安全第一 - 企业级安全防护机制
⚡ 性能优化 - 快速响应的系统架构
🌐 多平台支持 - 完美适配各种设备
Cloudflare - 全球CDN加速
彩虹DNS - 国内优质解析
DNSPod - 腾讯云DNS服务
PowerDNS - 开源DNS服务器
多重验证 - 邮箱+图形验证码
操作审计 - 完整的操作日志
权限控制 - 细粒度用户组管理
数据加密 - 密码安全存储
灵活计费 - 按记录类型收费
用户组权限 - VIP/SVIP特权
邀请奖励 - 推广激励机制
卡密充值 - 便捷充值方式
深色主题 - 科技感十足
响应式设计 - 完美适配移动端
毛玻璃效果 - 现代UI设计
实时反馈 - 流畅交互体验
功能模块
功能描述
支持状态
🌐 DNS记录管理
支持A、AAAA、CNAME、TXT、MX等记录类型
✅ 完整支持
🔍 实时前缀查询
检查子域名可用性,避免冲突
✅ 完整支持
📧 邮箱验证系统
注册、密码重置、邮箱更换验证
✅ 完整支持
💰 积分充值系统
卡密充值,灵活计费
✅ 完整支持
🎁 邀请奖励机制
邀请新用户获得积分奖励
✅ 完整支持
👥 用户组权限
默认组/VIP组/SVIP组权限管理
✅ 完整支持
管理模块
功能描述
支持状态
👥 用户管理
用户账户管理、积分调整、用户组管理
✅ 完整支持
🌐 域名管理
多渠道域名添加和管理
✅ 完整支持
🔧 系统设置
SMTP配置、系统参数调整
✅ 完整支持
📧 邮件模板
自定义邮件模板编辑
✅ 完整支持
📊 操作日志
完整的操作审计记录
✅ 完整支持
🎫 卡密管理
充值卡密生成和管理
✅ 完整支持
📈 数据统计
用户使用情况、系统性能监控
✅ 完整支持
技术栈
版本
用途
优势
PHP
7.4+
服务端开发语言
成熟稳定,生态丰富
SQLite3
3.x
轻量级数据库
零配置,高性能
PHPMailer
6.x
邮件发送组件
功能强大,支持多种协议
cURL
内置
HTTP客户端
支持HTTPS,SSL验证
技术栈
版本
用途
优势
Bootstrap
5.x
响应式UI框架
组件丰富,移动优先
jQuery
3.x
JavaScript库
简化DOM操作,兼容性好
FontAwesome
6.x
图标字体库
图标丰富,矢量缩放
CSS3
现代
样式设计
动画效果,毛玻璃效果
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 用户界面层 │ │ 业务逻辑层 │ │ 数据访问层 │
│ (User Layer) │ │ (Business Layer)│ │ (Data Layer) │
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│ • 用户前台 │ │ • DNS管理器 │ │ • SQLite数据库 │
│ • 管理后台 │◄──►│ • 用户管理器 │◄──►│ • 文件存储 │
│ • API接口 │ │ • 邮件服务 │ │ • 日志系统 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
组件
最低版本
推荐版本
说明
PHP
7.4
8.0+
服务端运行环境
SQLite3
3.0
3.35+
数据库扩展
cURL
7.0
7.80+
HTTP客户端
OpenSSL
1.0
3.0+
加密支持
Web服务器
-
-
Apache/Nginx
# 克隆仓库
git clone https://github.com/976853694/cloudflare-DNS.git
cd cloudflare-DNS
# 设置权限
chmod 755 data/
chmod 666 data/cloudflare_dns.db
Nginx 配置示例:
server {
listen 80 ;
server_name your-domain.com;
root /path/to/cloudflare-DNS;
index index .php;
# 安全防护
location ~ * \.(db|sqlite|sql|bak|backup|log)$ {
return 301 /;
}
# PHP处理
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index .php;
include fastcgi_params;
}
}
本项目现已使用 MySQL(PDO)作为数据库,支持通过环境变量配置外部 MySQL 数据库,并可在容器环境下无交互自动安装。
必需环境变量(至少其一):
MYSQL_DSN 示例:mysql:host=127.0.0.1;port=3306;dbname=cloudflare_dns;charset=utf8mb4
或使用组合变量:MYSQL_HOST/MYSQL_PORT/MYSQL_DATABASE/MYSQL_CHARSET
MYSQL_USER
MYSQL_PASSWORD
可选自动安装变量(AUTO_INSTALL=1 或 INSTALL_AUTO=1 时生效):
ADMIN_USERNAME、ADMIN_PASSWORD、ADMIN_EMAIL
SITE_NAME、POINTS_PER_RECORD、DEFAULT_USER_POINTS、ALLOW_REGISTRATION
MYSQL_DSN:完整的 MySQL 连接 DSN。支持两种格式:
PDO DSN:mysql:host=127.0.0.1;port=3306;dbname=cloudflare_dns;charset=utf8mb4
URL DSN:mysql://user:pass@host:3306/dbname?charset=utf8mb4(也支持 ssl_ca/ssl_cert/ssl_key/ssl_verify/ssl_cipher 查询参数)
MYSQL_USER:MySQL 用户名。默认无
MYSQL_PASSWORD:MySQL 密码。默认无
MYSQL_HOST:当未提供 MYSQL_DSN 时,用于拼装 DSN 的主机,默认 localhost
MYSQL_PORT:当未提供 MYSQL_DSN 时,用于拼装 DSN 的端口,默认 3306
MYSQL_DATABASE:当未提供 MYSQL_DSN 时,用于拼装 DSN 的库名,默认 cloudflare_dns
MYSQL_CHARSET:当未提供 MYSQL_DSN 时,用于拼装 DSN 的字符集,默认 utf8mb4
MYSQL_SSL_CA:可选,CA 证书路径(常用于 Aiven 等要求 TLS 的托管 MySQL)
MYSQL_SSL_CERT:可选,客户端证书路径(如服务端要求)
MYSQL_SSL_KEY:可选,客户端私钥路径(如服务端要求)
MYSQL_SSL_VERIFY:可选,1/0 是否校验服务端证书(如果提供 CA,一般置 1)
MYSQL_SSL_CIPHER:可选,指定 TLS Cipher
AUTO_INSTALL:1 启用无交互自动安装,默认 0
INSTALL_AUTO:1 别名,等价于 AUTO_INSTALL=1
ADMIN_USERNAME:自动安装管理员用户名,默认 admin
ADMIN_PASSWORD:自动安装管理员密码,默认 admin123456
ADMIN_EMAIL:自动安装管理员邮箱,默认 admin@example.com
SITE_NAME:站点名称,默认 六趣DNS域名分发系统
POINTS_PER_RECORD:每条记录消耗积分,默认 1
DEFAULT_USER_POINTS:新用户默认积分,默认 100
ALLOW_REGISTRATION:是否允许注册(1/0),默认 1
说明:项目根目录下的 .env 文件也会被自动加载(KEY=VALUE 格式),其值等同于环境变量。
docker build -t cloudflare-dns:latest .
docker run -p 8080:80 \
-e MYSQL_DSN="mysql:host=127.0.0.1;port=3306;dbname=cloudflare_dns;charset=utf8mb4" \
-e MYSQL_USER=root -e MYSQL_PASSWORD=pass \
-e AUTO_INSTALL=1 -e ADMIN_USERNAME=admin -e ADMIN_PASSWORD=admin123456 \
cloudflare-dns:latest
访问 http://localhost:8080 即可。
仓库已包含 .github/workflows/docker.yml,推送到 main/master 分支或打 v* 标签将自动构建并发布镜像到 GHCR:
ghcr.io/<owner>/<repo>:<tag>
Aiven 的 MySQL 服务默认要求 TLS 连接。你可以从 Aiven 控制台下载 CA 证书,然后在容器中挂载并通过环境变量启用:
docker run -p 8080:80 \
-v $(pwd)/certs:/certs:ro \
-e MYSQL_DSN="mysql:host=<aiven-host>;port=<port>;dbname=<db>;charset=utf8mb4" \
-e MYSQL_USER="<user>" -e MYSQL_PASSWORD="<password>" \
-e MYSQL_SSL_CA="/certs/ca.pem" -e MYSQL_SSL_VERIFY=1 \
-e AUTO_INSTALL=1 -e ADMIN_USERNAME=admin -e ADMIN_PASSWORD=admin123456 \
cloudflare-dns:latest
如果需要客户端证书/私钥(较少见),再加上:MYSQL_SSL_CERT=/certs/client-cert.pem、MYSQL_SSL_KEY=/certs/client-key.pem。
🌐 访问: http://your-domain.com/install.php
步骤
操作
说明
1
数据库初始化
自动创建数据表和索引
2
创建管理员账户
设置管理员用户名和密码
3
配置系统参数
设置站点名称、SMTP等
4
完成安装
删除install.php文件
邮件服务商
服务器地址
端口
加密方式
认证方式
QQ邮箱
smtp.qq.com
465
SSL
授权码
Gmail
smtp.gmail.com
465
SSL
应用专用密码
163邮箱
smtp.163.com
465
SSL
授权码
Outlook
smtp-mail.outlook.com
587
TLS
密码/授权码
配置步骤:
登录管理后台 → SMTP设置
填写邮件服务器信息
发送测试邮件验证配置
保存设置即可使用
步骤
操作
说明
1
获取API Token
登录Cloudflare → My Profile → API Tokens
2
创建Token
选择"Custom token",权限:Zone:Read, DNS:Edit
3
添加账户
后台"管理CF账户" → 添加账户
4
导入域名
使用"获取域名"功能导入域名
步骤
操作
说明
1
获取API密钥
登录彩虹DNS控制台获取API密钥
2
配置服务器信息
填写API基础URL、用户ID、API密钥
3
添加账户
后台"管理彩虹账户" → 添加账户
4
导入域名
从账户中导入可用域名
📁 cloudflare-DNS/
├── 📁 admin/ # 🛠️ 管理后台
│ ├── 📁 includes/ # 后台公共组件
│ ├── 📄 *.php # 管理功能页面
│ └── 📁 api/ # API接口
├── 📁 user/ # 👤 用户前台
│ ├── 📁 includes/ # 前台公共组件
│ └── 📄 *.php # 用户功能页面
├── 📁 config/ # ⚙️ 配置文件
│ ├── 📄 database.php # 数据库配置
│ ├── 📄 smtp.php # 邮件服务
│ ├── 📄 cloudflare.php # Cloudflare API
│ ├── 📄 rainbow_dns.php # 彩虹DNS API
│ └── 📄 dnspod.php # DNSPod API
├── 📁 includes/ # 🔧 公共功能
│ ├── 📄 functions.php # 通用函数
│ ├── 📄 captcha.php # 验证码类
│ └── 📄 user_groups.php # 用户组管理
├── 📁 assets/ # 🎨 静态资源
│ ├── 📁 css/ # 样式文件
│ ├── 📁 js/ # JavaScript文件
│ └── 📁 images/ # 图片资源
└── 📁 data/ # 💾 数据目录
└── 📄 cloudflare_dns.db # SQLite数据库
目录
功能
重要文件
admin/
管理后台
用户管理、域名管理、系统设置
user/
用户前台
DNS管理、个人中心、邀请系统
config/
配置文件
数据库、邮件、API配置
includes/
公共功能
通用函数、验证码、用户组
assets/
静态资源
CSS样式、JavaScript、图片
data/
数据存储
SQLite数据库、日志文件
安全层
防护措施
实现方式
安全等级
📧 邮箱验证
注册、密码重置、邮箱更换
PHPMailer + SMTP
⭐⭐⭐⭐⭐
🖼️ 图形验证码
防止自动化攻击
GD库生成验证码
⭐⭐⭐⭐
🔑 密码强度
强制密码复杂度
正则表达式验证
⭐⭐⭐⭐
🔒 用户组权限
细粒度权限控制
数据库权限表
⭐⭐⭐⭐⭐
审计项目
记录内容
存储方式
保留时间
📝 操作日志
所有关键操作记录
SQLite数据库
永久保存
🔍 IP追踪
操作来源IP地址
数据库记录
永久保存
⏰ 时间戳
精确操作时间
数据库时间戳
永久保存
👤 用户标识
操作用户信息
用户ID关联
永久保存
保护类型
实现方式
技术细节
安全等级
🔐 密码加密
PHP内置密码哈希
password_hash()
⭐⭐⭐⭐⭐
🛡️ SQL注入防护
预处理语句
PDO/SQLite3
⭐⭐⭐⭐⭐
🚫 XSS防护
输出内容转义
htmlspecialchars()
⭐⭐⭐⭐
🔒 文件访问控制
伪静态规则
Nginx/Apache
⭐⭐⭐⭐
界面特色
技术实现
用户体验
🌙 深色主题
CSS3 + 毛玻璃效果
现代科技风格,护眼舒适
📱 响应式设计
Bootstrap 5 + 媒体查询
完美适配手机、平板、桌面
⚡ 快速操作
jQuery + AJAX
一键DNS记录管理,实时反馈
🎨 毛玻璃效果
backdrop-filter
现代化视觉层次,科技感十足
管理功能
界面特色
操作体验
📊 数据仪表板
卡片式布局 + 图表展示
直观的数据可视化
🛠️ 功能管理
模块化设计 + 统一风格
完整的系统管理功能
📈 统计分析
实时数据 + 趋势分析
详细的使用统计和报表
🔧 系统设置
分组配置 + 实时预览
便捷的系统参数调整
贡献类型
描述
如何参与
🐛 Bug报告
发现问题请提交Issue
GitHub Issues
✨ 功能建议
新功能想法和改进建议
GitHub Discussions
📝 文档改进
完善项目文档
Pull Request
💻 代码贡献
提交代码改进
Pull Request
# 1️⃣ Fork 项目到您的GitHub账户
# 2️⃣ 克隆您的Fork
git clone https://github.com/YOUR_USERNAME/cloudflare-DNS.git
cd cloudflare-DNS
# 3️⃣ 创建功能分支
git checkout -b feature/your-feature-name
# 4️⃣ 开发和测试
# 5️⃣ 提交Pull Request
规范项目
要求
说明
代码风格
PSR-4 标准
遵循PHP编码规范
提交信息
清晰描述
使用英文描述变更内容
测试覆盖
功能测试
确保新功能正常工作
文档更新
同步更新
新功能需要更新文档
帮助方式
描述
响应时间
适用场景
📖 项目文档
查看Wiki和README
即时
基础配置问题
💬 QQ交流群
实时技术交流
1-2小时
复杂技术问题
🐛 GitHub Issues
问题报告和追踪
1-3天
Bug报告和功能请求
📧 邮件支持
一对一技术支持
1-2天
商业技术支持
📧 如何配置SMTP邮件发送?
配置步骤:
登录管理后台 → SMTP设置
填写邮箱服务器信息(服务器、端口、用户名、密码)
选择加密方式(SSL/TLS)
发送测试邮件验证配置
保存设置即可使用
常见邮箱配置:
QQ邮箱:smtp.qq.com:465 (SSL)
Gmail:smtp.gmail.com:465 (SSL)
163邮箱:smtp.163.com:465 (SSL)
🌐 如何添加Cloudflare域名?
操作步骤:
登录Cloudflare → My Profile → API Tokens
创建Custom token,权限:Zone:Read, DNS:Edit
后台"管理CF账户" → 添加账户
使用"获取域名"功能导入域名
在用户前台选择域名使用
注意事项:
确保API Token有足够权限
域名必须在Cloudflare账户中
检查域名状态是否正常
📝 如何自定义邮件模板?
编辑步骤:
进入后台"SMTP设置"
点击"邮件模板"按钮
选择要编辑的模板类型(注册、密码重置等)
修改HTML模板内容
保存模板即可生效
模板变量:
{$username} - 用户名
{$code} - 验证码
{$change_time} - 修改时间
本项目采用 非商业许可证 ,禁止商业用途。
协议条款
说明
❌ 商业使用
禁止 在商业项目中使用
✅ 修改
允许修改源代码
✅ 分发
允许分发和传播
✅ 私人使用
允许私人使用
✅ 学习研究
允许学习和研究用途
📝 许可证和版权声明
必须包含原始许可证和版权声明
本项目仅供学习和研究使用,禁止任何形式的商业用途!
🚫 禁止商用 :不得用于任何商业项目
🚫 禁止盈利 :不得通过本项目获取商业利益
🚫 禁止销售 :不得将本项目作为商品销售
✅ 允许学习 :可以用于学习和技术研究
✅ 允许修改 :可以修改源代码用于学习
感谢所有为这个项目做出贡献的开发者、测试者和用户!
⭐ 如果这个项目对您有帮助,请给我们一个Star支持!
Made with ❤️ by 六趣M