Comparison
9 min read
47 views

Tunnelmole vs ngrok: Node.js向けのネイティブnpm代替ツール

IT
InstaTunnel Team
Published by the InstaTunnel team | Editorial policy

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 guide

Quick answer

ngrok vs Tunnelmole: オープンソースのNode.jsネイティブ代替: quick answer

If free tunnel limits interrupt your workflow, compare session length, stable URLs, concurrent tunnels, and paid-plan pricing before choosing a localhost tunnel tool.

What free tunnel limits should developers check first?

Check session duration, URL stability, concurrent tunnels, custom subdomains, bandwidth or request limits, and whether webhook callbacks survive restarts.

How does InstaTunnel handle longer development sessions?

InstaTunnel Free is designed around 24-hour sessions, with Pro available for higher limits and MCP endpoint tunnel workflows.

すべてのローカルサーバーを運用する開発者は、最終的に同じ壁にぶつかります:アプリは localhost:3000 で正常に動作しているのに、Webhook提供者や物理電話、世界の反対側にいるクライアントからアクセスできないことです。長年、ngrokが標準的な解決策でした。Tunnelmoleは、TypeScriptネイティブの新しい選択肢で、特にNode.jsやJavaScript開発者の間で注目を集めており、npmエコシステムを離れずに公開URLを取得したい人々に支持されています。

この記事では、インストールの手間、ライセンス、セルフホスティング、そしてTunnelmoleのドキュメントの中で、運用前に読む価値のある部分について、両者を比較します。

トンネリングツールの存在意義

ルーターやOSのファイアウォールは、デフォルトで受信トラフィックをブロックします — これは仕様でありバグではありません。しかし、開発中には次のような実際の摩擦が生じます:

  • Webhooks:Stripe、Twilio、GitHub、Discordは公開URLにPOSTする必要があります。localhost:3000には届きません。
  • モバイル・クロスデバイステスト:同じWi-Fi内のスマホは、クライアントの隔離によって開発マシンから孤立していることが多く、LAN IPを入力するのも面倒です。
  • HTTPS専用ブラウザAPI:Service Workers、Web Crypto API、Geolocation、プッシュ通知、PWAインストールはすべて安全なコンテキストを必要とします。複数のデバイスで自己署名証明書を管理するのは面倒です。
  • 進行中の作業のデモ:完全なデプロイなしで、クライアントやチームメイトにローカルで動作しているものを見せることができます。

トンネリングツールは、軽量なクライアントを実行し、クラウドリレーに*アウトバウンド*接続を開き、その後公開URLを配布し、その接続を通じてトラフィックをローカルポートに転送します。接続はアウトバウンドから開始されるため、多くのNATやファイアウォールをルーター設定なしで通過します。

ngrokがJS開発者にとって摩擦を生む理由

ngrokは成熟した有能な製品ですが、特にnpmエコシステムに住む開発者にとって気になる点があります:

Goバイナリであり、npmパッケージではない。 コアエージェントはクローズドソースの事前コンパイル済みGoバイナリです。Node.jsラッパーは存在しますが、これはそのバイナリを子プロセスとして spawn することで動作し、ネイティブなJSモジュールのようには動きません。

アカウントと認証トークンが必須。 これは古い噂ではなく、ngrokのCLIドキュメントに明記されており、エージェントを接続するにはアカウント登録が必要です。認証済みアカウントと認証トークンなしでエージェントを実行しようとすると、ERR_NGROK_4018 という認証エラーで直ちに失敗します。匿名・ゼロサインアップのクイックスタートはもうありません。

クローズドソース。 エージェントのコードを監査できませんし、ngrokの価格設定やプラン名、機能制限は製品の歴史の中で何度も変わっています。特定の無料枠の制限に依存したワークフローを構築している場合は注意が必要です。

Tunnelmole登場

Tunnelmoleは、開発者 Robbie Cahill によって作られたオープンソースのトンネリングツールで、スタックの両側 — tunnelmole-clienttunnelmole-service バックエンド — はTypeScriptで書かれています。シンプルな提案:Goバイナリ不要、無料プランにサインアップ不要、JS開発者が実際に読めるコードベース。

ライセンス(これは二ライセンスのプロジェクトです)

各部分の法的な扱いを正しく理解することが重要です:

  • tunnelmole-clientMITライセンス — 許容範囲が広く、自分のツールに簡単に組み込めます。
  • tunnelmole-service(バックエンドリレー)は AGPLv3ライセンス — 変更してネットワーク越しに提供する場合、AGPLのネットワーク利用条項が適用されます。Tunnelmoleのメンテナは、より柔軟な商用ライセンスも提供しています。

インストール方法

Node.js 16.10以上があれば、npm経由でインストール可能です:

npm install -g tunnelmole
tmole 3000

Nodeバージョン要件を完全に無視して、Nodeがバンドルされた事前コンパイル済みバイナリを取得することもできます:

curl -O https://install.tunnelmole.com/xD345/install && sudo bash install

Windowsユーザーは tmole.exe を直接ダウンロードし、PATHに追加できます。

いずれの場合も、tmole <port> コマンドを実行すると、HTTPとHTTPSのURLがすぐに得られます。デフォルトのホスティッドサービスではアカウント不要です:

$ tmole 8080
http://evgtkh-ip-49-145-166-122.tunnelmole.net が localhost:8080 に転送
https://evgtkh-ip-49-145-166-122.tunnelmole.net が localhost:8080 に転送

プログラムからの利用

Tunnelmoleは、Node/TypeScriptコード内で使えるnpm依存としても提供されており、ESMとCommonJSの両方に対応しています:

npm install --save tunnelmole
import { tunnelmole } from 'tunnelmole';
import express from 'express';

const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
  res.send('Tunnelmole経由の公開Webからこんにちは!');
});

app.listen(PORT, async () => {
  console.log(`ローカルで動作中: http://localhost:${PORT}`);
  const url = await tunnelmole({ port: PORT });
  console.log(`公開URL: ${url}`);
});

この関数は非同期で、イベントループをブロックしません。依存関係としてインストールすると、node_modules/.bin/tmoleもプロジェクトに追加され、"start-public": "npm run start && tmole 3000" のようなnpmスクリプトに組み込みやすくなります。

マーケティング資料でよく省略される二つのポイント

これらは多くの比較記事には登場しませんが、Tunnelmoleをカジュアルなローカルテスト以外で評価する場合には重要です:

ホスティッドサービスではIPは隠されません。 TunnelmoleのFAQはこれについて明確です:かつてはIPを隠す仕組みでしたが、フィッシング運用者に悪用されたため、今はレスポンスにX-Forwarded-Forヘッダーで実IPを付与し、ランダムに生成されたサブドメインにはURLにIPが埋め込まれています。IPプライバシーが重要な場合は、自己ホスティングでこの挙動を除去する必要があります(ヘッダーを自分で除去する必要があります)。

テレメトリーはデフォルトで有効。 クライアントは、Node.jsのバージョン、OS、クラッシュレポート(スタックトレース付き)などの匿名データを収集します。環境変数TUNNELMOLE_TELEMETRY=0を設定してオプトアウト可能です。tmole 3000の一回テストでは問題ありませんが、コンプライアンスが重要なワークフローでは明示的に無効化し、その旨を記録することが望ましいです。

Tunnelmoleのセルフホスティング

これはngrokが一切提供しない機能です。クライアントとサービスの両方がオープンソースであるため、自分のインスタンスを運用することが可能です:

git clone git@github.com:robbie-cahill/tunnelmole-service.git
cd tunnelmole-service
npm install
cp config-instance.example.toml config-instance.toml
npm start

TUNNELMOLE_CLIENTの設定を自分のサーバーのWebSocketエンドポイントに向けると、完全にプライベートなトンネリング環境が構築でき、第三者の関与やテレメトリー、サブドメインのサブスクリプションも不要です(有料のホスティッドサービスでは追加料金が必要)。

実運用前に注意すべき二つのポイント:

  • tunnelmole-serviceはネイティブのHTTPSサポートを持たない。 メンテナのドキュメントはこれについて明示しており、Let’s Encrypt証明書を設定したNginx等のリバースプロキシを経由させる必要があります。ホスティッドのtunnelmole.comはこのインフラを追加していますが、セルフホスティング版は標準では持ちません。
  • 公式のホスティッドサービスは完全にオープンソースと異なる。 メンテナによると、tunnelmole.comはオープンソースコードに加え、クローズドソースの請求・サブスクリプション検証とHTTPSインフラを追加しており、これが唯一のプロプライエタリ層です。つまり、「セルフホスティング」と「ホスティング済み」はバイト単位で同じソフトウェアではありません。

機能比較

属性 ngrok Tunnelmole
コアエージェント Go、クローズドソースバイナリ TypeScript、オープンソース
無料プランでアカウント必要 あり — 認証済みアカウント+認証トークン必須 なし(デフォルトのホスティッドサービス)
ライセンス プロプライエタリ MIT(クライアント) / AGPLv3(サービス)
セルフホスティング できない 可能
Node.jsからのプログラム利用 外部バイナリのラッパー ネイティブなESM/CommonJSモジュール
送信先からIPは隠されるか 該当なし(ngrokのインフラ) いいえ — X-Forwarded-For + URLにIP埋め込み
テレメトリー この資料の焦点外 デフォルト有効、環境変数でオプトアウト
カスタムサブドメイン(無料ホスティング) あり(ngrokブランドドメイン) 有料サブスクリプション必要(セルフホスト除く)

各ツールのコスト発生ポイント

価格は最も古くなりやすい情報なので、ngrokの最新の公開情報を直接参照します(サードパーティの集約ではなく、ngrokの公式料金ページから):

プラン 価格 内容
無料 $0 $5の一時使用クレジット(1年有効、無料プランのみ)、最大3エンドポイント、1GBデータ転送、月20k HTTP/Sリクエスト、エンドポイントに警告ページ
Hobbyist $8/月(年払い)/$10/月(都度払い) 月額$10の使用クレジット、3エンドポイント、5GBデータ転送、リクエスト10万件、警告ページなし、ngrokブランドドメイン
従量課金 $20/月+使用量 無制限エンドポイントとデータ転送、独自ドメイン利用可能、超過分は別途課金
エンタープライズ カスタム SSO/SAML、SCIM、HIPAA BAA、SOC 2レポート、専用サポートSLAs

Tunnelmoleのホスティングサービスは、コアの用途(ランダムサブドメイン、HTTPS込み)では無料です。カスタムまたは予約サブドメインにはサブスクリプションが必要ですが、セルフホスティングなら不要です。

実用例

Webhook開発。 tmole 3000 で安定した公開HTTPS URLを取得し、StripeやTwilio、GitHubのWebhook設定に渡して、ブレークポイントを設定しライブイベントをデバッグできます。

モバイル・クロスデバイステスト。 アウトバウンドWebSocket接続のため、クライアント隔離されたWi-Fiネットワークを回避し、スマホから直接開発マシンにアクセスできます。

HTTPS必須のブラウザ機能。 Service Workers、PWAインストール、Web Crypto APIは安全なコンテキストを必要とします。TunnelmoleのHTTPS URLは自己署名証明書の生成と信頼を省略します。

結論

ngrokは依然として有能でエンタープライズ対応のプラットフォームですが、アカウント必須とクローズドソースのエージェントは現状の制約です。Tunnelmoleは、ネイティブnpmインストール、読みやすいTypeScriptコード、無料・サインアップ不要のシンプルな選択肢を提供します。ただし、テレメトリーはデフォルト有効、IPはホスティッドサービスで見える状態、プライバシー重視のセルフホスティングはHTTPS終端の設定が必要です。これらの点は、”オープンソース・セルフホスト”と”プライベートデフォルト”の違いを理解し、適切に選択するために重要です。


チェンジログ

  • 削除:プロモーションやSEO向けのフレーム(”Enter Tunnelmole, the tool that has recently gone viral,” “the ultimate flex,” “reclaiming your ecosystem”などの見出し)とAIによる埋め草を削除し、技術的・事実重視のトーンに調整。
  • 修正:ngrokがアカウント登録と認証トークンの検証を厳格化し、特定エラー(ERR_NGROK_4018)を返すことを明記(出典:ngrok CLIドキュメントとGitHubのissue)。
  • 追加:ngrokの最新料金表(無料/ホビイスト/従量課金/エンタープライズ)を公式ページから引用(出典: ngrok.com/pricing)。
  • 追加tunnelmole-clientはMITライセンス、tunnelmole-serviceはAGPLv3ライセンスであり、商用ライセンスも存在することを明記(出典: tunnelmole-service README)。
  • 追加:新セクション「マーケティング資料でよく省略される二つのポイント」:1) ホスティッドサービスはIPを隠さず、X-Forwarded-ForヘッダーとURLにIPを埋め込むこと、2) テレメトリーはデフォルトで有効であり、環境変数でオプトアウト可能であること(出典: tunnelmole-client README/FAQ)。
  • 追加tunnelmole-serviceはHTTPSサポートがなく、自己ホスティングにはNginx + Let’s Encryptの設定が必要であること、公式サービスはオープンソースコードに加え請求・HTTPSインフラを追加していることを明記(出典: tunnelmole-service README)。
  • 修正npm install -g tunnelmoleはNode.js 16.10以上が必要と明記(出典: tunnelmole-client README)。
  • 追加:インストールスクリプトやWindowsバイナリの案内を追記(出典: tunnelmole-client README)。
  • 維持・正確:セルフホスティングの手順(git clonecpnpm start)は最新の/tunnelmole-service READMEに完全一致(出典: tunnelmole-service README)。
  • 維持・正確:プログラムからのAPI例は/tunnelmole-client READMEの記載通りです(出典: tunnelmole-client README)。

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

Related Topics

#ngrok vs tunnelmole, tunnelmole, ngrok alternative, tunnelmole vs ngrok, open source ngrok alternative, free ngrok alternative, node.js tunneling tool, javascript tunneling tool, typescript tunnel, native npm tunnel, npm install tunnelmole, tmole 3000, self hosted ngrok alternative, open source tunneling, local server to internet, bypass ngrok binary, react developer tools, node.js developer tools, share local server, expose localhost free, secure local tunnel, public url generator, webhook testing tool, npm tunnel tool, free cloud tunnel, self host tunnelmole backend, tmole command, js ecosystem tunneling, typescript alternative to ngrok, node.js localhost, public url for localhost, expose local api, javascript developer tools, ngrok alternatives 2026, test webhooks locally, local server preview, localhost sharing tool, local network tunnel, frontend developer tunneling, share react app, host local backend, local dev environment, zero config reverse proxy, instant public url, npm native reverse proxy, open source reverse proxy, node based tunnel, free https tunnel, developer productivity tools, open source reverse proxy tunnel, share localhost nodejs, typescript backend tunneling

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