Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
udp2raw — UDPトラフィックを暗号化されたUDP/FakeTCP/ICMPトラフィックに変換し、Raw Socketを使用してUDPファイアウォール(または不安定なUDP環境)をバイパスするのに役立つトンネル | Kitploit
ツール/GitHubGitHub/wangyu-/udp2raw
暗号化/復号化ツールIDS/IPS回避ネットワークセキュリティ
GitHubwangyu-/udp2raw

udp2raw

UDPトラフィックを暗号化されたUDP/FakeTCP/ICMPトラフィックに変換し、Raw Socketを使用してUDPファイアウォール(または不安定なUDP環境)をバイパスするのに役立つトンネル

リポジトリを見る
8.5k1.3k10ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Udp2raw-tunnel

Raw Socket を使用して UDP トラフィックを暗号化された FakeTCP/UDP/ICMP トラフィックに変換し、UDP ファイアウォール(または不安定な UDP 環境)をバイパスするトンネルです。

単体で使用する場合、udp2raw は UDP トラフィックのみをトンネリングします。ただし、udp2raw と任意の UDP ベースの VPN を併用すると、あらゆるトラフィック(TCP/UDP/ICMP を含む)をトンネリングできます。現在、OpenVPN/L2TP/ShadowVPN および tinyfecVPN がサポートされていることが確認されています。

image0

または

image_vpn

udp2raw wiki

简体中文

サポートプラットフォーム

root アカウントまたは cap_net_raw ケーパビリティを持つ Linux ホスト(デスクトップ Linux、Android スマートフォン/タブレット、OpenWRT ルーター、Raspberry Pi を含む)。

Windows および MacOS ユーザーは、このリポジトリ の udp2raw を使用してください。

機能

ICMP/FakeTCP/UDP ヘッダーで UDP パケットを送受信

ICMP/FakeTCP ヘッダーは、一部の ISP による UDP ブロッキング、UDP QoS、または不適切な UDP NAT 動作をバイパスするのに役立ちます。ICMP ヘッダーモードでは、udp2raw は ICMP トンネルのように動作します。

UDP ヘッダーもサポートされています。UDP ヘッダーモードでは、通常の UDP トンネルのように動作し、暗号化、アンチリプレイ、接続安定化などの他の機能を利用できます。

リアルタイム/順序外配信を備えた擬似 TCP

FakeTCP ヘッダーモードでは、udp2raw は接続確立時に 3 ウェイハンドシェイクをシミュレートし、データ転送中に seq と ack_seq をシミュレートします。また、MSS、sackOk、TS、TS_ack、wscale などのいくつかの TCP オプションもシミュレートします。ファイアウォールは FakeTCP を TCP 接続とみなしますが、本質的には UDP です。通常の UDP と同様にリアルタイム/順序外配信をサポートし、輻輳制御や再送信は行いません。そのため、OpenVPN 使用時に TCP over TCP 問題は発生しません。

暗号化、アンチリプレイ

  • AES-128-CBC でトラフィックを暗号化します。
  • HMAC-SHA1(またはより弱い MD5/CRC32)でデータ整合性を保護します。
  • アンチリプレイウィンドウでリプレイ攻撃を防御します。

暗号化に関する注意

障害検出と安定化(接続回復)

接続障害はハートビートによって検出されます。タイムアウトすると、クライアントは自動的にポート番号を変更して再接続します。再接続が成功すると、以前の接続が回復され、既存のすべての UDP セッションは有効なまま維持されます。

たとえば、udp2raw + OpenVPN を使用している場合、ネットワークケーブルが抜き差しされたり、WiFi アクセスポイントが変更されたりしても、OpenVPN は再接続後に切断されません。

その他の機能

  • 多重化: 1 つのクライアントで複数の UDP 接続を処理でき、すべてが同じ raw 接続を共有します。
  • 複数クライアント: 1 つのサーバーに複数のクライアントを持たせることができます。
  • NAT サポート: 3 つのモードすべてが NAT 環境で動作します。
  • OpenVZ サポート: BandwagonHost VPS でテスト済み。
  • 簡単なビルド: 依存関係はありません。udp2raw をクロスコンパイルするには、ツールチェーンをダウンロードし、makefile を編集してツールチェーンを指定し、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 でサービスが待機しているとします。

root@kitploit:~
# サーバー側で実行:
./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 を省略できます。

高度なトピック

使用方法

root@kitploit:~
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]

common options,these options must be same on both side:
    --raw-mode            <string>        available values:faketcp(default),udp,icmp and easy-faketcp
    -k,--key              <string>        password to gen symetric key,default:"secret key"
    --cipher-mode         <string>        available values:aes128cfb,aes128cbc(default),xor,none
    --auth-mode           <string>        available values:hmac_sha1,md5(default),crc32,simple,none
    -a,--auto-rule                        auto add (and delete) iptables rule
    -g,--gen-rule                         generate iptables rule then exit,so that you can copy and
                                          add it manually.overrides -a
    --disable-anti-replay                 disable anti-replay,not suggested
    --fix-gro                             try to fix huge packet caused by GRO. this option is at an early stage.
                                          make sure client and server are at same version.
client options:
    --source-ip           <ip>            force source-ip for raw socket
    --source-port         <port>          force source-port for raw socket,tcp/udp only
                                          this option disables port changing while re-connecting
other options:
    --conf-file           <string>        read options from a configuration file instead of command line.
                                          check example.conf in repo for format
    --fifo                <string>        use a fifo(named pipe) for sending commands to the running program,
                                          check readme.md in repository for supported commands.
    --log-level           <number>        0:never    1:fatal   2:error   3:warn
                                          4:info (default)     5:debug   6:trace
    --log-position                        enable file name,function name,line number in log
    --disable-color                       disable log color
    --disable-bpf                         disable the kernel space filter,most time its not necessary
                                          unless you suspect there is a bug
    --dev                 <string>        bind raw socket to a device, not necessary but improves performance
    --sock-buf            <number>        buf size for socket,>=10 and <=10240,unit:kbyte,default:1024
    --force-sock-buf                      bypass system limitation while setting sock-buf
    --seq-mode            <number>        seq increase mode for faketcp:
                                          0:static header,do not increase seq and ack_seq
                                          1:increase seq for every packet,simply ack last seq
                                          2:increase seq randomly, about every 3 packets,simply ack last seq
                                          3:simulate an almost real seq/ack procedure(default)
                                          4:similiar to 3,but do not consider TCP Option Window_Scale,
                                          maybe useful when firewall doesnt support TCP Option
    --lower-level         <string>        send packets at OSI level 2, format:'if_name#dest_mac_adress'
                                          ie:'eth0#00:23:45:67:89:b9'.or try '--lower-level auto' to obtain
                                          the parameter automatically,specify it manually if 'auto' failed
    --wait-lock                           wait for xtables lock while invoking iptables, need iptables v1.4.20+
    --gen-add                             generate iptables rule and add it permanently,then exit.overrides -g
    --keep-rule                           monitor iptables and auto re-add if necessary.implys -a
    --hb-len              <number>        length of heart-beat packet, >=0 and <=1500
    --mtu-warn            <number>        mtu warning threshold, unit:byte, default:1375
    --clear                               clear any iptables rules added by this program.overrides everything
    --retry-on-error                      retry on error, allow to start udp2raw before network is initialized
    -h,--help                             print this help message

iptables ルール、-a および -g

このプログラムは raw ソケットを介してパケットを送信します。FakeTCP モードでは、Linux カーネルの TCP パケット処理を両側で iptables ルールによってブロックする必要があります。そうしないと、カーネルが認識できない TCP パケットに対して自動的に RST を送信し、安定性/パフォーマンスの問題が発生します。-a オプションを使用すると、プログラムが開始/終了時に自動的に iptables ルールを追加/削除します。-g オプションを使用して iptables ルールを生成し、手動で追加することもできます。

--cipher-mode および --auth-mode

最大のセキュリティを得るには、aes128cbc + hmac_sha1 を使用することをお勧めします。ルーター上でプログラムを実行する場合は、xor + simple を試すことができます。これにより、ほとんどの場合、ファイアウォールによるパケット検査を欺くことができますが、深刻な攻撃から保護することはできません。none モードはデバッグ目的のみです。cipher-mode や auth-mode を none に設定することはお勧めしません。

--seq-mode

FakeTCP モードは、実際の TCP 接続と 100% 同じように動作するわけではありません。ISP は、シミュレートされた TCP トラフィックと実際の TCP トラフィックを区別できる可能性があります(ただし、コストがかかります)。seq-mode を使用すると、シーケンス増加動作をわずかに変更できます。接続に問題が発生した場合は、値を変更してみてください。

--lower-level

--lower-level を使用すると、OSI レベル 2(リンクレベル)でパケットを送信できるため、ローカルの iptables ルールをバイパスできます。udp2raw と競合する複雑な iptables ルールがあり、そのルールを編集できない(または編集するのが面倒な)場合、--lower-level は非常に便利です。--lower-level auto を試してパラメータを自動検出し、auto が失敗した場合は手動で指定できます。

手動形式は if_name#dest_mac_adress、例:eth0#00:23:45:67:89:b9。

--keep-rule

iptables を監視し、必要に応じて iptables ルール(カーネル TCP 処理をブロックするため)を自動的に再追加します。特に、他のプログラムによって iptables ルールがクリアされる可能性がある場合に便利です(たとえば、OpenWrt を使用している場合、設定を変更してコミットするたびに iptables ルールがクリアされ、再構築される可能性があります)。

--conf-file

ps コマンドから秘密を守るために、コマンドラインではなく設定ファイルからオプションを読み込むこともできます。

たとえば、上記の server の例(はじめにのセクション)のオプションを設定ファイルに書き換えます。

server.conf

root@kitploit:~
-s
# このようにコメントを追加できます
# コメントは行全体を占める必要があります
# そうでないと期待通りに動作しません
# 待受アドレス
-l 0.0.0.0:4096
# リモートアドレス
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

-k パラメータに注意してください:コマンドラインモードでは、パスワードの周りの引用符はシェルによって削除されます。設定ファイルでは引用符は削除しません。

その後、サーバーを次のように起動します。

root@kitploit:~
./udp2raw_amd64 --conf-file server.conf

--fifo

実行中のプログラムにコマンドを送信するために fifo(名前付きパイプ)を使用します。例:--fifo fifo.file。

クライアント側では、echo reconnect >fifo.file を使用してクライアントに強制的に再接続させることができます。現在、サーバー用のコマンドは実装されていません。

パフォーマンステスト

テスト方法:

iperf3 TCP via OpenVPN + udp2raw (iperf3 UDP モードは、この issue で言及されているバグのため使用されていません:https://github.com/esnet/iperf/issues/296。代わりに、OpenVPN を使用して TCP トラフィックを UDP にパッケージ化し、パフォーマンスをテストします。詳細は アプリケーション を参照してください。

iperf3 コマンド:

root@kitploit:~
iperf3 -c 10.222.2.1 -P40
iperf3 -c 10.222.2.1 -P40 -R

環境

  • クライアント Vultr $2.5/月プラン(シングルコア 2.4GHz CPU、512MB RAM、東京、日本)
  • サーバー BandwagonHost $3.99/年プラン(シングルコア 2.0GHz CPU、128MB RAM、ロサンゼルス、アメリカ)

テスト1

raw_mode: faketcp cipher_mode: xor auth_mode: simple

image4

(逆方向の速度も同様で、アップロードしていません)

テスト2

raw_mode: faketcp cipher_mode: aes128cbc auth_mode: md5

image5

(逆方向の速度も同様で、アップロードしていません)

wiki

詳細については wiki を確認してください:

https://github.com/wangyu-/udp2raw-tunnel/wiki

ツールをダウンロード