社内NW変更ゼロで、クラウドから社内APIへ安全にアクセス
社内のSpring Boot APIをクラウドサーバから利用したいが、社内NWは外部からのインバウンド接続を許可していない。
ファイアウォールやルーターの設定変更は、権限・運用ルール上困難。VPNも同様。
社内サーバから外部への SSH (port 22) は許可されている。この唯一の出口を利用する。
社内サーバの autossh がクラウドサーバへ SSH 接続します。これは通常の outbound 通信なので、社内NWの変更は不要です。
autossh -R 8888:localhost:8080 user@cloud
-R 8888:localhost:8080 により、クラウドサーバの localhost:8888 が社内の localhost:8080 に接続されます。
外部クライアントからの HTTPS リクエストを Nginx が受け、proxy_pass でトンネルポートへ転送します。
proxy_pass http://localhost:8888;
リクエストはトンネル経由で社内 Spring Boot API に到達し、レスポンスが同じ経路で外部クライアントに返されます。
| 項目 | SSH リバーストンネル | WebSocket 中継 | Cloudflare Tunnel |
|---|---|---|---|
| 社内NW変更 | 不要 | 不要 | 不要 |
| 実装コスト | 低 | 高 | 低 |
| 追加ソフト | autossh のみ | Bridge Client 実装 | cloudflared |
| 既存API変更 | 不要 | 不要 | 不要 |
| 外部依存 | なし | なし | Cloudflare |
| 暗号化 | SSH (標準) | TLS (要設定) | TLS (自動) |
| 冗長化 | 複数トンネル + Nginx | アプリ実装 | Cloudflare側 |
nologinForceCommand でシェル無効GatewayPorts no (localhost のみ)proxy_next_upstream error timeout;
proxy_next_upstream でバックアップに切替確認中...
確認中...
確認中...
※ ステータスは /api/health エンドポイントへの疎通結果を表示します。API が未構成の場合は「不明」と表示されます。