Development
12 min read
273 views

ミニマリストのエッジ:RustとGoのマイクロプロキシ

IT
InstaTunnel Team
Published by the InstaTunnel team | Editorial policy
ミニマリストのエッジ:RustとGoのマイクロプロキシ

Quick answer

Lightweight ngrok Alternatives: Rust & Go Micro-Proxies : localhost tunnel answer

A localhost tunnel gives your local app a public HTTPS URL without opening router ports, which is useful for demos, QA, mobile testing, and provider callbacks.

How do I expose localhost without opening ports?

Use a reverse HTTPS tunnel. Your machine connects outbound to the tunnel service, and the public URL forwards requests back to your local app.

When should I use a localhost tunnel?

Use one for webhook testing, OAuth callbacks, client demos, QA previews, mobile device checks, and short-lived development reviews.

インフラコミュニティ内で密かに熱狂的に支持されているトレンドがあります:開発者は重厚な商用プロキシサービスを、RustやGoで書かれた超ミニマルなオープンソースツールに置き換えつつあります。長年、ローカル開発サーバーの公開やCarrier-Grade NAT(CGNAT)のバイパスには、定番のサービスに頼るのが一般的でした。しかし、これらのプラットフォームがエンタープライズ向け機能にシフトするにつれ、エージェントは重くなり、無料枠も制限されてきています。

そこで登場するのがマイクロプロキシです。

bore、rathole、chiselといったオープンソースツールについて書くことは、ホームラボやIoT趣味者、エッジコンピューティング開発者にとって非常に魅力的です — 例えばRaspberry Piのような低メモリデバイス上でトンネルを運用し、RAMの一メガバイトが重要な場面です。Rustのメモリ安全性やGoの静的コンパイルを活用することで、これらのマイクロプロキシは高速で自己ホスト可能な代替手段を提供し、制御を開発者の手に取り戻します。

軽量なngrok代替の探索

クライアントにローカルWebアプリを見せたり、Webhookをテストしたり、自宅サーバーにコーヒーショップからアクセスしたりした経験があれば、トンネリングサービスを使ったことがあるでしょう。これらは、ローカルマシン上でエージェントを動かし、パブリッククラウドサーバーにダイヤルアウトして、ローカルのファイアウォールを突破します。クラウドサーバーは公開URLを提供し、そのトンネルを通じて着信トラフィックを中継します。

商用ソリューションは洗練されていますが、いくつかのトレードオフも伴います:

  • 接続と帯域幅の制限。 無料プランでは帯域制限や同時接続数の制限、アイドルセッションのタイムアウトがあります。
  • 機能の有料化。 SSHやデータベース用のTCPトンネル、永続的なカスタムドメインはサブスクリプションの対象となることが多いです。
  • エージェントの肥大化。 商用エージェントにはコンプライアンス機能、自動アップデーター、UIコンポーネントが含まれ、リソースの少ないエッジデバイスでは負荷となります。
  • プライバシーと制御。 暗号化されていないローカルトラフィックを第三者サーバー経由でルーティングすることは、盗聴のリスクを伴います。

これらの理由から、安価なVPSにホスティングでき、単一バイナリとして展開し、長時間稼働させられるソリューションへの需要が高まっています。以下に、そのニッチを埋める3つのツールと、それぞれがトラフィックに関して実際に保証する内容を見ていきましょう。これらのプロジェクトのマーケティングコピーは、実際のデフォルト設定を超えて語りすぎる傾向があるためです。

1. Bore:超シンプルなRust TCPトンネル

絶対的なシンプルさを求めるなら、boreが最適です。Eric Zhangによって作られたもので、Rustで書かれた現代的でシンプルなTCPトンネルです。ローカルポートをリモートサーバーに公開し、標準のNATファイアウォールをバイパスします — cite index=“7-1”高効率で意見の少ないTCPフォワーディングツールで、インストールも自己ホスティングも簡単ですite。執筆時点でGitHubスターは11.4k、フォークは514、MITライセンスで、crates.ioではバージョン0.6.0です。

Boreの仕組み

Boreは徹底的に意見を排除しています。 cite index=“7-1”このプロジェクトは約400行の安全な非同期Rustコードで構成されており、セットアップも非常に簡単です — クライアントとサーバーそれぞれに単一のバイナリを実行するだけです。ite TLS証明書の管理やダッシュボードはなく、HTTPトラフィックの検査も行いません。AからBへのバイトを転送し、7835の暗黙の制御ポートを使ってクライアントとサーバー間の新しい接続を交渉します。

最初に修正すべきポイント: boreは*デフォルトでは*トラフィックを暗号化しません。この点は、この記事の最初のドラフトでは省略されていました。boreはオプションの--secretフラグをサポートしますが、公式ドキュメントによると、その秘密はハンドシェイクの認証にのみ使われ、データプレーンの暗号化は行いません。プロトコルの認証セクションから読むと、クライアントは各接続でHMACチャレンジを通じて秘密の所持を検証しますが、「デフォルトではトラフィックは暗号化されません」。もし敏感な情報をbore経由で転送する場合は、TLSを自分で重ねる必要があります(下記のセキュリティセクション参照)。

簡単セットアップ

cargo install bore-cli

ローカルWebサーバー(ポート8000)を公開するには:

bore local 8000 --to bore.pub

ターミナルにはbore.pubで割り当てられたランダムなリモートポートが表示されます。--portで特定のポートを固定したり、--local-hostlocalhost以外のLANホストを公開したりも可能です。

自己ホスティングの場合は、VPS上でbore serverを実行します(必要に応じて--secretでハンドシェイク認証を設定し、--min-port/--max-portで公開範囲を制限)。その後、ローカルクライアントの--toフラグをVPSのアドレスに設定します。設定ファイルを書かずに即席のトンネルが必要なときに便利です。

2. Rathole:Rust製高性能NATトラバーサル

boreは一時的なテストに最適ですが、ratholeはより恒久的な用途を想定しています:ホームNASやIoTセンサーネットワークを安全に継続的に公開するためのツールです。リポジトリの移動について一言:rapiz1/ratholeからrathole-org/ratholeへ移行しています(旧URLもGitHubのリダイレクトで解決します)。現在、約14kスター、809フォーク、Apache-2.0ライセンスで、自己紹介にはcite index=“16-1”「Rust製の軽量で高性能な逆プロキシ、frpやngrokの代替」とあります。

セキュリティモデル — そして修正点

これも最初のドラフトで誤解を招いた部分です。ratholeのREADMEにはNoise Protocolサポートが明記されています:cite index=“16-1”「トークンはサービス認証に必須で、Noise Protocolを使えば暗号化も簡単に設定できる。自己署名証明書は不要」ite。ただし、重要なポイントが2つあります:

  1. tokenフィールドはサービス認証用であり、トランスポートの暗号化ではない。 これはクライアントが特定のサービスにバインドできることを証明するもので、ワイヤ上のデータには影響しません。
  2. 暗号化はオプションであり、自動ではない。 [transport]ブロックに`type =

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

Related Topics

#lightweight ngrok alternative, bore vs rathole, chisel reverse proxy, Raspberry Pi localhost tunnel, Rust micro proxy, Go micro proxy, rust tunneling tool, go tunneling tool, open source reverse proxy, bore proxy, rathole proxy, chisel tunnel, ekzhang bore, rathole rust, jpillora chisel, low memory reverse proxy, homelab tunneling, IoT localhost tunnel, edge computing tunneling, Raspberry Pi proxy, lightweight reverse proxy, minimal tunneling tool, self hosted reverse proxy, bore vs rathole vs chisel, rust reverse proxy, go reverse proxy, fast tcp tunnel, nat traversal rust, nat traversal tool, lightweight port forwarding, single binary reverse proxy, embedded system tunnel, low memory footprint proxy, secure tunneling rust, high performance reverse proxy, chisel socks proxy, chisel ssh tunnel, bore tcp tunnel, rathole nat traversal, homelab port forwarding, edge node proxy, lightweight ngrok replacement, open source ngrok alternative, low resource reverse proxy, custom localhost tunnel, reverse proxy for raspberry pi, iot micro proxy, minimal localhost proxy, fast port forwarding tool, rust networking tools, go networking tools, zero dependency tunnel, lightweight http proxy

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