Comparison
13 min read
52 views

ngrok vs. sish(セルフホスト型Serveo):sishと$5 VPSで自分だけのプライベートngrokを構築する方法

IT
InstaTunnel Team
Published by the InstaTunnel team | Editorial policy
ngrok vs. sish(セルフホスト型Serveo):sishと$5 VPSで自分だけのプライベートngrokを構築する方法

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 sish: 自己ホスティングセルフServeoの構築方法: 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.

現代のソフトウェア開発では、ローカル開発環境をインターネットに公開することは日常的な必要です。Webhookのテスト、クライアントへの進行中の作業の見せびらかし、複雑なAPI統合のデバッグなど、信頼できるトンネルが必要です。長年、開発者はngrokやServeoのようなサードパーティツールをデフォルトとして使用してきました。しかし、チーム規模の拡大やセキュリティ要件の強化に伴い、管理されたトンネルサービスに依存するとボトルネックやコスト、セキュリティコンプライアンスの問題が生じることもあります。

もしngrokの無料プランの制限やレートリミット、またはServeoの不安定な稼働時間に苛立ちを感じているなら、自分のインフラをコントロールする時です。そこで登場するのがsishです。これはオープンソースの積極的にメンテナンスされている代替ツールで、localhost.runやServeoのプライベート版を自分で構築できるほか、今年からは公式のマネージドサービスを利用して自己ホスティングを完全に省略することも可能です。

このガイドでは、SSHトンネルの現状を解説し、ngrokとsishを両方の公式ドキュメントと比較しながら、sishと$5 VPSを使って自分だけのプライベートngrokを立ち上げるステップバイステップのチュートリアルを提供します。


localhostトンネルの進化

ngrokの時代

開発者がlocalhostのトンネルを考えるとき、ngrokはまず思い浮かべる名前です。ローカルサーバーの公開方法を革新し、シンプルなコマンド(ngrok http 8080)を実行するだけで、トラフィックをローカルマシンに転送する公開HTTPS URLを即座に取得できます。

ngrokの無料プランは実際に制限がありますが、多くの比較記事で述べられるようなものではありません。ngrokの最新の料金と制限のドキュメントによると、無料プランには次の内容が含まれます:

  • 一度だけの$5使用クレジット
  • オンラインエンドポイント3つと同時エージェント3つまで
  • 月あたり1GBのデータ転送
  • 月20,000 HTTP/Sリクエスト(約4,000リクエスト/分の制限あり)
  • 月5,000 TCP/TLS接続
  • 自動割り当ての”devドメイン”(例:your-name.ngrok-free.app
  • 無料HTTP/Sエンドポイントに対してブラウザに表示される警告ページ(ngrok-skip-browser-warningヘッダーや非デフォルトのUser-Agentを送信することでバイパス可能、アップグレード不要)

よくある誤解の訂正: 多くの”ngrok代替”マーケティングブログは、無料プランが2時間のセッションタイムアウトを強制していると主張していますが、これは誤りです。ngrokの公式ドキュメントはこれに反しており、無料エンドポイントにはタイムアウトはなく、バックグラウンドサービスとして無期限に動作可能です。実際の制約は、上記の月間データ・リクエスト・接続の上限と、カスタムドメインの予約やインタースティシャルページの有無です。”2時間制限”を記載した記事には懐疑的に扱ってください。

有料プランも再構築されており、現在のラインナップ(ngrokの料金と制限ページより)は次の通りです:

プラン 価格 データ転送 リクエスト エンドポイント
無料 $0 1 GB/月 20k/月 3
Hobbyist $8/月(年額)または$10/月 5 GB/月 100k/月 3
従量課金 $20/月($20の使用クレジット含む) メーター制($0.10/GB) メーター制($1/10万) 無制限
企業向け カスタム/見積もりのみ カスタム カスタム カスタム

コスト以外にも、企業ネットワークによってはngrokのトラフィックを制限またはフラグ付けすることがあり、共有ドメインはフィッシングやマルウェアのコマンド&コントロールに悪用されてきたため、セキュリティ上の問題もあります。

Serveoの興亡

ngrokの独自エージェントの代替として、多くの開発者はServeoに流れました。Serveoはインストール不要で、ほぼすべての開発者のマシンに既にインストールされている標準のSSHクライアントを利用している点が特徴です。ssh -R 80:localhost:8080 serveo.netを実行すると、即座に公開URLが返されます。

Serveoは無料のSSHトンネルの定番でしたが、そのオープンで認証不要な性質がフィッシングやマルウェアの悪用を招き、ブラックリスト化や障害の原因となりました。現在のServeoの稼働は一貫性に欠け、地域や時間帯によって”稼働中”と”停止中”を行き来していることが多く、信頼性の高いサービスではありません。断続的にアクセス可能ですが、運用環境には適しません。

sishの登場:オープンソースの後継

開発者のAntonio Mikaによって作られたsishは、Serveoが残したギャップを埋めるためのオープンソースコミュニティの答えです。現在リリースはv2.23.0(2026年6月)で、GitHubスター約4.6千、フォーク数329、タグ付きリリース64、pico.shによるスポンサー支援を受けています。pico.shはMikaが運営するSSHを活用した開発者ツールプロジェクトです。

Serveoが単なるパブリックサービスだったのに対し、sishは自己ホスティングを前提に設計されています。SSHサーバーとして動作し、接続されたクライアントにトラフィックを転送します。

sishの重要なアップデート: もう自己ホスティングしなくても良くなりました。公式のマネージドサービスTuns.shが提供されており、VPSを触ることなくsishを試せる最速の方法です:

ssh -R 80:localhost:8080 tuns.sh

これだけで、ローカルポート8080で動作しているものの公開URLが即座に作成されます。サインアップ不要、クライアントインストール不要です。チームでカスタムドメインやプライベートトンネル、データの所在管理をしたい場合は、引き続き自己ホスティングが適しています。本ガイドの残りの部分ではその方法を解説します。

sishのスーパーパワー

sishがトンネリングツールの中で際立つ理由は何でしょうか?

  1. プロトコル対応: sishはHTTP、HTTPS、TCP、WS(WebSockets)、WSSに対応し、SNIベースのTLSルーティングも可能です(TLSの終端はしません)。
  2. クライアント不要: Serveoと同様に、ネイティブのSSHクライアント(ssh -R)を使用します。専用CLIやエージェントは不要です。
  3. TLS証明書: 自己提供の証明書、Let’s Encryptからのオンデマンド取得(--https-ondemand-certificate)、または公式Docker Composeデプロイで自動のワイルドカード証明書(DNS-01チャレンジを利用)に対応。
  4. マルチプレクシング: ワイルドカードサブドメインをサポートし、複数の開発者が動的にサブドメインをリクエスト可能(例:dev1.yourdomain.comapi-test.yourdomain.com)。
  5. セキュリティと認証: 最新リリースでは、SSH認証(公開鍵またはパスワード)がデフォルトで必要です(”オープンにして後からセキュアに”は廃止)。誰がトンネルに入れるかは事前に設定します。
  6. プライベートTCPエイリアスと負荷分散: パブリックトンネルだけでなく、認証済みSSHジャンプホスト経由でのみアクセス可能な内部TCPエイリアスや、複数クライアントでHTTP/TCP/SNIエンドポイントを共有できる負荷分散モードもサポート。
  7. トラフィック検査: 管理コンソールや各トンネルのサービスコンソールにより、転送されたリクエストの内容を確認可能。ngrokのトラフィックインスペクターに近づきつつ、トラフィックを第三者に送信しません。

ngrok vs. sish:どちらがあなたに適しているか?

機能 ngrok(SaaS) sish(自己ホスティングまたはマネージド)
アーキテクチャ 管理されたサードパーティサービス 自己ホスティング(インフラ上)またはTuns.shの公式マネージドサービス
クライアントソフト ngrok CLIエージェント必要 ネイティブSSH(sshコマンド)使用
カスタムドメイン Hobbyistプラン以上必要 自己ホスティングは無料、独自ドメインも可能
コスト 無料(制限あり)$20/月までの基本プラン 約$5/月のVPS+ドメイン、またはTuns.shの無料で試用
データプライバシー トラフィックはngrokクラウド経由 自分のVPS経由(自己ホスティング)
レートリミット 1GB/20kリクエスト(無料)、5GB/100k(Hobbyist)、超過は課金 sish自体の制限なし;VPSの帯域幅次第
エンドポイントタイムアウト なし(誤解が多い) なし
デフォルト認証 アカウント認証(SaaS) SSHキーまたはパスワード認証(最新リリースから必須)
セットアップ時間 即時 Tuns.sh経由は即時、自己ホスティングは約15〜30分
メンテナンス なし(管理済み) 最小限(OSとコンテナの更新)、Tuns.shは不要

ngrokを選ぶべき時: 完全管理されたエクスペリエンスとトラフィック検査機能を求め、無料プランのデータ・リクエスト制限を気にしない場合や、エンタープライズ機能(SSOや監査ログ)が必要な場合。

sishを選ぶべき時: 持続的なカスタムサブドメインを望み、SaaS料金を避けたい、データを第三者に渡したくない、または帯域幅を無制限にしたい場合。


sishと$5 VPSを使った自分だけのプライベートngrokの構築方法

前提条件

  1. クラウドVPS: DigitalOcean、Linode、Vultr、Hetznerなどの$5/月インスタンスで十分です。Ubuntu 22.04 LTSまたは24.04 LTSを選択。
  2. ドメイン名(例:my-tunnels.com)を用意し、VPSにトラフィックをルーティング。
  3. 基本的なターミナル操作とSSHの知識
  4. ローカルマシンのSSH公開鍵(通常は~/.ssh/id_ed25519.pub)を用意。sishは認証を最初から必要とするためです。

ステップ1:DNSレコードの設定

sishが動的にサブドメインをルーティングできるように、ワイルドカードDNSレコードを設定します。ドメイン登録業者のDNSパネルで、以下の2つのAレコードを作成します:

  1. メインレコード: ホストmy-tunnels.com(または@)→ VPSのIP
  2. ワイルドカード: ホスト*.my-tunnels.com→ VPSのIP

DNSの伝播には数分から数時間かかる場合があります。

ステップ2:VPSの準備(Dockerのインストール)

VPSにSSHで接続します:

ssh root@your_vps_ip

パッケージを更新します:

sudo apt update && sudo apt upgrade -y

公式スクリプトを使ってDockerをインストールします:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
docker --version

ステップ3:sishのデプロイとセキュリティ設定

古いsishのガイドでは認証なしで展開し、後からロックダウンする流れでしたが、これは推奨されません。最新のsishリリースではデフォルトでSSH認証が必要です。したがって、安全な設定と動作設定は同時に行います。

必要なディレクトリを作成し、公開鍵を配置します:

mkdir -p ~/sish/ssl ~/sish/keys ~/sish/pubkeys
cp ~/.ssh/id_ed25519.pub ~/sish/pubkeys/

最新のイメージを取得し、ドメインを置き換えて実行します:

docker pull antoniomika/sish:latest

docker run -itd --name sish \
  --restart always \
  -v ~/sish/ssl:/ssl \
  -v ~/sish/keys:/keys \
  -v ~/sish/pubkeys:/pubkeys \
  --net=host antoniomika/sish:latest \
  --ssh-address=:2222 \
  --http-address=:80 \
  --https-address=:443 \
  --https=true \
  --https-certificate-directory=/ssl \
  --authentication-keys-directory=/pubkeys \
  --private-keys-directory=/keys \
  --bind-random-ports=false \
  --domain=my-tunnels.com

これらのフラグについてのポイント: * --net=host:コンテナをホストのネットワークに直接バインドし、クライアントIPの正確なログを取るため。 * --ssh-address=:2222:ポート22と競合しないように設定。 * --authentication-keys-directory=/pubkeys:公開鍵を監視するフォルダを指定。追加や削除は自動で反映され、再起動不要。 * --bind-random-ports=false:クライアントが特定のTCPポートをリクエストできるように設定。 * この基本設定では、証明書は既に/sslに存在している必要があります(例:certbotで取得)。Let’s Encrypt証明書を自動取得したい場合は--https-ondemand-certificateや、DNSチャレンジを使った自動ワイルドカード証明書をサポートするDocker Composeデプロイを推奨します(dnsrobocertコンテナ付き)。

正常に起動しているか確認するには:

docker logs -f sish

ステップ4:プライベートなngrokのテスト

ローカルマシンから、ポート3000で動作するローカルサーバーに対して:

ssh -p 2222 -R 80:localhost:3000 my-tunnels.com

公開鍵が信頼されているため、すぐに接続され、次のようなHTTPS URLが返されます:

セッションを終了するにはCtrl-C
https://ランダム文字列.my-tunnels.com

カスタムサブドメインのリクエスト

ssh -p 2222 -R custom-name:80:localhost:3000 my-tunnels.com

これにより、https://custom-name.my-tunnels.comにバインドされます。ただし、そのサブドメインがすでに他のユーザーに使用されていなければです。

開発者アクセスの管理

pubkeysディレクトリは常に監視されているため、チームメンバーのアクセス追加や削除はファイル操作だけで完了します:

nano ~/sish/pubkeys/new_teammate.pub
# 公開鍵を貼り付けて保存

GitHubホストの公開鍵を簡単に追加するには:

curl https://github.com/彼らのGitHubユーザ名.keys  ~/sish/pubkeys/彼らのGitHubユーザ名

sishの高度な使い方

1. TCPトンネルでファイアウォールを回避

sishはHTTP/HTTPSだけでなく、MySQL(ポート3306)をリモートクライアントに公開することも可能です:

ssh -p 2222 -R 3306:localhost:3306 my-tunnels.com

リモートクライアントはmy-tunnels.com:3306に接続し、トラフィックは安全にローカルのデータベースにルーティングされます。

2. プライベートTCPエイリアス(公開しない設定)

認証済みSSHジャンプホスト経由でのみアクセス可能なTCPエイリアスもサポート。公開バインドはしません:

ssh -p 2222 -R mylaptop:22:localhost:22 my-tunnels.com

アクセスするチームメンバーは:

ssh -J my-tunnels.com mylaptop

3. チーム全体の統合

トンネルコマンドをチームのpackage.jsonMakefileに標準化:

"scripts": {
  "start": "react-scripts start",
  "tunnel": "ssh -p 2222 -R $(whoami)-dev:80:localhost:3000 my-tunnels.com"
}

Aliceがnpm run tunnelを実行するとalice-dev.my-tunnels.com、Bobはbob-dev.my-tunnels.comが得られます。

4. CI/CDパイプラインでのテスト

sishは標準のSSHクライアントだけで動作するため、GitHub ActionsやGitLab CIに簡単に組み込めます。仮のアプリインスタンスを立ち上げ、sishサーバーを経由してトンネルし、公開URLでエンドツーエンドテストを実行し、破棄します。

5. ロードバランシングとSNIルーティング

複数の開発者のトンネルを超えて利用する場合、sishのオプションのロードバランサーモード(--http-load-balancer--tcp-load-balancer--sni-load-balancer)を使えば、複数のクライアントが同じドメイン、ポート、またはSNIホスト名を共有可能です。これは、基本的なマルチインスタンスのフェイルオーバーに役立ちます。


まとめ

ngrokの洗練されたトラフィック検査ツールとその無料プランは依然として有用です。無料プランはデータとリクエストに制限がありますが、試用には十分です。しかし、コントロール、データプライバシー、コストの予測性を求めるチームにとっては、自己ホスティングがより簡単になっています。sishはセキュアにデフォルト設定され、Tuns.shのマネージドオプションも提供し、TCPエイリアスやSNIプロキシ、負荷分散、トラフィックコンソールなどの機能も拡充しています。これにより、商用のトンネリングプラットフォームとの差が縮まっています。

月約$5と20分のセットアップで、チーム全体がコントロールできるプライベートでカスタムブランドのトンネルサーバーを運用可能です。


更新履歴

この記事は2026年7月18日に、提出されたドラフトを元に書き直し、一次情報と照合して事実確認を行いました。

修正点: 1. ngrokの無料プランの2時間セッションタイムアウトの記述を完全に削除し、明示的に訂正。 ngrokの公式ドキュメントによると、無料エンドポイントにはタイムアウトはなく、バックグラウンドで無期限に動作可能です。制約は月間のデータ・リクエスト・接続数の上限のみです。出典:ngrok.com/docs/pricing-limits/free-plan-limits 2. ngrokの料金体系を最新の情報に更新。 以前のドラフトでは一般的な説明でしたが、現在の詳細はngrokの公式ページに基づき、無料プランは$0($5の一時クレジット付与)、3エンドポイント、月20kリクエスト、1GBのデータ転送、Hobbyistは$8/月(年額)または$10/月、5GB/100kリクエスト、従量課金は$20/月($20クレジット付)で無制限エンドポイント、企業向けはカスタム見積もりです。出典:ngrok.com/docs/pricing-limits 3. sishのDocker展開手順の修正。 旧ガイドの「認証なしで展開し後からロックダウン」方式は推奨されなくなり、最新のsishはデフォルトでSSH認証が必要です。公開鍵を~/sish/pubkeysに配置してから起動する流れに変更しました。出典:docs.ssi.sh/clidocs.ssi.sh/getting-started 4. Docker実行コマンドの更新。 最新の公式例に合わせ、--private-keys-directory=/keys--bind-random-ports=falseを追加しました。出典:github.com/antoniomika/sish(README)、docs.ssi.sh/getting-started 5. Let’s Encrypt自動化の記述修正。 公式のdocker runデプロイでは、証明書は既に/sslに存在している必要があり、--https-ondemand-certificateや、DNSチャレンジを使った自動ワイルドカード証明書のサポートは別途設定が必要です。出典:docs.ssi.sh/getting-started

追加事項(元のドラフトにはなかった): 6. sishの公式マネージドサービスTuns.shを紹介。これによりVPS不要でsishを試せます。出典:github.com/antoniomika/sishdocs.ssi.sh/getting-started 7. sishの現状とステータスを追加:リリースはv2.23.0(2026年6月)、GitHubスター約4.6千、フォーク329、タグ付きリリース64、pico.shによるスポンサー支援。出典:github.com/antoniomika/sish 8. sishのプライベートTCPエイリアス(SSHジャンプホスト経由の非公開アクセス)と負荷分散モード(--http-load-balancer--tcp-load-balancer--sni-load-balancer)を追加。出典:docs.ssi.sh/cligithub.com/antoniomika/sish 9. sishの管理コンソールとサービスコンソール機能を追加。トラフィックの検査や管理が可能です。出典:docs.ssi.sh/cli 10. Serveoの稼働状況について、第三者の稼働監視結果から、断定的なダウン状態の表現を緩和し、断続的にアクセス可能な状態を反映しました。出典:isitdownorjustme.net、notopening.com(2026年7月確認)

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

Related Topics

#ngrok vs sish, sish vs ngrok, sish, ngrok alternative, best ngrok alternative, free ngrok alternative, self hosted ngrok, self hosted ngrok alternative, serveo alternative, self hosted serveo, open source ngrok alternative, open source serveo alternative, ssh tunneling, ssh reverse tunnel, secure shell tunnel, local tunneling tool, private ngrok, build private ngrok, $5 vps proxy, cheap vps tunnel, self hosted tunneling service, private tunneling tool, route local traffic, expose localhost via ssh, bypass third party infrastructure, team ssh tunneling, standard ssh commands, port forwarding ssh, open source reverse proxy, self host webhooks, dynamic subdomain routing, automatic let's encrypt, custom domains proxy, http tunnel, https tunnel, tcp tunnel, websocket tunnel, ws tunnel, wss tunnel, sish github, sish tutorial, install sish vps, ngrok pricing alternative, ngrok limits bypass, local development server sharing, forward ports ssh, private localhost.run, self managed tunnel, ssh client port forwarding, secure tcp tunnel, websockets reverse proxy, let's encrypt ssl tunnel, custom domain ssh tunnel, web development tunneling tools, devops ssh tools, host internal apps public, self hosted url generator, persistent ssh tunnel, local environment proxy, bypass ngrok paywall

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