AZhai‑Sub阿宅二级域名分发系统|轻量化全开源私有二级域名管理平台


在站长运维场景当中,二级域名分配管理一直是比较高频的需求,很多人希望拥有类似 us.kg 的自建二级域名服务,不用搭建复杂NS服务器,就可以对外分配、托管大量子域名资源。今天给大家分享一套轻量化全开源项目——AZhai‑Sub阿宅二级域名管理器,这套系统可以直接复用自己已有的主域名资源,实现二级域名自助申请、审核、解析管控、SSL证书一键申请等全套业务,非常适合个人站长、小团队搭建自用或者小规模对外提供二级域名服务。
和市面上许多二次修改、功能臃肿的域名分发程序不一样,AZhai‑Sub主打轻量化路线,代码开源透明,没有多余加密组件,不需要部署独立DNS Nameserver。只要你手上持有一个主域名,就可以开放用户申请子域名。举个简单例子:你的主域为xxx.com,普通用户提交申请 you.xxx.com,系统就可以接管 *.you.xxx.com 全部泛子域名的解析管控工作,大幅降低自建二级域名平台的门槛。

一、系统核心功能概览

1、二级域名全生命周期管控

系统完整覆盖从用户提交申请、管理员后台审核,到域名启用、暂停、销毁回收的整套流程。普通用户在前台提交二级域名申请,由管理员进行人工审核,审核通过之后方可使用该子域名资源,避免域名资源被恶意占用。同时支持对已经分配出去的域名随时暂停或者恢复解析,方便处理违规、闲置域名。

2、多类型DNS解析记录管理

内置解析管理面板,支持 A、AAAA、CNAME、TXT 主流解析记录类型,用户可以在权限范围内自由修改解析指向。需要注意,根域名TXT验证记录无法由普通用户直接添加,需要提交申请之后由管理员手动操作完成,兼顾灵活性与安全风险控制。解析配置修改完成后,系统会自动同步到对接的第三方DNS服务商,无需人工登录云厂商控制台操作。

3、SSL证书自助申请,支持HTTPS访问

为了解决子域名HTTPS部署麻烦的痛点,AZhai‑Sub内置SSL证书申请模块。分配得到二级域名的用户,可以直接在面板内发起证书申请,给自己的子域名配置HTTPS加密访问,省去手动去证书平台申请、下载、部署的繁琐步骤,让分配出去的子域名开箱即可支持加密访问。

4、多厂商DNS服务商对接

系统并不强制绑定某一家DNS平台,目前原生支持 Cloudflare、阿里云DNS、腾讯云DNS、华为云DNS、西部数码DNS等主流服务商,只需要填入对应平台API密钥即可完成对接。后续版本还会持续扩充更多DNS服务商适配,方便站长根据自身域名托管位置灵活选择后端解析源。

5、完整后台管理与OAuth登录拓展

  • 管理员后台:集中管控用户账号、域名资源池、DNS服务商接口、全部操作日志记录,所有变更行为留有日志便于追溯排查问题。
  • 阿宅OAuth登录:支持对接阿宅OAuth2.0账号中心,开启之后用户可以直接使用阿宅账号一键登录系统,不用重复注册本地账号,适合多系统统一账号体系的场景。
  • 在线升级功能:后台内置系统更新检测,一键获取新版本并且完成升级,不需要手动下载源码覆盖上传,降低后期维护成本。

二、运行环境要求

项目技术栈采用PHP8 + MySQL8组合,对服务器配置要求并不苛刻,普通云服务器、虚拟主机基本都可以满足条件。只需要确保服务器PHP版本不低于PHP8,数据库使用MySQL8版本,做好网站伪静态配置,即可正常运行整套业务系统。因为不需要自建DNS服务,省去了搭建BIND等DNS服务程序的复杂操作,新手上手难度大大降低。

三、简易安装部署步骤

步骤1:上传源码包,将完整项目文件上传至网站运行目录并且解压。
步骤2:数据库初始化,在MySQL中新建数据库,把项目包内 database.sql 文件导入数据库完成数据表初始化。
步骤3:修改配置文件,编辑 config.php 配置文件,填入数据库地址、账号、库名、密码;如果计划启用阿宅OAuth登录,在此处填写申请得到的OAuth密钥参数。
步骤4:登录管理后台,后台访问地址为 你的域名/admin。默认管理员账号:azhai,默认密码:azhai123。强烈建议首次登录后立刻修改默认管理员密码,避免站点被入侵风险。
步骤5:后续配置,登录后台之后,添加对应的DNS服务商API信息,导入主域名资源池,配置完成就可以开放用户提交二级域名申请使用。需要升级系统直接在后台“系统更新”模块检测更新一键升级。

四、适用使用场景

  • 个人站长自用:给自己、团队小伙伴批量分配二级域名,统一管理解析,省去反复登录云DNS控制台。
  • 小型服务搭建:搭建私有二级域名分发服务,对内小范围开放子域名申请。
  • 项目开发测试环境:给测试项目、演示站点快速分配独立子域名,统一管控生命周期。
  • 搭配其他程序联动:依托OAuth能力,可以和其他自研站点打通统一账号登录体系。

五、项目优缺点总结

相比网上很多开心版、二开版二级域名分发源码,AZhai‑Sub最大亮点就是轻量化、全开源、不用自建NS服务器,部署简单,解析依托各大云厂商成熟DNS服务,解析稳定性有保障。整套系统聚焦二级域名分配与解析管理核心需求,没有堆砌无关臃肿的商城、财务模块,代码干净适合进一步二次开发定制。
同时也要客观说明,系统需要依赖第三方DNS服务商开放API接口完成解析同步,需要你自己持有可以正常解析的主域名资源;TXT根记录需要管理员人工介入审核添加,在部分特殊验证场景会多一步操作。
总体来看,如果想要低成本搭建一套私有化二级域名分发管理平台,又不想折腾复杂DNS服务部署,这套AZhai‑Sub是非常值得尝试的轻量化开源方案。
高风险

源码安全检测报告

已检测
30/100
检测引擎 srcscan/1.3报告编号 SC-20260921-3076D2检测时间 2026-09-21 20:49:45内容发布 2026-09-21 18:31:49AZhai‑Sub阿宅二级域名分发系统|轻量化全开源私有二级域名管理平台
2高危
10中危
3低危
5提示
结构概览文件 63体积 21.4 MB代码文件 51代码行 27,573含授权文件
按类别风险项 4参与评分部署加固建议 3不扣分来源情报 3不扣分
后门特征排查8 项特征全部未发现
  • 请求参数直接进入执行函数未发现
  • 请求参数直接进入文件包含未发现
  • 变量函数执行请求参数未发现
  • 请求参数批量覆盖变量未发现
  • 编码载荷后执行(混淆特征)未发现
  • 回连裸 IP 地址未发现
  • 配置预加载文件(隐蔽后门手法)未发现
  • 向文件写入 PHP 代码未发现
命中明细共 20 项仅展示前 12 项
风险项参与评分
  • 远程升级 / 授权下发地址config.php:44

    配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。

    'check_url' => 'https://update.azhai.de/api/check.php',   ← 与「远程下发并覆盖站点文件」同源,仅作线索保留

    建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。

  • 远程升级 / 授权下发地址config.php:46

    配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。

    'download_url' => 'https://update.azhai.de/api/download.php',   ← 与「远程下发并覆盖站点文件」同源,仅作线索保留

    建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。

  • 硬编码的长令牌 / 密钥config.php:48

    配置里直接写入 32 位以上的真实令牌(非 CHANGE_THIS 占位符)。这类凭据会随源码包一起分发,所有拿到包的人都持有同一枚密钥,等于共享口令;若厂商服务端做校验,还存在被冒用的风险。

    'token' => 'a3896c4716bb19974e5f7563fbe1efe3095fe473f77a9ac365fadde289d31dad',

    建议:把令牌移到配置项或环境变量里,并且立刻轮换这个已经外泄的值。

  • 远程升级 / 授权下发地址config.php:62

    配置中声明了远程检查更新或下载升级包的地址。若同时存在「下载 → 解压 → 覆盖站点文件」的逻辑,则厂商(或劫持该域名的人)可随时向你的站点写入任意 PHP 文件,属于可远程控制的交付通道。

    'authorize_url' => 'https://oauth.azhai.de/authorize.php',   ← 与「远程下发并覆盖站点文件」同源,仅作线索保留

    建议:核实域名归属:是不是作者自有域名?不是自有域名的升级/授权地址要特别警惕,建议直接移除或改成本地升级。

  • X-Forwarded-For 无条件覆盖客户端 IPincludes\database.php:46

    直接用 X-Forwarded-For 覆盖 REMOTE_ADDR 且未校验来源是否为可信代理。该请求头由客户端自行发送、可任意伪造,会导致:IP 黑名单 / 限流被绕过、操作日志记录的 IP 全部失真(出事后无法溯源)。若站点确实在反向代理后,必须把代理 IP 列入白名单后再信任该头。

    $_SERVER['REMOTE_ADDR'] = trim($get_HTTP_X_FORWARDED_FOR[0]);

    建议:只在明确可信的反向代理之后才解析 X-Forwarded-For,并且取最后一段可信 IP;其余情况一律用 REMOTE_ADDR。

  • 远程下发并覆盖站点文件(可远程控制通道)includes\updater.php:25

    该文件同时具备:从远程地址下载内容 + 解压/写入 + 覆盖站点目录。这构成一条厂商(或劫持者)可随时向你站点写入任意代码的通道。若下载内容未强制校验签名/哈希,风险等同预留后门;即便有哈希,也应视为「厂商保留的远程控制能力」并明确告知买家。

    下载远程包 + ZipArchive 解压 + 覆盖 dirname(__DIR__) 站点目录

    建议:这是可远程控制站点文件的通道,强烈建议整段移除。短期无法移除时,至少加上下载包签名校验与下载域名白名单,并且不要覆盖站点根目录。

部署加固建议不扣分
  • 疑似硬编码凭据config.php:33

    源码里写死的密码、密钥或令牌。买家拿到包就等于拿到凭据,建议改为配置文件并提示用户修改。

    'app_key' => 'CHANGE_THIS_TO_A_RANDOM_64_CHARACTER_SECRET',

    建议:先确认是不是占位符(例如 CHANGE_THIS…)。如果是真实凭据,移出代码库并轮换;如果是示例值,注释里写明。

  • 疑似硬编码凭据config.php:60

    源码里写死的密码、密钥或令牌。买家拿到包就等于拿到凭据,建议改为配置文件并提示用户修改。

    'client_secret' => '去oauth.azhai.de申请阿宅登录',

    建议:先确认是不是占位符(例如 CHANGE_THIS…)。如果是真实凭据,移出代码库并轮换;如果是示例值,注释里写明。

  • 数据库脚本内置默认管理员账号database.sql:42

    随包分发的 SQL 里带着可直接登录的后台管理员密码哈希。若安装后不修改,任何人都能用公开的默认口令进入后台,等于把后台交出去。

    INSERT INTO admin_users ... VALUES (... $2y$12$.rDJaZB3X0AyGOrhB0nMv.U.2Tu17Oj6zAxWKnM5IX3YuPmw0CW6G ...)

    建议:删掉 SQL 里内置的默认管理员账号与密码哈希,改成安装时强制设置管理员。默认账号是被人拿着现成密码直接进后台的入口。

  • 文件扩展名与实际内容不符assets\img\bg.jpg:1

    扩展名与文件真实格式不一致。多数情况只是命名不规范,但也可能是伪装——例如把脚本改名成图片以躲过检测。此处需确认该文件确实可正常解析。

    扩展名 .jpg 但实际是 .png

    建议:把文件扩展名改成与真实内容一致。扩展名与内容不符会绕过基于后缀的校验,也可能让服务器按错误类型解析。

来源情报不扣分
  • 解码 / 解压函数includes\functions.php:186

    编码本身是中性的(缓存、序列化、压缩、XML-RPC 都会用),但与 eval 相邻时风险陡增。本项仅提示,需结合上下文判断。

    $raw = base64_decode(

    建议:确认解码/解压的数据来源可信;尤其不要和 eval 之类组合出现,组合起来就是混淆执行。

  • 解码 / 解压函数includes\dns\DnsManager.php:3450

    编码本身是中性的(缓存、序列化、压缩、XML-RPC 都会用),但与 eval 相邻时风险陡增。本项仅提示,需结合上下文判断。

    base64_decode(

    建议:确认解码/解压的数据来源可信;尤其不要和 eval 之类组合出现,组合起来就是混淆执行。

本报告由 8号码库源码安全检测引擎(srcscan)静态扫描生成,用于上架前风险筛查,不构成安全保证。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注