ドキュメント

ポートフォワーディング

ポートフォワーディングは、サーバーマシン上で動作する HTTP サービス(開発サーバー、デバイス管理ページなど、http://localhost:ポート で待ち受けるもの)を専用の TLS ポートで公開します。サーバーに到達できるデバイスなら、ブラウザーで https://<サーバーアドレス>:<ポート>/ を開くだけでアクセスできます。

仕組み

  • 各転送はターゲットポート(このマシン上の HTTP サービス)を、設定されたポート範囲(既定 62000–62999)から割り当てられた転送ポートに対応させます;
  • 転送ポートは TLS で通信します。すべてのトラフィックはサーバーの自己署名証明書で暗号化され、信頼できないネットワーク上でも平文は一切流れません;
  • サーバーに到達できるすべてのデバイス(LAN 内、またはルーターでポート範囲を転送した後はインターネットから)が https://<サーバーアドレス>:<転送ポート>/ を開くと、ローカルサービスにたどり着きます。

転送はオンデマンドで作成されます。リモート(リレー)サーバー上の HTTP サーバーでホスト ファイル共有が自動的に転送を要求し、開ける URL を提供します。手動設定は不要です。

転送の管理

Web UI — ポートフォワーディングセクション:ポート範囲の設定と有効な転送リスト
  1. サーバーの Web UI で ポートフォワーディング セクションを開きます。
  2. ポート範囲の設定 は転送ポートの割り当て元となる範囲です。変更は自動保存されます。ファイアウォールやルーターが転送できるポートが少ない場合は絞ってください。
  3. 有効なリストには、各転送が :転送ポート → :ターゲットポート とアクティブな接続数とともに表示されます。
  4. 転送の停止ボタンを押すとリスナーが即座に取り除かれ、アクティブな接続が切断されます。次回の共有では新しいポートが割り当てられます。更新 でリストを再読み込みします。

証明書の警告

転送はサーバー自身の自己署名証明書で暗号化されます —— Web UI やクライアント接続を保護しているのと同じ証明書です。ブラウザーは証明書を認証局で検証できないため、転送 URL への初回アクセス時にはプライバシー警告(安全な接続ではありません)が表示されます。これは想定どおりで、クリックして進んでも安全です。暗号化自体は問題なく、証明書の発行元を機械的に検証できないだけです。警告を恒久的に消すには、サーバー証明書をデバイスの信頼ストアにインポートしてください。

ブラウザー — 自己署名証明書の警告。「詳細設定 → 続行する」でページを開けます

macOS で Chrome が ERR_ADDRESS_UNREACHABLE を表示する

macOS 15(Sequoia)以降では、サードパーティ製アプリがローカルネットワーク上のデバイス(192.168.x.x や 10.x.x.x などのアドレス)にアクセスするには明示的な許可が必要です。Safari はシステムアプリのためこの制限を受けないので、転送 URL は Safari では開けるのに、Chrome では TLS が始まる前に ERR_ADDRESS_UNREACHABLE と表示されることがあります。これは証明書の問題でも、転送自体の問題でもありません。

Chrome にアクセスを許可するには:

  1. システム設定 → プライバシーとセキュリティ → ローカルネットワーク を開きます。
  2. リストで Google Chrome を探し、オンにします。
  3. Chrome を完全に終了し(Cmd+Q。ウィンドウを閉じるだけでは不十分です)、再起動します。

すでにオンになっている場合は、一度オフにしてから再度オンにしてください —— Chrome や macOS のアップデート後にこのトグルが機能しなくなることがあります。それでもエラーが解消しない場合は、プライベートアドレス範囲をルーティングしない VPN やプロキシ拡張機能が Chrome にないか確認してください。

アクセス制御

転送ポートを守るものは、その背後にあるもので決まります:

  • 内蔵の共有にはトークンが必須です。 クライアントが生成する共有リンク —— HTTP サーバーでホスト による共有(?share_token=…)と Settings ページ(?ticket=…)—— にはアクセストークンが含まれています。有効なトークンもセッションも持たない接続は、何も返される前に切断されます。初回アクセス時にブラウザはこのトークンを、そのサービス専用の安全なセッション Cookie と交換し、トークンは URL から取り除かれます —— アドレスバーにも履歴にも残りません。

  • トークンは使い捨てで短命です。 Settings の ticket は一度しか使えず、1 分で失効します。共有を停止または再起動すると、以前のリンクとセッションは使えなくなります。完全なリンクを認証情報として扱い —— 持っている人は誰でもそのサービスにアクセスできます —— 信頼できる相手にのみ共有してください。

  • 独自のサービスには独自の認証を。 他のローカルサービスへの転送は、サーバーの自己署名証明書でトラフィックを暗号化しますが、認証は追加しません:そのサービスが提供するすべての内容(ページも API も)は、そのポートに到達できる全員に公開されます。機密性の高いサービスを公開する前に、認証を設定してください。