# dnsadmin **Repository Path**: ip997com/dnsadmin ## Basic Information - **Project Name**: dnsadmin - **Description**: 一个功能完整的多云域名解析管理平台,支持阿里云、腾讯云、华为云、火山引擎等主流云服务商。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-10 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DNS管理系统 一个功能完整的多云域名解析管理平台,支持阿里云、腾讯云、华为云、火山引擎等主流云服务商。 ## 🌟 特性 - **多云支持**: 统一管理多个云服务商的DNS解析 - **现代界面**: 白色背景,色彩丰富,简约清晰的用户界面 - **安全可靠**: 密钥加密存储,操作日志记录 - **响应式设计**: 完美支持桌面和移动端 - **实时同步**: 支持从云端同步DNS记录 ## 🚀 支持的云服务商 - ✅ **阿里云** (Alibaba Cloud) - ✅ **腾讯云** (Tencent Cloud) - 🚧 **华为云** (Huawei Cloud) - 🚧 **火山引擎** (ByteDance Cloud) ## 📋 功能模块 ### 1. 云账号管理 - 添加/编辑/删除云服务商账号 - 密钥加密存储 - 多账号支持 ### 2. 域名管理 - 域名添加和管理 - 与云账号关联 - 支持Zone ID配置 ### 3. DNS记录管理 - 支持A、AAAA、CNAME、MX、TXT等记录类型 - 从云端同步DNS记录 - 创建、修改、删除DNS记录 ### 4. 操作日志 - 详细的操作记录 - IP地址追踪 - 操作类型分类 ## 🛠️ 技术架构 - **后端**: Python + Django 5.2.5 - **前端**: Bootstrap 5 + 现代CSS - **数据库**: SQLite (可扩展到PostgreSQL/MySQL) - **云SDK**: 各大云服务商官方SDK ## 📦 安装部署 ### 环境要求 - Python 3.8+ - pip (Python包管理器) ### 1. 克隆项目 ```bash git clone cd dnsadmin ``` ### 2. 安装依赖 #### 生产环境 ```bash pip install -r requirements.txt ``` #### 开发环境 (包含额外开发工具) ```bash pip install -r requirements-dev.txt ``` #### 验证安装 安装完成后,可以运行依赖检查脚本: ```bash python check_dependencies.py ``` #### 主要依赖包 - **Django 5.2.5**: Web框架 - **django-crispy-forms**: 表单美化 - **cryptography**: 加密库 - **aliyun-python-sdk-***: 阿里云SDK (稳定版) - **tencentcloud-sdk-python**: 腾讯云SDK - **PyMySQL**: MySQL数据库连接 > **注意**: 项目使用稳定的阿里云旧版SDK,如遇到新版SDK问题请使用requirements.txt中指定的版本。 ### 3. 数据库迁移 ```bash python manage.py makemigrations python manage.py migrate ``` ### 4. 创建管理员 ```bash python create_admin.py ``` 默认账号:`admin` / `admin123456` ### 5. 启动服务 ```bash python manage.py runserver ``` 访问 http://127.0.0.1:8000 ## 📝 使用说明 ### 首次使用 1. **登录系统**: 使用管理员账号登录 2. **添加云账号**: 在"云账号管理"中添加您的云服务商API密钥 3. **添加域名**: 在"域名管理"中添加要管理的域名 4. **同步记录**: 点击"同步记录"从云端获取现有DNS记录 5. **管理解析**: 创建、修改或删除DNS解析记录 ### 云服务商配置 #### 阿里云 - 地域建议: `cn-hangzhou` - 需要RAM权限: `AliyunDNSFullAccess` #### 腾讯云 - 地域建议: `ap-beijing` - 需要CAM权限: `QcloudDNSPodFullAccess` ## 🔧 故障排除 ### 常见问题 #### 1. SDK导入错误 ``` No module named 'alibabacloud_alidns20150109' ``` **解决方案**: 项目使用稳定的旧版SDK,请安装: ```bash pip install aliyun-python-sdk-alidns aliyun-python-sdk-core ``` #### 2. 腾讯云SDK问题 ``` No module named 'tencentcloud.common' ``` **解决方案**: 重新安装腾讯云SDK: ```bash pip uninstall tencentcloud-sdk-python -y pip install tencentcloud-sdk-python ``` #### 3. Fernet加密密钥错误 ``` Fernet key must be 32 url-safe base64-encoded bytes ``` **解决方案**: 确保环境变量FERNET_KEY正确设置,或者系统会自动生成。 ### SDK版本说明 - **阿里云**: 使用 `aliyun-python-sdk-*` 系列 (旧版SDK) - **腾讯云**: 使用 `tencentcloud-sdk-python` 最新版 ## 🔧 开发说明 ### 项目结构 ``` dnsadmin/ ├── dns_manager/ # 主应用 │ ├── models.py # 数据模型 │ ├── views.py # 视图逻辑 │ ├── forms.py # 表单定义 │ ├── cloud_providers.py # 云服务商接口 │ └── admin.py # 管理界面 ├── templates/ # HTML模板 ├── static/ # 静态资源 └── dnsadmin/ # 项目配置 ``` ### 扩展云服务商 要添加新的云服务商支持,需要: 1. 在 `cloud_providers.py` 中继承 `BaseDNSProvider` 2. 实现必要的抽象方法 3. 在 `get_dns_provider` 工厂方法中注册 4. 更新模型中的 `CloudProvider` 选择项 ### 自定义样式 主要样式文件: - `static/css/main.css` - 主样式文件 - `static/js/main.js` - 主JavaScript文件 ## 🛡️ 安全考虑 - 云服务商密钥采用Fernet加密存储 - 所有操作记录用户和IP地址 - 表单包含CSRF保护 - 生产环境建议使用HTTPS ## 📄 许可证 本项目采用MIT许可证开源。 ## 🤝 贡献 欢迎提交Issue和Pull Request来改进这个项目! ## 📞 支持 如有问题,请通过以下方式联系: - 提交GitHub Issue - 发送邮件至项目维护者 --- 🌐 DNS管理系统 - 让多云DNS管理变得简单高效!