コンテンツにスキップ
↑↓移動 ↵開く esc閉じる

トンネル

トンネルは OpenChamber へのリンクです。別ネットワークの普通のブラウザから、または Tailscale Serve なら tailnet 内のどのデバイスからでもアクセスできます。実行中のインスタンスに対して作成するには openchamber tunnel を使います。

自分のデバイス(モバイルアプリ、別のデスクトップ)の接続には、通常トンネルは不要です。代わりに ペアリング して、エンドツーエンド暗号化の Private Relay にセットアップ不要で外出先アクセスを任せましょう。

前提条件

OpenChamber はあなたのマシン上でトンネルプロバイダー CLI を起動します。使いたいプロバイダーを先にインストールしてください。

Terminal window
brew install cloudflared
brew install ngrok

Tailscale を使う場合は、Tailscale アプリをインストールしてサインインします。 Mac ではアプリだけで十分です。OpenChamber はアプリ内のコマンドラインツールを見つけます。

Cloudflare quick tunnel は cloudflared で実行できます。Ngrok には ngrok アカウントと ngrok ダッシュボードの authtoken が必要です。

Terminal window
ngrok config add-authtoken <your-ngrok-token>

クイックスタート

  1. OpenChamber を起動します。
Terminal window
openchamber

この手順を省いた場合、openchamber tunnel start は CLI サーバーを自動起動できます。自動起動時には --port、--host、--lan、--ui-password、--api-only などのサーバーオプションを渡せます。

  1. Cloudflare トンネルを開始します。
Terminal window
openchamber tunnel start --provider cloudflare --mode quick

または Ngrok トンネルを開始します。

Terminal window
openchamber tunnel start --provider ngrok --mode quick

または、Tailscale Serve で tailnet 内のデバイスと共有します。

Terminal window
openchamber tunnel start --provider tailscale --mode serve
  1. 状態を確認します。
Terminal window
openchamber tunnel status

トンネルが起動すると、status に公開 URL が表示されます。それを開くか QR コードをスキャンすると、どこからでも OpenChamber にアクセスできます。

デフォルトでは、OpenChamber は対話型 TTY セッションで QR コードを表示します。QR 出力を強制するには --qr、無効にするには --no-qr を使います。

プロバイダー

  • cloudflare: quick、managed remote、managed local モード
  • ngrok: quick モード
  • tailscale: tailnet 内のデバイスからだけ開ける serve モードと、インターネット全体から開ける funnel モード

Tailscale

どちらのモードも https://laptop.example.ts.net のようなマシンの tailnet アドレスを使います。ポートは --https-port で 443(既定)、8443、10000 から選びます。Tailscale が 443 で別のものをすでに共有している場合に変更してください。

初回は、Tailscale が tailnet で HTTPS(Serve の場合)または Funnel を有効にするよう求めます。OpenChamber は停止して Tailscale のリンクを表示します。リンクを開いて承認し、トンネルをもう一度開始してください。Linux では、ポートを共有できるのは root か Tailscale のオペレーターだけです。sudo tailscale set --operator=$USER で一度だけ自分をオペレーターにします。

トンネルを停止すると、OpenChamber が Tailscale で共有したものだけが削除され、ほかの Tailscale の設定はそのまま残ります。

管理対象モード

Managed remote

Cloudflare が管理する token + hostname を使います。

Terminal window
openchamber tunnel start --provider cloudflare --mode managed-remote --token-file ~/.secrets/cf-token --hostname app.example.com

Managed local

ローカルの cloudflared 設定を使います。

Terminal window
openchamber tunnel start --provider cloudflare --mode managed-local --config ~/.cloudflared/config.yml

プロファイル(managed-remote)

再利用可能なプロファイルを保存します。

Terminal window
openchamber tunnel profile add --provider cloudflare --mode managed-remote --name prod-main --hostname app.example.com --token-file ~/.secrets/cf-token

保存したプロファイルで起動します。

Terminal window
openchamber tunnel start --profile prod-main

便利なコマンド

Terminal window
openchamber tunnel providers
openchamber tunnel ready --provider cloudflare
openchamber tunnel ready --provider ngrok
openchamber tunnel doctor --provider cloudflare
openchamber tunnel doctor --provider ngrok
openchamber tunnel doctor --provider tailscale
openchamber tunnel stop --port 3000

動作メモ

  • OpenChamber インスタンス(ポート)ごとにアクティブなトンネルは 1 つです
  • 同じインスタンスで新しい mode/provider を開始すると、前のトンネルは置き換えられます
  • 新しい接続リンクを生成すると、以前の未使用リンクは無効化されます
  • トンネルの自動起動は、restart/update フローで使うインスタンス設定に --ui-password や --api-only などのサーバーフラグを保持します

関連