文档

DDNS 动态域名

家庭和办公宽带通常拿到的是动态公网 IP,地址随时会变。DDNS(动态域名)让一个固定域名始终指向本机的当前 IP——客户端和其他服务器只需记住域名,无需追踪地址变化。

工作原理

DDNS 架构 —— 管理器定期检测本机 IP,插件调用 DNS 服务商 API 更新记录,客户端按域名连接

整个过程在服务器后台自动循环:

  1. DDNS 管理器按固定周期刷新(默认每 5 分钟,可用环境变量 TERMINAL_SERVER_DDNS_POLL_INTERVAL_SECS 调整);保存配置后也会立即刷新一次,未启用服务时不会执行;
  2. 检测本机 IP:优先读取所选网卡的地址,取不到时按默认路由探测,并按 IP 族 设置(IPv4 / IPv6 / 双栈)过滤;
  3. 运行 DDNS 插件:插件是沙箱中的 JS 脚本,拿到解密后的配置与当前 IP,通过 HTTP 调用 DNS 服务商 API。以内置的 Cloudflare 插件为例:按域名查找 Zone,把 A / AAAA 记录改为当前 IP;若某个地址族消失,还会删除对应的过期记录;
  4. 客户端解析域名即得到最新 IP,按域名建立连接。

配置步骤

打开 Web 界面的 DDNS 设置页:

  1. 打开 启用 开关。也可以先保持关闭,把各项配置填好再启用——服务未启用时只保存配置,不会执行;
  2. 服务商 选择 DDNS 插件,内置 Cloudflare DDNS;
  3. 填写插件配置(以 Cloudflare 为例):
    • Email —— Cloudflare 账户邮箱;
    • API Token —— 具有 Zone → DNS → Edit 权限的令牌;
    • Domain —— 区域根域名,如 example.com;
    • Subdomain —— 区域下的记录名,例如 sub.example.com 应填 sub;留空表示根域;
  4. 在 网络接口与 IP 区块选择 网卡 和 IP 族。双栈 要求所选网卡同时具有 IPv4 和 IPv6 地址;
  5. 点击 保存,再点 立即同步 验证。同步状态 会显示最近一次推送的 IP 与同步时间,失败时会给出插件的错误信息。

安全

服务商凭据(API Token 等)保存前经过加密(enc-v2:),仅在插件运行时于内存中解密;插件在沙箱 JS 运行时中执行,只能通过受控的 HTTP 接口访问外部 API。

扩展服务商

DDNS 服务商以插件形式实现:一个 JSON 清单(声明配置字段,Web 界面据此自动生成表单)加一个暴露 run() 的 JS 脚本。内置的 cloudflare-ddns 即为参考实现;自定义插件可在 插件 页面上传 zip 安装。

与其他功能配合

  • 域名生效后,服务器 页二维码的 连接类型 可切换为 DDNS 域名,客户端扫码即得域名连接;
  • 其他服务器可把 wss://你的域名:端口 填入 中继地址,让中继链路也走域名(见「中继」章节)。