1. ngrokとは
ngrokは、ローカル環境で稼働するWebアプリ/APIなどをインターネットから到達可能なURL(エンドポイント)として公開するためのサービスである。公式ドキュメント上は「グローバル分散のリバースプロキシ」として説明されている。
ngrok | API Gateway, Kubernetes Ingress, Webhook Gateway
2. 使用例
- Webhook受信のローカル検証(GitHub/Stripe等のWebhookを手元に流す)
- モバイル端末・別PCからの動作確認(同一LAN不要)
- 社内レビュー用の一時公開(デモ、QA、PoC)
- NAT/ファイアウォール配下のサービスの外部公開(ポート開放やVPNなしで到達性を作る)
3. 仕組み

- ngrokはngrokクラウド側で外部からの通信を受け、手元のマシンで稼働するngrok agent(CLI/SDK)へトンネルし、ローカルの上流(upstream)サービスへ転送する。
- つまり、ローカルにHTTPサーバ(例:
localhost:3000)が存在すれば、ngrokが「外部から到達可能な入口URL」を生成する。
4. 最小手順(CLI利用の基本)
- インストール(OS別手順は公式のQuickstartを参照)
- authtoken設定(アカウントに紐づくトークンでagentが認証を行う)
- ローカルポートを公開(例:HTTP 3000番)
- 例:
ngrok http 3000
5. 主な機能
5.1 トラフィックの確認(デバッグ)
- ngrok agentにはリアルタイムの通信検査(inspection)UIが存在し、リクエスト/レスポンスを確認できる。
5.2 アクセス制御(認証/制限)
- エンドポイントに対して、Basic認証、OAuth、IP制限、Webhook検証、JWT、mTLS、OIDC、SAML等をポリシーとして適用可能である(機能はプラン/構成によって利用条件が存在する)。
5.3 ドメイン(URL)の扱い
- 無料プランは開発用ドメイン(dev domain)に制約があり、ドメイン機能にはプランによる差異が存在する。
6. 制約・注意点(運用観点)
- 公開URLは“インターネットに開く入口”となるため、デフォルト公開のまま運用すべきではない(認証/IP制限/検証を付与する必要がある)。
- Webhook用途では、署名検証(Webhook Verification)等を併用し、意図しないリクエストを排除する。
- authtokenは資格情報として扱い、漏えい時の影響を考慮すべきである(公式は「エージェントごとに別トークン」等の運用を推奨している)。
7. 料金体系の把握ポイント
- 公式に「Pricing and Limits」「Free Plan Limits」ページが存在し、無料枠の制限と有料プランの制限/課金は分けて記載されている。
8. 代替候補(要件別に検討)
- 「ゼロトラスト寄りの到達性」「恒久的な社内アクセス」を求める場合、Cloudflare Tunnel / Tailscale 等も比較対象となる(用途・制約が異なるため要件起点で選定すべきである)。