ngrok vs. bore: 企業向けゲートウェイとミニマリストTCPトンネルの比較

Current comparison
Looking for the main ngrok alternative guide?
We keep the latest ngrok alternative comparison, CLI commands, pricing notes, and webhook examples on one canonical page.
Open the InstaTunnel ngrok alternative guideQuick answer
ngrok vs bore: 究極のミニマリストRustトンネリングツール: quick comparison answer
Choose the tunnel tool based on the network model: public HTTPS URLs for webhooks and demos, private mesh access for internal apps, and managed infrastructure when policy controls matter most.
Which tunnel tool is best for public webhook testing?
Use a public HTTPS localhost tunnel with stable URLs. InstaTunnel focuses on webhook testing, demos, OAuth callbacks, and MCP endpoint workflows.
When should I choose a private network tool instead?
Choose a private mesh or Zero Trust tool when every user and service should stay inside a controlled private network.
ローカル開発サーバーを公開インターネットに露出させる方法は、かつてはルーター設定やNATトラバーサルの工夫、ダイナミックDNSを駆使する必要がありました。その後、ngrokが登場し、開発者は数秒でlocalhost環境を公開URLにトンネリングできるようになりました。長年、これはローカルポートフォワーディングの標準選択肢でした。
しかし、ngrokは単なる開発者向けツールから、APIゲートウェイやAIトラフィックルーティング、OAuth層、WAFなどを備えたクラウドエッジネットワークへと進化しています。その成長に伴い、一部の開発者はより小規模でシングルパーパスな代替ツールに目を向けるようになりました。最も注目されているのは、boreです。これはRustで書かれたTCPトンネルで、やることは一つだけ—ローカルポートを公開エンドポイントにフォワードすること。ダッシュボードやアカウントは不要です。
このガイドでは、アーキテクチャ、機能、セキュリティモデル、価格設定、セットアップについて、ngrokの公式ドキュメントとboreのソース・リリース履歴を主な参考資料として比較します。
1. 根本的な問題:トンネリングツールの存在理由
localhost:3000でアプリケーションを動かすと、そのアクセスは自分のマシンからだけです。ルーターのNATやファイアウォールは、デフォルトで外部からの着信をブロックします。クライアントにデモを見せたり、モバイルアプリをローカルAPIにテストしたり、StripeやGitHubからWebhookを受け取るには、トラフィックを自分のマシンにルーティングする公開URLが必要です。
トンネリングツールは、アウトバウンドからの接続を利用します。あなたのマシンから公開サーバーへ接続し(これがアウトバウンドなのでファイアウォールは許可)、そのサーバーが公開トラフィックをトンネル内に流し込みます。ngrokもboreもこの基本アーキテクチャを採用していますが、その上に構築される仕組みが異なります。
2. ngrok:APIとAIゲートウェイ
Alan Shreveによって2013年に創設されたngrokは、最初はシンプルなトンネリングユーティリティでしたが、その後、エンドポイント、トラフィックポリシー、セキュアなトンネルを統合したネットワーキング層へと進化し、現在はAI、API、Webトラフィックのためのゲートウェイとして展開されています。
現在のngrokの提供内容
- トラフィックポリシー:ngrokのエッジで動作するCEL式ルールエンジン。ルーティング、認証、レート制限、変換をYAMLで定義し、nginxやLuaプラグインの設定を必要としません。
- APIゲートウェイ機能:JWT検証、OAuth/OIDC/SAML、mTLS、IP許可リスト、OWASP Top 10をカバーするWAFなどを、トラフィックがオリジンに到達する前に適用します。
- AI Gateway:2025年12月に早期アクセスとして
ngrok.aiドメインで開始。アプリと複数のLLMプロバイダー間をルーティングし、OpenAI、Anthropic、Google、またはOllamaやvLLMでホストされたモデルに自動フェイルオーバー、PIIのマスキング、レスポンスのサニタイズを行います。これらはHTTPトラフィックと同じTraffic Policyエンジンで設定されます。 - Webインスペクションとリプレイ:HTTPリクエストをキャプチャし、リプレイできるローカル・ダッシュボードツール。Webhookのデバッグに便利です。
- Kubernetes Operator:標準のIngressやGateway APIリソースを自動的にngrokエンドポイントとポリシーに変換します。
ngrokの無料プラン(2026年現在)
ngrokの公式料金ドキュメントによると、無料プランの制限は以下の通りです:
| リソース | 無料プランの制限 |
|---|---|
| オンラインエンドポイント | 最大3 |
| 同時エージェント | 3 |
| データ送信量 | 月1GB |
| HTTPリクエスト | 月20,000 |
| TCP/TLS接続 | 月5,000 |
| HTTPリクエストレート | 4,000/分 |
| Webhook検証 | 月500 |
ここで重要なのは、無料プランは2時間や8時間のセッションタイムアウトを強制しない点です。ngrokのドキュメントには明記されており、無料エンドポイントはバックグラウンドサービスとして継続運用可能です。実際の制約は、上記の帯域幅とリクエスト数の上限、カスタムドメインの予約不可、そして以下の警告ページです(詳細は後述)。
警告ページ(”Visit Site”)について
ngrokは共有ドメインの悪用を防ぐため、無料プランのエンドポイントに警告ページを挿入します。これは、ngrok経由のサイトであることを通知するものです。これを回避するには、リクエストにngrok-skip-browser-warningヘッダー(任意の値)や非デフォルトのUser-Agentを付与します。これは有料プランにアップグレードしなくても可能です。ngrokのドキュメントでは、Paidプランではこの警告ページはデフォルトで除去されると記載されています。APIクライアントや自動テスト、Webhookの受信側でヘッダー設定が難しい場合、ERR_NGROK_6024エラーの原因となることもあります(特にEventSourceのようなツールではクライアント側でヘッダー挿入ができません)。
料金体系(2026年版)
- 無料 — 上記制限内
- Hobbyist — 月10ドル(年払いは月8ドル)、データ転送5GB、HTTPリクエスト10万回、TCPアドレス1つ、エンドポイント3つまで
- 従量課金 — 月20ドルの基本料金に、$20の使用クレジットを含む。超過分は、$0.10/GB、$1/10万HTTPリクエスト、$2/10万TCP接続で課金。エンドポイント数制限なし。追加ユーザーは月5ドル(最初の3つを超える場合)
- 追加オプション:SSO/RBAC($10/ユーザー/月)、カスタムTLS証明書($200/月)、専用エージェントIP($900/リージョン/月)など。これらはエンタープライズ向けの機能で、基本の「1席あたり」料金には含まれません。
この料金体系は、「1ユーザーあたり15〜30ドル」といった単純な価格設定とは異なり、エントリーレベルは月8〜10ドル、プロダクションレベルは$20の基本料金+従量課金となっています。
セキュリティに関する注意点(インフラ担当向け)
ngrokはMITRE ATT&CKのフレームワークでSoftware S0508に分類されます。これは、ツール自体が悪意あるわけではなく、むしろ脅威グループ(Scattered SpiderやCadet Blizzardなど)によるコマンド&コントロールや横展開、データ抽出に悪用されてきたためです。広く許可されたツールであるため、企業のセキュリティチームはngrokのドメインをブロックするケースもあります。導入前に理解しておくと良いでしょう。
3. bore:Rust製のミニマリスト
Eric Zhang(@ekzhang1)によって作成され、MITライセンスのboreは、1つの目的だけを持つCLIツールです。ローカルのTCPポートをリモートサーバーにフォワードし、NATをバイパスします。最新リリース(v0.6.0)では、GitHubスター数は約11,100、フォーク数は493と、コミュニティの支持も高いです。
なぜミニマルなのか
- 約400行の非同期Rust:クライアントとサーバーの実装は非常にシンプルで、自分で読んで監査できる範囲です。
- アカウント不要、ダッシュボード不要、トークン不要:
bore local <port> --to bore.pubをすぐに実行可能。 - 自己ホスティングも簡単:
bore serverを自分のVPS上で起動すれば、追加依存なしでトンネルサーバーが動作します。 - 小さなバイナリ、ほぼゼロのメモリフットプリント:Raspberry Piなどのリソース制約環境に適しています。
プロトコルの仕組み
boreは暗黙の制御ポート7835を使用します。クライアントはこの制御ポートに”Hello”メッセージを送り、リモートポートのプロキシをリクエストします。外部から接続が来ると、サーバーはUUIDを生成し、それをクライアントに送信します。クライアントは新しいTCPストリームを開き、そのUUIDを”Accept”メッセージで送信。サーバーは2つの接続をプロキシします。未使用の接続は10秒後に破棄され、メモリリークを防ぎます。詳細はプロジェクトのプロトコルドキュメントに記載されています。
インストール方法
- macOS:
brew install bore-cli - Arch Linux: AURの
bore - Gentoo:
gentoo-zhオーバーレイ経由 - Rustがあれば:
cargo install bore-cli - GitHubリリースページからmacOS、Windows、Linux用の事前ビルドバイナリ
- Docker:各リリースごとにバージョン付きイメージを公開(例:
docker run -it --init --rm --network host ekzhang/bore <ARGS>)
デフォルトではbore local <port> --to <host>はlocalhostを公開しますが、--local-hostフラグを使えば、LAN内の別のホストを公開可能です。自宅LAN内の別デバイスにトンネリングしたい場合に便利です。
セキュリティモデル(正確に)
boreはオプションのHMACベースのシークレット--secret(またはBORE_SECRET環境変数)をサポートし、トンネルの作成ハンドシェイクを認証します。クライアントはこのシークレットを証明し、サーバー上でトンネルを開くことができます。これにより、不正なアクセスを防止します。ただし、トンネル内のトラフィック自体は暗号化されません。HTTPや生のデータベースプロトコルなど、暗号化されていない通信をトンネリングする場合は、TLSを併用するか、HTTPSやSSHのようにエンドツーエンドで暗号化されたプロトコルのみを使用してください。
4. 比較:直接対決
アーキテクチャとパフォーマンス
ngrokはGoで書かれ、HTTP/HTTPSに対応した処理を行います。ペイロードの検査やヘッダー操作、ポリシー評価により遅延とメモリ負荷が増加します。一方、boreはRustで書かれ、プロトコルに依存しません。HTTP、WebSocket、SSH、カスタムプロトコルなど、バイトの移動に特化し、オーバーヘッドはほぼゼロです。
機能とミニマリズム
ngrokはHTTPS終端、自動証明書、リクエストリプレイ、OAuth/SAML、IP許可リスト、Webhook署名検証、Kubernetes Operator、ロードバランシング、AIトラフィックルーティングなど、多彩な機能を持ちます。boreはあくまでポートフォワーディングに徹し、HTTPペイロードの検査やダッシュボードはありません。必要に応じてngrokの機能を補完するために、別途リバースプロキシ(nginxやCaddy)を配置する必要があります。
料金とライセンス
ngrokはフリーミアムのSaaSサービスです。無料プラン、月8〜10ドルのHobbyist、月20ドルの従量課金、エンタープライズ契約があります。boreはMITライセンスの完全オープンソースで、bore.pubの公開サーバーを無料で使うか、自身のインフラに自己ホスティングできます(小さなVPSで十分)。帯域制限はありません。
5. セットアップ
ngrok
# 1. ngrok.comに登録し、ダッシュボードからauthtokenをコピー
ngrok config add-authtoken <YOUR_AUTH_TOKEN>
# 2. ローカルポートを公開
ngrok http 3000
ngrokはHTTPS URL(例:https://abc-123.ngrok-free.app)を出力し、ローカルポートにプロキシします。
bore(クライアント側のみ、公開サーバー使用)
# インストール
brew install bore-cli # macOS
cargo install bore-cli # Rust環境があれば
# ポート8000をbore.pubのサーバー経由で公開
bore local 8000 --to bore.pub
boreはbore.pub:xxxxxのような割り当てられたポートを出力し、ローカルサーバーがアクセス可能になります。
boreの自己ホスティング
# VPS上で
bore server --min-port 10000 --max-port 20000 --secret super_secure_password
# ローカルマシンから
bore local 8000 --to your-vps-ip.com --secret super_secure_password
6. どちらがあなたのワークフローに合うか
ngrokを選ぶ理由: - HTTPレイヤーの可視化(リクエストリプレイ、ペイロード検査、ヘッダー操作)をデバッグ時に行いたい - OAuth、OIDC、SAMLを使ったアクセス制御をプレビュー環境に適用したい - 独自ドメインをトンネルにバインドし、リバースプロキシの管理を避けたい - 複数のAI/LLMプロバイダー間のトラフィックを一元管理したい
boreを選ぶ理由: - アカウント不要、オープンソースのシンプルなツールを求める - 数分間だけポートを共有したい、トークンや警告ページの設定を避けたい - Raspberry Piや組み込みデバイスなどリソース制約のあるハードウェアで動かしたい - SSHやゲームサーバー、カスタムプロトコルなどHTTP以外のTCPトラフィックをトンネリングしたい - 自己ホスティングし、帯域制限なしで運用したい
7. よくある質問
boreはngrokの完全な代替になりますか? 基本的なポートフォワーディングには適しています。ただし、ngrokのHTTPS終端やペイロード検査、認証層などの機能は備えていません。これらを必要とする場合は、ngrokの前にnginxやCaddyなどのリバースプロキシを配置してください。
ngrokの”Visit Site”警告ページを消すには?
リクエストにngrok-skip-browser-warningヘッダー(任意の値)やカスタムUser-Agentを付与します。無料プランでもこれが可能です。Paidプランではデフォルトで除去されます。
boreでカスタムドメインは使えますか?
はい、自己ホスティングの場合は、ドメインのDNS Aレコードをbore serverを動かすVPSに向け、クライアント側もそのアドレスに接続します。
boreのトラフィックは暗号化されますか?
いいえ、デフォルトではされません。--secretはトンネル作成の認証に使われるだけで、トラフィルトラフィックの暗号化は行いません。TLSを併用するか、HTTPSやSSHのようにエンドツーエンド暗号化されたプロトコルを使うことを推奨します。
ngrokの無料プランは一定時間後に切断されますか? いいえ。多くの比較記事では誤解を招きますが、ngrokの公式ドキュメントには無料プランにタイムアウトは設定されていません。制約は月間のデータ量、リクエスト数、接続数の上限です。
変更履歴
修正点
1. ngrokの有料料金 — 元の記述では”$15〜30+ per user”とありましたが、2026年の実際の構造に合わせて修正。Hobbyistは月10ドル(年払いは月8ドル)、従量課金は月20ドルの基本料金に超過分の従量課金。出典:ngrok料金と制限。
2. 警告ページのバイパス — 有料プランへのアップグレードだけが解決策と誤解されていた点を修正。ngrok-skip-browser-warningヘッダーは無料プランでもバイパス可能です。出典:ngrok無料プラン制限およびngrok ERR_NGROK_6024。
3. boreのスター数 — 現在の正確な数値に更新。11,100スターと493フォーク(公式リポジトリより)。
追加事項
1. ngrokの無料プランに2時間/8時間のセッションタイムアウトの誤解に対し、ドキュメントで明示されていることを追記。出典:ngrok無料プラン。
2. ngrokのAI Gateway(2025年12月リリース、ngrok.ai)を追加。複数プロバイダーのLLMルーティングや自己ホストモデル(Ollama、vLLM)、自動フェイルオーバー、PIIマスキングをTraffic Policyで設定可能。出典:ngrok AI Gatewayリリース、ngrok AI Gatewayドキュメント。
3. ngrokのMITRE ATT&CK S0508分類を追加。セキュリティに関心の高い読者向けの背景情報です。出典:MITRE ATT&CK S0508。
4. boreの--local-hostフラグ(LAN内の別ホスト公開)やインストール方法(AUR、Gentoo、Docker)を追加。出典:bore GitHub。
5. ngrokの最新無料プラン制限表(TCP/TLS接続数、リクエストレート、Webhook検証数)を直接引用し、正確性を高めました。
6. boreの最新リリースv0.6.0と、約400行のコードベース、制御ポート/UUIDハンドシェイクの詳細を反映。出典はREADMEとプロトコルドキュメントです。
削除事項 1. FAQセクションとSEO向けのフレーズ(”undisputed king”、”godsend”、”lean engineeringの傑作”)を削除。 2. 不適切なインラインコードの破損部分を修正し、コードブロックに置き換え。 3. boreのセキュリティポスチャーに関する誤った記述を削除し、HMACシークレットが何を保護するかに焦点を当てました。
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.