ドキュメント

DDNS

家庭やオフィスの回線は通常、予告なく変わる動的グローバル IP を持っています。DDNS は固定ドメインをマシンの現在の IP に向け続けます — クライアントや他のサーバーはアドレスではなく名前だけ覚えればよいのです。

仕組み

DDNS アーキテクチャ — マネージャーが周期的にローカル IP を検出、アドオンがプロバイダー API で DNS レコードを更新、クライアントはドメインで接続

パイプライン全体がサーバーのバックグラウンドで自動実行されます:

  1. DDNS マネージャー は固定サイクル(デフォルト 5 分ごと、TERMINAL_SERVER_DDNS_POLL_INTERVAL_SECS 環境変数で調整可能)で更新します。設定の保存は即時更新を引き起こし、サービス無効中は何も動きません;
  2. ローカル IP 検出 は選択されたネットワークインターフェースを読み、必要ならルートベースの検出にフォールバックし、結果を IP Family 設定(IPv4 / IPv6 / デュアル)でフィルタします;
  3. DDNS アドオン — サンドボックス化された JS スクリプト — が復号された設定と現在の IP を受け取り、DNS プロバイダーの API を HTTP で呼びます。例えば内蔵の Cloudflare アドオンはドメインでゾーンを検索し、A / AAAA レコードを現在の IP に書き換え、アドレスファミリが消えたときに古いレコードを削除します;
  4. クライアント はドメインを最新の IP に解決し、名前で接続します。

設定

Web UI の DDNS セクションを開きます:

  1. Enable をオンにします。入力中はサービスをオフのままにしても構いません — 無効なサービスは設定を保存するだけで実行はしません;
  2. Provider の下でプロバイダーを選択。Cloudflare DDNS が内蔵されています;
  3. プロバイダーのフィールドを入力します(Cloudflare の例):
    • Email — Cloudflare アカウントのメール;
    • API Token — Zone → DNS → Edit 権限のあるトークン;
    • Domain — ゾーンのルートドメイン、例: example.com;
    • Subdomain — ゾーン内のレコード名。sub.example.com なら sub。ゾーンルートには空のまま;
  4. Network Interface & IP で Interface と IP Family を選択。Dual Stack には、インターフェースが IPv4 と IPv6 の両アドレスを持つ必要があります;
  5. Save をクリックし、Sync Now で検証します。Sync Status に最後にプッシュされた IP と同期時刻が表示され、失敗時はアドオンのエラーメッセージも表示されます。

セキュリティ

プロバイダーの認証情報(API トークン)は保存前に暗号化され(enc-v2:)、アドオン実行中のみメモリ上で復号されます。アドオンはサンドボックス化された JS ランタイムで実行され、外向き HTTP のみが能力です。

プロバイダーの拡張

プロバイダーはアドオンです:JSON マニフェスト(Web UI がフォームに変換する設定フィールドを宣言)+ run() を公開する JS スクリプト。内蔵の cloudflare-ddns がリファレンス実装です — カスタムプロバイダーは Addons セクションで zip としてアップロードできます。

他機能との連携

  • ドメインが解決されるようになると、Server セクションの QR コードは Connection Type を DDNS Domain に切り替えられ、クライアントはドメイン接続をスキャンします;
  • 他のサーバーは Relay Address に wss://your-domain:port を入力して、ドメイン越しにリレーチェーンを走らせられます(Relay の章を参照)。