
UDPトラフィックを暗号化されたUDP/FakeTCP/ICMPトラフィックに変換し、Raw Socketを使用してUDPファイアウォール(または不安定なUDP環境)をバイパスするのに役立つトンネル
Raw Socket を使用して UDP トラフィックを暗号化された FakeTCP/UDP/ICMP トラフィックに変換し、UDP ファイアウォール(または不安定な UDP 環境)をバイパスするトンネルです。
単体で使用する場合、udp2raw は UDP トラフィックのみをトンネリングします。ただし、udp2raw と任意の UDP ベースの VPN を併用すると、あらゆるトラフィック(TCP/UDP/ICMP を含む)をトンネリングできます。現在、OpenVPN/L2TP/ShadowVPN および tinyfecVPN がサポートされていることが確認されています。

または

root アカウントまたは cap_net_raw ケーパビリティを持つ Linux ホスト(デスクトップ Linux、Android スマートフォン/タブレット、OpenWRT ルーター、Raspberry Pi を含む)。
Windows および MacOS ユーザーは、このリポジトリ の udp2raw を使用してください。
ICMP/FakeTCP ヘッダーは、一部の ISP による UDP ブロッキング、UDP QoS、または不適切な UDP NAT 動作をバイパスするのに役立ちます。ICMP ヘッダーモードでは、udp2raw は ICMP トンネルのように動作します。
UDP ヘッダーもサポートされています。UDP ヘッダーモードでは、通常の UDP トンネルのように動作し、暗号化、アンチリプレイ、接続安定化などの他の機能を利用できます。
FakeTCP ヘッダーモードでは、udp2raw は接続確立時に 3 ウェイハンドシェイクをシミュレートし、データ転送中に seq と ack_seq をシミュレートします。また、MSS、sackOk、TS、TS_ack、wscale などのいくつかの TCP オプションもシミュレートします。ファイアウォールは FakeTCP を TCP 接続とみなしますが、本質的には UDP です。通常の UDP と同様にリアルタイム/順序外配信をサポートし、輻輳制御や再送信は行いません。そのため、OpenVPN 使用時に TCP over TCP 問題は発生しません。
接続障害はハートビートによって検出されます。タイムアウトすると、クライアントは自動的にポート番号を変更して再接続します。再接続が成功すると、以前の接続が回復され、既存のすべての UDP セッションは有効なまま維持されます。
たとえば、udp2raw + OpenVPN を使用している場合、ネットワークケーブルが抜き差しされたり、WiFi アクセスポイントが変更されたりしても、OpenVPN は再接続後に切断されません。
make cross を実行するだけです。(注:デスクトップ、Raspberry Pi、Android、一部の OpenWrt ルーター向けのプリコンパイル済みバイナリは Releases に既に含まれています)Bypass UDP QoS Bypass UDP Blocking Bypass OpenVPN TCP over TCP problem OpenVPN over ICMP UDP to ICMP tunnel UDP to TCP tunnel UDP over ICMP UDP over TCP
https://github.com/wangyu-/udp2raw-tunnel/releases からバイナリリリースをダウンロードしてください。
UDP がブロックされているか、QoS が適用されているか、サポートが不十分であると仮定します。サーバー IP が 44.55.66.77 で、UDP ポート 7777 でサービスが待機しているとします。
# サーバー側で実行:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -k "passwd" --raw-mode faketcp -a
# クライアント側で実行
./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -k "passwd" --raw-mode faketcp -a
(上記のコマンドは root で実行する必要があります。セキュリティを向上させるために、追加の手順を踏むことで非 root として udp2raw を実行できます。詳細については このリンク を参照してください)


これで、クライアントとサーバー間に、TCP ポート 4096 を介した暗号化 raw トンネルが確立されました。クライアント側の UDP ポート 3333 に接続することは、サーバー側のポート 7777 に接続することと同じです。UDP トラフィックは露出しません。
Android で実行する場合は、Android_Guide を確認してください。
-a オプションは、自動的に iptables ルール(またはいくつかの iptables ルール)を追加します。udp2raw はこの iptables ルールに依存して安定して動作します。-a を忘れないように注意してください(よくある間違いです)。udp2raw に iptables ルールを自動的に追加させたくない場合は、手動で追加(-g オプションを参照)し、-a を省略できます。
udp2raw-tunnel
git version:4623f878e0 build date:Nov 3 2024 23:15:46
repository: https://github.com/wangyu-/udp2raw-tunnel
usage:
run as client : ./this_program -c -l local_listen_ip:local_port -r server_address:server_port [options]
run as server : ./this_program -s -l server_listen_ip:server_port -r remote_address:remote_port [options]