ngrokに代わる注目のオープンソース「Zrok」:開発者が乗り換える理由

BBetter Stack
Internet TechnologySmall Business/StartupsComputing/Software

Transcript

00:00:00完璧な世界なら ローカルホストの共有は簡単なはずですが 現実には
00:00:05厄介なことになりがちです
00:00:06ngrokを開けば制限にぶつかり ランダムなURLが発行され 10秒で終わるはずのことが
00:00:11すべてを台無しにします
00:00:12さらに悪いことに 特定の誰かとだけ共有したいのに
00:00:16公開したくない場合もあります
00:00:17そこで「zrock」です
00:00:18OpenZitiをベースに構築された ゼロトラスト対応のngrok代替オープンソースで
00:00:24トンネリングの不満点を解消してくれるため 乗り換える開発者が増えています
00:00:33では zrockとは何でしょうか?
00:00:34基本的には ローカルアプリやファイル さらにはTCP/UDPサービスを
00:00:40ポート開放やルーター設定 公開IPなしで 公開・非公開問わず共有できます
00:00:45すべてがエンドツーエンドで暗号化されるため 必要なものだけを公開し
00:00:50余計なものを晒す必要がない という考え方です
00:00:52無料で セルフホストも可能 ゼロトラスト・メッシュ上に構築されているため
00:00:58意図しない限り トラフィックがパブリックなインターネットに触れることはありません
00:01:01しかも動作がスムーズなのが気に入っています
00:01:03カスタムドメインやパフォーマンスの向上 新しいUIなども備えています
00:01:07しかし 速くなければ意味がありません 実際にお見せしましょう
00:01:10オープンソースツールや 開発を効率化するヒントがお好きなら
00:01:15ぜひBetter Stackチャンネルを登録してください
00:01:16常に新しい動画を公開しています
00:01:18さて 準備は万端です localhostでシンプルなNext.jsアプリを動かしています
00:01:23凝ったものではなく デフォルトのページが表示されているだけです
00:01:26これをするには 手順がいくつか必要だと思いますよね?
00:01:30ポートや設定 準備が必要そうですが これを見てください
00:01:34まず zrockの環境が有効であることを確認します
00:01:37これは「zrock enable」で行う一度限りの設定です
00:01:40あとは このコマンドを1つ実行するだけです
00:01:44本当にそれだけです
00:01:45設定ファイルも追加の準備も不要で 即座に公開用のhttps URLが発行されます
00:01:51ここから開いてみると はい 正常に動作しています
00:01:55アプリがインターネット上に公開されました
00:01:57ポートフォワーディングも
00:01:58ファイアウォールの変更もしていません
00:02:00この時点では公開状態ですが ここで問題が起きる可能性もあります
00:02:05一旦停止しましょう
00:02:06Control+C。では 多くの開発者が本当に求めているバージョンを試します
00:02:10「share private」で同じアプリを共有しますが 挙動が全く異なります
00:02:17公開URLの代わりにトークンが発行されます ここが大きな違いです
00:02:23アクセスが開放されるのではなく
00:02:25トークンを使用することでアクセスが許可されるのです
00:02:28信頼できる人が トークンを使って「zrock access private」を実行すれば
00:02:34その時初めてアクセスできるようになります
00:02:36ボットによるスキャンも 意図しないトラフィックも一切ありません
00:02:42制御されたアクセスのみです
00:02:44アプリを晒すのではなく 許可した相手にだけ選択的にアクセスを許す
00:02:49これが両者の大きな違いです アプリ以外にも使えます
00:02:53ファイルやフォルダでも同じことができます
00:02:56「backend mode drive」で ディレクトリ全体をブラウズ可能なドライブとして共有できます
00:03:02単なるトンネリングではなく 制御された共有です
00:03:04それこそが zrockが提供してくれるものです
00:03:06なぜこれが重要なのでしょうか?
00:03:08多くのトンネリングツールには 妥協が伴うからです
00:03:12ngrokは洗練されていますが 無料枠には制限があります
00:03:15Cloudflare Tunnelは素晴らしいですが セットアップの手間がかかります
00:03:19Tailscaleは優秀ですが さっと共有したいだけなら大掛かりすぎます
00:03:24速度 プライバシー 制御のどれかを選ばざるを得ないのが zrockが解決する問題です
00:03:29ファイアウォールの設定は不要 素晴らしい
00:03:32NATの問題もありません いいですね
00:03:35プライベート共有は 本当にプライベートです これこそが求めていたものです
00:03:38ゲームサーバーやVOIP IoT向けのUDPサポートや 内蔵のファイル共有もあります
00:03:44これらは日々の開発業務に役立ちます
00:03:46Webhookのテストもそうですね
00:03:48これらすべてに zrockを活用できます
00:03:52ここで zrockとngrokを簡単に比較してみましょう
00:03:54ngrokは洗練された製品のように感じられます 実際にそうですから
00:03:58対してzrockは 自分が所有しているツールのように感じられます
00:04:00そこが大きな違いです
00:04:02ngrokはプロプライエタリですが zrockはオープンソースです
00:04:05セルフホストも可能です
00:04:06制御とプライバシーを重視するなら これは大きな利点です
00:04:10次にプライベート共有についてです
00:04:12ngrokでは これはどちらかというと付け足しの機能です
00:04:15統合されているわけではありません
00:04:16zrockでは 設計の核となるアイデアの一部です
00:04:19対応プロトコルも重要です
00:04:22ngrokは主にHTTPとTCPに焦点を当てています
00:04:26zrockはその両方に加え UDPもサポートしています
00:04:29公平に言えば ngrokにはリクエストの再現やインスペクション機能がありますが
00:04:35zrockにはありません
00:04:36そして それが重要な場合もあります
00:04:37zrockは優れていますが
00:04:38完璧ではありません
00:04:39シンプルであるところが好まれています
00:04:41プライバシー第一であること
00:04:43それは非常に大きな要素です
00:04:44セルフホストすれば すべてを完全にコントロールできます
00:04:47ただ 他のオープンソースツールと同様に 妥協点もあります
00:04:50特にセルフホストを深掘りする場合 学習曲線が存在します
00:04:55ngrokのような 組み込みのリクエストインスペクションはありません
00:04:58環境によっては 若干のレイテンシを感じるかもしれません
00:05:01それでも 多くの開発者にとっては より適した選択肢となるでしょう
00:05:05では zrockは試す価値があるでしょうか?
00:05:06それが今回の問いですね
00:05:08手軽に共有できないことが悩みなら 試す価値は十分にあります
00:05:12特に 制御やプライバシーを犠牲にしたくないのであれば
00:05:15zrockがそれを解決してくれます
00:05:16オープンソースのツールやヒントがお好きなら ぜひBetter Stackチャンネルを
00:05:20登録してください
00:05:21それでは また別の動画でお会いしましょう

Key Takeaway

zrockは、ngrokの制限や公開リスクを排除し、独自のゼロトラスト・メッシュネットワークを通じてUDP支援や完全プライベートな共有を実現するオープンソースの代替手段である。

Highlights

zrockはOpenZitiをベースに構築されたオープンソースのプロフラムであり、ポート開放や固定IPなしでローカル環境を共有できる。

「zrock share private」コマンドを使用すると、公開URLの代わりに特定のトークンを発行し、許可したユーザーのみにアクセスを制限できる。

HTTPやTCPに加え、ゲームサーバーやIoTデバイスで利用されるUDPプロトコルを標準でサポートしている。

「backend mode drive」機能を実行することで、特定のディレクトリ全体をブラウズ可能なネットワークドライブとして共有可能になる。

セルフホストに対応しており、パブリックなインターネットにトラフィックを晒すことなく完全な制御権を保持できる。

Timeline

既存のトンネリングツールにおける制限と課題

  • ngrokの無料枠には接続制限やランダムURLの不便さが存在する。
  • 従来のツールは意図しない第三者への公開リスクを伴う場合が多い。
  • OpenZitiを基盤としたzrockはエンドツーエンドの暗号化によりこの問題を解消する。

開発者がローカルホストを共有する際、ルーター設定やファイアウォールの変更といった手間が障壁となる。多くの既存ツールは利便性と引き換えにセキュリティやコストの制限を課すが、zrockはゼロトラスト・アーキテクチャを採用することで、安全かつスムーズな共有を可能にする。セルフホストを選択すれば、データのプライバシーを完全に自己管理下に置くことができる。

コマンド1つで完了する公開共有の実演

  • 「zrock enable」による一度限りの環境設定が必要になる。
  • 設定ファイルなしで即座にHTTPSプロトコルの公開URLが発行される。
  • Next.jsなどのローカルアプリをポートフォワーディングなしで外部公開できる。

実際にローカルで稼働しているNext.jsアプリケーションを例に、共有の手順が示される。複雑なネットワーク設定を一切介さず、最小限のコマンド入力だけでインターネット経由のアクセスが可能になる。これはウェブサイトのクイックなプレビューや一時的なデモにおいて高い効率を発揮する。

トークンベースのプライベート共有とディレクトリ共有

  • プライベート共有モードではボットのスキャンを完全に遮断できる。
  • アクセス側は「zrock access private」を実行して初めて接続が許可される。
  • 「backend mode drive」によりディレクトリをドライブとして共有する機能を持つ。

単なる公開URLの発行にとどまらず、アクセス権を持つ特定の相手にのみ接続を許可する仕組みが重要視される。信頼されたユーザーがトークンを利用することで、初めて通信経路が確立されるため、安全性が飛躍的に向上する。また、アプリケーションだけでなくファイルシステムそのものを共有対象にできる柔軟性を備えている。

ngrokとの比較および導入時の注意点

  • ngrokはHTTP/TCPに特化しているが、zrockはUDPも標準サポートする。
  • リクエストのインスペクション機能は備えておらず、必要に応じて他ツールとの併用を要する。
  • セルフホストの運用には一定の学習曲線とレイテンシの可能性がある。

Cloudflare TunnelやTailscaleと比較して、zrockは速度とプライバシー、制御のバランスに優れている。ngrokのような高度なリクエスト再現機能はないものの、オープンソースであることの利点やUDP対応はゲームサーバーやIoT開発において大きなアドバンテージとなる。導入にあたっては、運用のしやすさと機能のトレードオフを考慮する必要がある。

Community Posts

View all posts