ドキュメント
ポートフォワーディング
ポートフォワーディングは、サーバーマシン上で動作する HTTP サービス(開発サーバー、デバイス管理ページなど、http://localhost:ポート で待ち受けるもの)を専用の TLS ポートで公開します。サーバーに到達できるデバイスなら、ブラウザーで https://<サーバーアドレス>:<ポート>/ を開くだけでアクセスできます。
仕組み
- 各転送はターゲットポート(このマシン上の HTTP サービス)を、設定されたポート範囲(既定
62000–62999)から割り当てられた転送ポートに対応させます; - 転送ポートは TLS で通信します。すべてのトラフィックはサーバーの自己署名証明書で暗号化され、信頼できないネットワーク上でも平文は一切流れません;
- サーバーに到達できるすべてのデバイス(LAN 内、またはルーターでポート範囲を転送した後はインターネットから)が
https://<サーバーアドレス>:<転送ポート>/を開くと、ローカルサービスにたどり着きます。
転送はオンデマンドで作成されます。リモート(リレー)サーバー上の HTTP サーバーでホスト ファイル共有が自動的に転送を要求し、開ける URL を提供します。手動設定は不要です。
転送の管理
- サーバーの Web UI で
ポートフォワーディングセクションを開きます。 ポート範囲の設定は転送ポートの割り当て元となる範囲です。変更は自動保存されます。ファイアウォールやルーターが転送できるポートが少ない場合は絞ってください。- 有効なリストには、各転送が
:転送ポート → :ターゲットポートとアクティブな接続数とともに表示されます。 - 転送の停止ボタンを押すとリスナーが即座に取り除かれ、アクティブな接続が切断されます。次回の共有では新しいポートが割り当てられます。
更新でリストを再読み込みします。
証明書の警告
転送はサーバー自身の自己署名証明書で暗号化されます —— 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 にアクセスを許可するには:
システム設定→プライバシーとセキュリティ→ローカルネットワークを開きます。- リストで
Google Chromeを探し、オンにします。 - Chrome を完全に終了し(
Cmd+Q。ウィンドウを閉じるだけでは不十分です)、再起動します。
すでにオンになっている場合は、一度オフにしてから再度オンにしてください —— Chrome や macOS のアップデート後にこのトグルが機能しなくなることがあります。それでもエラーが解消しない場合は、プライベートアドレス範囲をルーティングしない VPN やプロキシ拡張機能が Chrome にないか確認してください。
アクセス制御
転送ポートを守るものは、その背後にあるもので決まります:
-
内蔵の共有にはトークンが必須です。 クライアントが生成する共有リンク ——
HTTP サーバーでホストによる共有(?share_token=…)と Settings ページ(?ticket=…)—— にはアクセストークンが含まれています。有効なトークンもセッションも持たない接続は、何も返される前に切断されます。初回アクセス時にブラウザはこのトークンを、そのサービス専用の安全なセッション Cookie と交換し、トークンは URL から取り除かれます —— アドレスバーにも履歴にも残りません。 -
トークンは使い捨てで短命です。 Settings の ticket は一度しか使えず、1 分で失効します。共有を停止または再起動すると、以前のリンクとセッションは使えなくなります。完全なリンクを認証情報として扱い —— 持っている人は誰でもそのサービスにアクセスできます —— 信頼できる相手にのみ共有してください。
-
独自のサービスには独自の認証を。 他のローカルサービスへの転送は、サーバーの自己署名証明書でトラフィックを暗号化しますが、認証は追加しません:そのサービスが提供するすべての内容(ページも API も)は、そのポートに到達できる全員に公開されます。機密性の高いサービスを公開する前に、認証を設定してください。