OpenClawSkills
GitHub
Gateway / Operations • 5分で読める

Tailscale

Gateway ダッシュボード向けの統合 Tailscale Serve / Funnel。

OpenClaw は Tailscale Serve(テールネット)または Funnel(パブリック)を自動的に構成できます

Gateway ダッシュボードと WebSocket ポート。これにより Gateway はループバックにバインドされ、

Tailscale が HTTPS、ルーティング、(Serve の場合)ID ヘッダーを提供します。

Tutorial.step

モード

tailscale serve 経由のテールネットのみ。Gateway は 127.0.0.1 に留まります。

tailscale funnel 経由のパブリック HTTPS。OpenClaw は共有パスワードを必要とします。

デフォルト(Tailscale 自動化なし)。

Tutorial.step

Authentication

ハンドシェイクを制御するために gateway.auth.mode を設定します:

(OPENCLAW_GATEWAY_TOKEN が設定されている場合のデフォルト)

(OPENCLAW_GATEWAY_PASSWORD または設定の共有シークレット経由)

tailscale.mode = "serve" かつ gateway.auth.allowTailscale が true の場合、

有効な Serve プロキシリクエストは Tailscale ID ヘッダー経由で認証できます

(tailscale-user-login) トークン/パスワードを提供せずに。OpenClaw は検証します

ローカル Tailscale 経由で x-forwarded-for アドレスを解決して ID を識別し、

デーモン (tailscale whois) を使用してヘッダーと照合し、受け入れる前に確認します。

ループバックからリクエストが到着すると、OpenClaw はそれを Serve としてのみ扱います

Tailscale の x-forwarded-for、x-forwarded-proto、x-forwarded-host

ヘッダー。

明示的な認証情報を要求するには、gateway.auth.allowTailscale: false または

gateway.auth.mode: "password" を強制します。

Tutorial.step

Configuration examples

#

Tutorial.step

テールネットのみ(Serve)

Json5
{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "serve" },
  },
}

開く:https://<magicdns>/(または設定した gateway.controlUi.basePath)

#

Tutorial.step

テールネットのみ(Tailnet IP にバインド)

Gateway を Tailnet IP で直接リッスンしたい場合(Serve/Funnel なし)はこれを使用します。

Json5
{
  gateway: {
    bind: "tailnet",
    auth: { mode: "token", token: "your-token" },
  },
}

別の Tailnet デバイスから接続します:

コントロール UI:http://<tailscale-ip>:18789/

WebSocket:ws://<tailscale-ip>:18789

注意:ループバック(http://127.0.0.1:18789)はこのモードでは動作しません。

#

Tutorial.step

パブリックインターネット(Funnel + 共有パスワード)

Json5
{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "funnel" },
    auth: { mode: "password", password: "replace-me" },
  },
}

パスワードをディスクに保存するよりも OPENCLAW_GATEWAY_PASSWORD を優先します。

Tutorial.step

CLI examples

Bash
openclaw gateway --tailscale serve
openclaw gateway --tailscale funnel --auth password
Tutorial.step

Notes

Tailscale Serve/Funnel には tailscale CLI のインストールとログインが必要です。

tailscale.mode: "funnel" は、公開露出を避けるために認証モードが password でない限り起動を拒否します。

OpenClaw に tailscale serve を取り消させたい場合は、gateway.tailscale.resetOnExit を設定します

または終了時の tailscale funnel 設定。

gateway.bind: "tailnet" は直接 Tailnet バインディング(HTTPS なし、Serve/Funnel なし)。

gateway.bind: "auto" はループバックを優先します。Tailnet のみを使用する場合は tailnet を使用します。

Serve/Funnel は Gateway コントロール UI + WS のみを公開します。ノード接続は

同じ Gateway WS エンドポイント経由で行われるため、Serve をノードアクセスに使用できます。

Tutorial.step

ブラウザ制御(リモート Gateway + ローカルブラウザ)

1 台のマシンで Gateway を実行しているが、別のマシンからブラウザを操作したい場合、

ブラウザマシンで ノードホスト を実行し、両方を同じテールネットに保持します。

Gateway はブラウザ操作をノードにプロキシします。別のコントロールサーバーまたは serve URL は不要です。

ブラウザ制御には Funnel を避けてください。ノードペアリングをオペレーターアクセスとして扱います。

Tutorial.step

Tailscale の前提条件 + 制限

Serve にはテールネットの HTTPS が有効になっている必要があります。ない場合、CLI がプロンプトを表示します。

Serve は Tailscale ID ヘッダーを挿入します。Funnel は挿入しません。

Funnel には Tailscale v1.38.3+、MagicDNS、HTTPS 有効、Funnel ノード属性が必要です。

Funnel は TLS 上のポート 443、8443、10000 のみをサポートします。

macOS 上の Funnel にはオープンソースの Tailscale アプリバリアントが必要です。

Tutorial.step

Learn more

Tailscale Serve の概要:https://tailscale.com/kb/1312/serve

tailscale serve コマンド:https://tailscale.com/kb/1242/tailscale-serve

Tailscale Funnel の概要:https://tailscale.com/kb/1223/tailscale-funnel

tailscale funnel コマンド:https://tailscale.com/kb/1311/tailscale-funnel