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件のコメント
Hacker Newsの意見
便利な小さなツールについての議論
さまざまなプロキシクライアントに関する情報
ユーザー空間サーバー実装についての質問
特定の VPN サービス向けツールの推薦
Go 言語で書かれたツールへの好意的な反応
個人的なユースケースについての議論
sing-box の機能への言及