文件

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 安裝。

與其他功能配合

  • 網域生效後,伺服器頁 QR Code 的連線類型可切換為 DDNS 網域,用戶端掃碼即得網域連線;
  • 其他伺服器可把 wss://你的網域:連接埠 填入中繼位址,讓中繼鏈路也走網域(見「中繼」章節)。