Development
15 min read
51 views

Rustによるトンネリング革命:Tunneltoの台頭とGitHubでの急増理由

IT
InstaTunnel Team
Published by the InstaTunnel team | Editorial policy
Rustによるトンネリング革命:Tunneltoの台頭とGitHubでの急増理由

Quick answer

ngrok vs Tunnelto:オープンソース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.

開発者コミュニティには明らかなトレンドがあります:商用SaaSのトンネリングプロキシから、軽量でオープンソースのRust製ツールへの移行が着実に進んでいます。その背景には「無料枠疲れ」があり、帯域制限やエンドポイント制限、インタースティシャル警告ページに疲弊した開発者たちが、Webhookのテストだけのためにより自由な選択肢を求めているのです。

2025年12月末、オープンソースツールの Tunnelto がGitHubでバイラルヒットし、1日で565スターを獲得、GitHubのトレンドページで第3位に躍り出ました。この急増は偶然のものではなく、ngrokの代替として自ホスティング可能な無料の高性能ツールを求める開発者の本音の反映です。また、プライバシー重視の自己ホスティング型開発ツールへの広範なシフトの入口ともなっています。

このガイドでは:なぜ開発者が Rustリバースプロキシ に目を向けているのか、事実確認済みの Tunnelto vs ngrok 比較、知っておくべき他の オープンソースngrok代替ツール、そして実際にRustトンネルを自己ホスティングする方法について解説します。


コアの問題:localhostのジレンマ

すべてのWeb開発者が最終的に直面する壁、それは「ローカルホスト」問題です。Stripeでの支払い、TwilioでのSMS、Slackのスラッシュコマンドなど、サードパーティサービスと通信する必要がある場合、Webhookを使います。Webhookは、イベント発生時に指定したURLへHTTPリクエストを送る仕組みです。

問題は:Stripeは http://localhost:3000 へWebhookを送れないことです。あなたの開発サーバーはルーターのNATとファイアウォールの背後にあり、外部インターネットから見えません。

旧来の解決策

トンネリングツールが一般的になる前、開発者は次の方法で回避していました:

  1. ステージング環境にデプロイ — コミット、プッシュ、CI/CD待ち、Webhookをトリガー。フィードバックループが5秒から5分に延びるだけです。
  2. ルーターのポートフォワーディング — 技術的には可能ですが面倒で、自宅ネットワークに開放したくないものです。
  3. イベントのモック — ペイロードを一度キャプチャしてローカルでリプレイ。ただし、実世界のエッジケースには対応できません。

ローカルホストトンネルの台頭

クライアントはあなたのマシン上で動作し、公開リレーサーバーにアウトバウンド接続を確立し、公開URLを提供します。StripeがそのURLを叩くと、リレーがトンネルを通じてあなたのローカルポートにトラフィックを転送します。

長年、ngrokが標準的な選択肢でした。ほぼローカルホストのトンネリングと同義語になっていましたが、同社のセキュリティやAPIプラットフォームへの進化に伴い、無料枠の仕様変更が一部ユーザーベースを他の選択肢へと向かわせています。


無料枠疲れ:ngrokの無料プランの真実

この点について、多くの比較記事が曖昧に書いています。ngrokの無料枠の制限内容を、公式ドキュメントに基づき正確に解説します。

2時間セッション制限はない

この主張は頻繁に見かけますが、ngrokの料金と制限の公式ドキュメントと照らし合わせると誤りです。ngrokの無料プランは「永遠に無料」とされ、セッション時間による切断はありません。実際に起こるのは以下の制約です:

  • 月あたり1GBの帯域幅と一度だけの$5クレジット
  • 同時に3つのオンラインエンドポイント(この制限は月ごとにリセットされません)
  • 月約20,000のHTTPリクエスト
  • 再接続ごとにランダムなサブドメイン — これがWebhookのワークフローを破壊する要因です。再起動のたびにURLを再登録する必要があります。

もしセッション中に切断される場合、それはネットワークの一時的な不調やクライアントの再起動、帯域制限やリクエスト制限に達したためであり、タイマーによるものではありません。誤解しないようにしましょう。これはこの分野で最も繰り返される誤情報の一つです。

インタースティシャル警告ページは実在

フィッシングやマルウェア対策のため、ngrokは無料URLに対してHTMLのインタースティシャルページ(「Visit Site」)を挿入します。APIクライアント向けにngrok-skip-browser-warningヘッダーを提供していますが、多くのWebhook提供者はカスタムヘッダーの挿入を許さないため、これが自動Webhook配信を妨げることがあります。

2026年中のngrokの料金体系

ngrokは4つのプランを提供しています:Free, Hobbyist, Pay-as-you-go, Enterprise

  • Free — 月額$0、$5クレジット、1GB帯域幅、3エンドポイント、約20,000リクエスト
  • Hobbyist — 月額$10(年払いなら$8/月)、月$10クレジット、5GB帯域幅、3エンドポイント、約100,000リクエスト
  • Pay-as-you-go — 月額$20の基本料金($20分の使用料込み)に加え、データ転送やリクエスト、エンドポイント時間に応じて従量課金
  • Enterprise — カスタム価格設定

旧来の比較記事の「$8–$29/月」表現はおおよそ正しい範囲ですが、実際のプラン名や構成は何度か変わっているため、ngrokの料金ページを直接確認することを推奨します。


Rustによる反乱:Tunnelto登場

2025年12月末、Tunnelto(開発者Alex GrinmanによるRust製トンネリングツール、GitHub: agrinman/tunnelto)がGitHubのトレンドページで第3位に躍り出て、24時間で565スターを獲得しました。当時のスター数は約3,665でしたが、その後も増加を続け、現在は6,000〜7,000スター、500以上のフォークを持ちます。

重要なポイントは、「tunnelto」という名前の異なる2つの製品が存在することです。

  • tunnelto.dev (agrinman/tunnelto on GitHub) — このセクションで紹介するオープンソースのMITライセンスのRustプロジェクトです。最新クライアントはv0.1.18で、2021年5月にリリースされました。プロジェクトは廃止されておらず、issueも適宜対応されており、tunnelto.devのデモもFly.io上で稼働中です。ただし、CLIの新機能は数年リリースされておらず、自己ホスティングサーバーはカスタムドメインや認証機能を標準ではサポートしていません。
  • tunnelto.me — 完全に別の商用トンネリングサービスで、名前が似ているだけです。無料プラン(1つのカスタムドメイン、月1GB帯域、1時間セッション)や有料プラン(約$2/月から)があります。

これらはコードベースもチームも異なる製品です。比較記事で「tunnelto.meの価格ページを引用している」場合、誤解を招きやすいので注意してください。

Tunnelto(tunnelto.dev)のアーキテクチャ

Tunneltoは完全にasync-io上に構築されており、Tokioをベースにしています。システムは2つの部分から成ります:

  1. クライアント — 軽量なRustバイナリ(例:tunnelto --port 8000)をローカルで実行し、外向きTCP接続を確立します。
  2. サーバ — パブリックなホスト上にあるRustアプリケーションで、HTTP/HTTPSリクエストを受け取り、適切なクライアントに振り分けます。

Rustと非同期ランタイムのおかげで、多数の同時接続を少ないメモリで処理できます。

なぜ急増したのか?

2025年12月の急増にはいくつかの理由が考えられます:

  1. ngrokの無料枠制約(帯域制限、エンドポイント制限、インタースティシャルページ)に対する不満の蓄積
  2. 所有権の重視 — コードを読んだりフォークしたり、自分でホスティングできることへのニーズ
  3. Rustのイメージ向上 — RustはStack Overflowの「最も憧れる言語」調査で何年もトップにあり、JetBrainsの2025年の開発者エコシステム調査では約227万人がRustを使用したと報告されています。高速・安全という特性が信頼を集めています。

ただし、バイラルの背景には、トレンド記事の一時的な分析や、トレンド時のブログ投稿に基づくもので、詳細な調査データではありません。


Tunnelto vs ngrok:比較

1. 料金と制限

  • ngrok: 上述の無料プラン(1GB帯域、3エンドポイント、ランダムURL、インタースティシャルページ)を基本に、Hobbyistは月$10(年払いなら$8/月)、Pay-as-you-goは月$20の基本料金と従量課金。
  • tunnelto.dev(オープンソース): ソフトウェア自体は無料(MITライセンス)で、自己ホスティング可能。VPSのコスト(例:$5/月のVPS)だけで十分です。計測や有料プランはなく、カスタムドメインや認証も自己設定が必要です。
  • (商用のホスティング済みサービスで、無料プランにカスタムドメインや永続ドメインを求める場合は tunnelto.me です。こちらは$0から始まり、$2/月程度の有料プランもあります。)

2. 開発者体験

  • ngrok: 高度なCLI、豊富なフレームワーク連携、HTTPトラフィックのインスペクションダッシュボード
  • tunnelto.dev: tunnelto --port 3000 1コマンドで公開URLを素早く生成。シンプルさを重視し、トラフィック検査やインタースティシャルは省略しています。

3. ホスティングとコントロール

  • ngrok: クローズドソース、ngrokのクラウドに依存
  • tunnelto.dev: MITライセンス。コードを読んだりフォークしたり、自分でサーバを運用可能。Dockerや環境変数でのデプロイ例もドキュメント化されています。インフラの所有権はあなたにあります。

4. カスタムドメイン

  • ngrok: 有料プランでのみサポート
  • tunnelto.dev(自己ホスティング): 自分のドメインを自サーバに向けることが可能。ただし、TLS終端は自分で設定(例:NginxやCaddy)する必要があります。

エコシステムの探索:他のオープンソースngrok代替

Tunneltoだけが選択肢ではありません。以下に、各プロジェクトのリポジトリと照合した実態を解説します。

1. rustunnel

AGPLライセンスのRustトンネリングツール(GitHub: joaoh82/rustunnel)。自己ホスティングや有料従量サービスとして利用可能です。特徴は、AIエージェント用のMCPサーバ、UDPサポート、P2Pトンネル、負荷分散グループとヘルスチェックです。従来のツールと差別化された機能です。

2. bore

Eric Zhang(ekzhang/bore)による、シンプルなMITライセンスのTCPトンネルです。約400行のasync Rustで、ローカルのTCPポートをリモートに転送します。HTTPやTLSには対応していません。

--secretフラグはHMAC認証を追加しますが、トンネル内のトラフィックは暗号化されません。TLS未対応の通信は盗聴のリスクがあります。比較記事で見落とされがちなポイントです。

3. rathole

frpの高性能代替として位置付けられ、TCP/UDP両対応、リソース制約のある環境(組み込みやルーター)向けです。設定のホットリロードも可能です。

4. frp (Fast Reverse Proxy)

Go製で、GitHubスター数約108,000、フォーク数15,000超。HTTP/HTTPS/TCP/UDP/WebSocket対応。設定はTOML。複雑な本番運用に適しています。

5. Cloudflare Tunnel (cloudflared)

エンドツーエンドのオープンソースではありませんが、cloudflaredクライアントはオープンソースです。無料で利用でき、HTTP/3(QUIC)をデフォルトのトランスポートとし、「Cloudflare One」Zero Trustプラットフォームの一部です。最大50ユーザのSSOやメールOTPも無料で設定可能です。カスタムホスト名にはCloudflare管理のDNSが必要です。


なぜRustが適しているのか

多くのトンネリングツール(Tunnelto、bore、rathole、rustunnel)がRustで書かれているのは偶然ではありません:

  1. 高い同時接続数と低メモリ消費 — Rustのasyncモデルは、多数のアイドル状態の接続を少ないメモリで処理可能。
  2. 予測可能なレイテンシ — GCの停止がなく、リアルタイム通信に適します。
  3. メモリ安全性 — C/C++の脆弱性を排除し、堅牢性を向上。
  4. クロスプラットフォームの静的バイナリ — 依存関係不要の単一バイナリを生成可能。

Rustトンネルの自己ホスティング:実際に必要なこと

自分でトンネルサーバを運用したい場合の現実的な手順です。例として、Tunneltoの自己ホスティング手順を紹介します。

必要条件

  • パブリックIPを持つVPS(DigitalOcean、Linode、AWS EC2など)
  • 独自ドメインを持つ場合は、そのVPSに向けた設定
  • SSH、Docker、リバースプロキシ設定に慣れていること

ステップ1:Rustツールチェーンのインストール(ソースからビルドする場合)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

ステップ2:サーバの起動

TunneltoのサーバはDockerでの展開が推奨されており、muslターゲット向けにビルドされ、環境変数で設定します。リポジトリをクローンし、ビルドまたはイメージをプルします:

git clone https://github.com/agrinman/tunnelto.git
cd tunnelto/tunnelto_server
cargo build --release

TLS終端はNginxやCaddyで行うのが一般的です。自己ホスティングサーバは自動HTTPSやカスタムドメインルーティングには対応していません。

ステップ3:クライアントとの接続

cargo install tunnelto
tunnelto --port 3000

デフォルトはtunnelto.devのサービスを指します。自ホスティングサーバを使うには、クライアントの設定を変更し、サーバのアドレスを指定します。tunnelto --helpで最新のフラグを確認してください。

注意点:自己ホスティングは複数サーバの運用や高可用性には追加工夫が必要です。標準のngrokのような管理インフラにはなりません。


開発者体験の変化:所有とコントロール

Tunneltoの急増は、インフラを外部のSaaSに委ねるのではなく、自分で所有・運用する選択肢への流れの一端です。特に、月$5のVPSに自己ホスティングしたトンネルをチームで共有することで、月$20以上の商用プランのコストや制約を回避できます。

結論

Rustによるトンネリングの「反乱」は、商用ツールの完全な置き換えではなく、より自由でコスト効率の良い選択肢への小さな修正です。ngrokの無料枠は以前より制約が増えていますが、「2時間セッション制限」の誤解は公式ドキュメントに基づき修正すべきです。

Tunneltoboreratholerustunnelは、無料で自己ホスティング可能な高速な代替手段を提供しています。比較の際は、tunnelto.devtunnelto.meの混同に注意してください。どちらも異なる製品です。

自分でRustトンネルを構築・運用する選択肢は、2年前よりも確実に広がり、コストも抑えられる方向にあります。


変更履歴

  • 誤った「ngrok無料枠の2時間制限」記述を削除し、実際の制約(1GB/月、3エンドポイント、20kリクエスト、ランダムサブドメイン、警告ページ)に修正
  • ngrokの料金体系とプラン構成を正確に更新(無料、Hobbyist、Pay-as-you-go、Enterprise)
  • tunnelto.devとtunnelto.meの誤解を修正。前者はオープンソースのRustプロジェクト、後者は商用サービスです。
  • GitHubスター数と動向を最新化(例:6,000〜7,000スター、2025年12月のトレンド時点からの増加)
  • 自己ホスティングの手順を正確なドキュメントに基づき修正。未検証のコマンドや設定例を除去
  • エコシステムのツール(bore、rathole、frp、cloudflared)の最新情報を追加
  • Rustの採用理由を整理し、並列性、安全性、クロスプラットフォーム性を強調
  • 自己ホスティングの実践例を具体的に解説
  • 開発者体験の変化と、所有・コントロールの重要性を強調
  • 全体のトーンと正確性を維持しつつ、最新の情報と正確な表現に更新

Continue from this article into the most relevant product guides and workflows.

Related Topics

#tunnelto vs ngrok, ngrok vs tunnelto, rust reverse proxy, open source ngrok alternative, self hosted rust localhost tunnel, rust tunneling tools, free tier fatigue ngrok, open source tunneling software, replace ngrok with rust, tunnelto github, free ngrok alternative, bypass ngrok free tier limits, self hosted localhost proxy, open source reverse proxy rust, tunnelto rust project, custom domains free tunnel, ngrok session limits bypass, ngrok 2 hour limit, ngrok bandwidth caps, rust proxy server, rust based reverse proxy, self host tunnelto, open source port forwarding, secure localhost tunnel, free public url localhost, webhook testing tunnelto, privacy conscious tunneling, best ngrok alternatives, self hosted ngrok alternative, fast reverse proxy rust, local development tunneling, expose localhost open source, local web server tunneling, free tunneling for developers, open source saas proxy alternative, rust dev tools, self hosting community tools, tunnelto vs localtunnel, rust cli tunnel, localhost to internet open source, reliable open source tunnel, tunnelto persistent url, alternative to commercial proxy saas, rust developer tools, github trending rust tools, local development workflow open source, self hosted reverse proxy tunnel, local backend expose rust, bore rust tunnel, rustunnel open source, open source local proxy, bypass commercial saas tunnels, github tunnelto alternative, open source ngrok clone, rust networking tools, self hosted development proxy, host local server internet free, expose local server rust

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles