2 ポイント 投稿者 GN⁺ 2024-04-03 | 1件のコメント | WhatsAppで共有

Wireproxy: WireGuardクライアントとしての Socks5/HTTP プロキシまたはトンネル

  • wireproxy は完全にユーザー空間で動作するアプリケーションで、WireGuard ピアに接続し、マシンに socks5/http プロキシまたはトンネルを提供する。
  • WireGuard ピア経由で特定のサイトに接続する必要があるが、ネットワークインターフェースを新たに設定する手間を避けたい場合に役立つ。

これが必要な理由

  • 単純に WireGuard をプロキシとして使い、一部のトラフィックだけを転送したいとき。
  • WireGuard の設定変更のために root 権限を持ちたくないとき。
  • 現在、ユーザーは別の国の WireGuard サーバーに接続された wireproxy を実行し、特定のサイトについてブラウザがそれを使うよう設定している。
  • wireproxy はネットワークインターフェースから完全に分離されており、設定のために root 権限を必要としない。
  • Amnezia VPN ユーザーは、@juev がフォークした wireproxy バージョンを使用できる。

機能

  • クライアントおよびサーバー向けの TCP 静的ルーティング
  • SOCKS5/HTTP プロキシ(現時点では CONNECT のみ対応)

やること

  • SOCKS5 での UDP 対応
  • UDP 静的ルーティング

使い方

./wireproxy -c [config 경로]
  • ユーザー空間の WireGuard クライアントとしてプロキシ機能を提供する。
  • -h はヘルプ、-c は設定ファイルのパス、-s はサイレントモード、-d はバックグラウンド実行、-v はバージョン出力、-n は設定ファイルの妥当性のみを検証するモード。

ビルド手順

git clone https://github.com/octeep/wireproxy
cd wireproxy
make

VPN と一緒に使う

  • MacOS で Firefox のコンテナタブと自動起動のために wireproxy を使う方法は、該当リンクで確認できる。

サンプル設定ファイル

  • [Interface][Peer] の設定は、wg-quick 設定と同じ意味と構文に従う。
  • TCPClientTunnel と TCPServerTunnel は、それぞれローカルマシンと WireGuard ネットワークで TCP トラフィックを特定の対象へ転送するトンネルである。
  • STDIOTunnel は、wireproxy プロセスの標準入力と標準出力を WireGuard 経由で特定の TCP 対象に接続するトンネルである。
  • Socks5 と http は、LAN 上に socks5 プロキシと http プロキシを作成し、すべてのトラフィックを WireGuard 経由でルーティングする。
  • すでに WireGuard 設定がある場合は、wireproxy 設定ファイルでそれを取り込める。
  • 複数のピアをサポートしており、AllowedIPs は wireproxy がどのピアに転送すべきか判断できるよう指定する必要がある。

GN⁺の意見

  • wireproxy は、ネットワーク設定に関する深い知識がなくても、VPN を通じた安全なインターネット接続を望むユーザーにとって非常に有用になり得る。
  • このアプリケーションは、システムレベルのネットワーク設定を変更せずに、特定のトラフィックを WireGuard 経由でルーティングできる点が魅力的である。
  • ただし、ユーザーがネットワークセキュリティを十分に理解していない場合、誤った設定によってセキュリティ脆弱性が生じる可能性があるため注意が必要である。
  • WireGuard 技術を導入する際には、地域の法的制約とプライバシーポリシーを考慮し、VPN の利用が許可されているか確認する必要がある。
  • 類似の機能を提供する他のオープンソースプロジェクトとしては、OpenVPN、SoftEther VPN などがあり、ユーザーは自分の要件に合ったツールを選ぶべきである。

1件のコメント

 
GN⁺ 2024-04-03
Hacker Newsの意見
  • 便利な小さなツールについての議論

    • あるユーザーは、このツールを使って特定の Firefox タブを WireGuard を使用する自宅ルーターへプロキシしている。アプリケーション層のプロキシプロトコルや SSH なしでも動作する。
    • 別のユーザーは、WireGuard と併用するために soks を好んでいる。既存の WireGuard インターフェースを再利用でき、ユーザーは自身のブログ記事でこれについて詳しく説明している。
    • 別のツールとしては onetun もある。
    • あるユーザーは、SSH トンネルの代替となるツールとして pproxy に言及している。pproxy はさまざまなトンネルプロトコルを相互変換し、ルーティング機能も提供する。ユーザーは SSH SOCKS5 を HTTP プロキシに変換するために使っている。
  • さまざまなプロキシクライアントに関する情報

    • 複数のマルチプロトコル・プロキシクライアントがこの機能をサポートしている。オープンソースの例としては sing-boxclash-meta およびその他の clash ベースのクライアント、xray がある。
    • クローズドソースのクライアントとしては Surge Mac/iOS がある。
  • ユーザー空間サーバー実装についての質問

    • あるユーザーは、tun/tap デバイスなしで完全にユーザー空間で動作するサーバー実装があるのか疑問に思っている。そのためには、何らかのユーザー空間 IP スタックが必要になるのではないかと推測している。
  • 特定の VPN サービス向けツールの推薦

    • Mullvad VPN 向けのツールとして mullvad-proxy を使った良い経験が共有されている。Mullvad CLI ツールを内蔵しているためサーバーの切り替えが簡単で、ホストマシンからも分離されている。また、nginx といくつかのスクリプトで構成されているため、SOCKS5 サポートも優れていると期待される。
  • Go 言語で書かれたツールへの好意的な反応

    • あるユーザーは、Go 言語ならこのようなツールを簡単に書けるだろうと思っており、実際にその通りであることを知った。
  • 個人的なユースケースについての議論

    • あるユーザーは、この種のツールを使って Thunderbird のメール接続を Tailscale の exit node 経由でプロキシしたいと考えている。これにより、すべてのトラフィックを exit node にリダイレクトすることなく、メール接続だけをプロキシできる。
  • sing-box の機能への言及

    • sing-box も同じ機能を提供するという情報が共有されている。