Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
udp2raw — Ein Tunnel, der UDP-Verkehr in verschlüsselten UDP-/FakeTCP-/ICMP-Verkehr umwandelt, indem er Raw Socket verwendet, hilft Ihnen, UDP FireWalls (oder instabile UDP-Umgebungen) zu umgehen. | Kitploit
Tools/GitHubGitHub/wangyu-/udp2raw
Verschlüsselungs-/EntschlüsselungstoolsIDS/IPS-UmgehungNetzwerksicherheit
GitHubwangyu-/udp2raw

udp2raw

Ein Tunnel, der UDP-Verkehr in verschlüsselten UDP-/FakeTCP-/ICMP-Verkehr umwandelt, indem er Raw Socket verwendet, hilft Ihnen, UDP FireWalls (oder instabile UDP-Umgebungen) zu umgehen.

Repository anzeigen
8.5k1.3kvor 10 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Udp2raw-tunnel

Ein Tunnel, der UDP-Datenverkehr mithilfe von Raw Sockets in verschlüsselten FakeTCP/UDP/ICMP-Datenverkehr umwandelt und Ihnen hilft, UDP-Firewalls (oder instabile UDP-Umgebungen) zu umgehen.

Wenn es allein verwendet wird, tunnelt udp2raw nur UDP-Datenverkehr. Wenn Sie jedoch udp2raw zusammen mit einem beliebigen UDP-basierten VPN verwenden, können Sie jeden Datenverkehr (einschließlich TCP/UDP/ICMP) tunneln. Derzeit werden OpenVPN/L2TP/ShadowVPN und tinyfecVPN als unterstützt bestätigt.

image0

oder

image_vpn

udp2raw wiki

简体中文

Support Platforms

Linux-Host (einschließlich Desktop-Linux, Android-Handy/Tablet, OpenWRT-Router oder Raspberry Pi) mit Root-Konto oder cap_net_raw-Fähigkeit.

Für Windows- und macOS-Benutzer verwenden Sie das udp2raw in diesem Repository.

Features

Senden/Empfangen von UDP-Paketen mit ICMP/FakeTCP/UDP-Headern

ICMP/FakeTCP-Header helfen Ihnen, UDP-Blockaden, UDP-QoS oder fehlerhaftes UDP-NAT-Verhalten bei einigen ISPs zu umgehen. Im ICMP-Header-Modus funktioniert udp2raw wie ein ICMP-Tunnel.

UDP-Header werden ebenfalls unterstützt. Im UDP-Header-Modus verhält es sich wie ein normaler UDP-Tunnel, und Sie können einfach die anderen Funktionen (wie Verschlüsselung, Anti-Replay oder Verbindungsstabilisierung) nutzen.

Simuliertes TCP mit Echtzeit-/Außer-der-Reihe-Zustellung

Im FakeTCP-Header-Modus simuliert udp2raw beim Aufbau einer Verbindung den 3-Wege-Handshake und simuliert beim Datenübertragen seq und ack_seq. Es simuliert auch einige TCP-Optionen wie: MSS, sackOk, TS, TS_ack, wscale. Firewalls werden FakeTCP als eine TCP-Verbindung betrachten, aber es ist im Wesentlichen UDP: es unterstützt Echtzeit-/Außer-der-Reihe-Zustellung (genau wie normales UDP), keine Überlastungskontrolle oder Neuübertragung. Daher wird es bei Verwendung von OpenVPN kein TCP-over-TCP-Problem geben.

Verschlüsselung, Anti-Replay

  • Verschlüsseln Sie Ihren Datenverkehr mit AES-128-CBC.
  • Schützen Sie die Datenintegrität mit HMAC-SHA1 (oder schwächerem MD5/CRC32).
  • Verteidigen Sie sich gegen Replay-Angriffe mit einem Anti-Replay-Fenster.

Notes on encryption

Fehlererkennung und Stabilisierung (Verbindungswiederherstellung)

Verbindungsfehler werden durch Heartbeats erkannt. Bei Zeitüberschreitung ändert der Client automatisch die Portnummer und stellt die Verbindung wieder her. Wenn die Wiederverbindung erfolgreich ist, wird die vorherige Verbindung wiederhergestellt, und alle bestehenden UDP-Gespräche bleiben gültig.

Wenn Sie beispielsweise udp2raw + OpenVPN verwenden, verliert OpenVPN nach einer Wiederverbindung keine Verbindung, selbst wenn das Netzwerkkabel wieder eingesteckt oder der WLAN-Zugangspunkt gewechselt wird.

Andere Funktionen

  • Multiplexing Ein Client kann mehrere UDP-Verbindungen verwalten, die alle dieselbe Raw-Verbindung teilen.
  • Mehrere Clients Ein Server kann mehrere Clients haben.
  • NAT-Unterstützung Alle 3 Modi funktionieren in NAT-Umgebungen.
  • OpenVZ-Unterstützung Getestet auf BandwagonHost VPS.
  • Einfacher Build Keine Abhängigkeiten. Um udp2raw zu cross-kompilieren, müssen Sie nur ein Toolchain herunterladen, das Makefile ändern, um auf das Toolchain zu zeigen, make cross ausführen, dann ist alles erledigt. (Hinweis: Vorkompilierte Binärdateien für Desktop, Raspberry Pi, Android, einige OpenWrt-Router sind bereits in den Releases enthalten.)

Schlüsselwörter

UDP-QoS umgehen UDP-Blockaden umgehen OpenVPN TCP-over-TCP-Problem umgehen OpenVPN über ICMP UDP-zu-ICMP-Tunnel UDP-zu-TCP-Tunnel UDP über ICMP UDP über TCP

Erste Schritte

Installation

Laden Sie die Binärversion von https://github.com/wangyu-/udp2raw-tunnel/releases herunter.

Ausführung

Nehmen Sie an, Ihr UDP ist blockiert oder wird QoS-behandelt oder wird nur schlecht unterstützt. Nehmen Sie an, Ihre Server-IP ist 44.55.66.77 und Sie haben einen Dienst, der auf UDP-Port 7777 lauscht.

root@kitploit:~
# Run at server side:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777    -k "passwd" --raw-mode faketcp -a

# Run at client side
./udp2raw_amd64 -c -l0.0.0.0:3333  -r44.55.66.77:4096  -k "passwd" --raw-mode faketcp -a

(Die obigen Befehle müssen als root ausgeführt werden. Für bessere Sicherheit können Sie mit einigen zusätzlichen Schritten udp2raw als Nicht-Root ausführen. Weitere Informationen finden Sie unter diesem Link.)

Server-Ausgabe:

Client-Ausgabe:

Nun wurde ein verschlüsselter Raw-Tunnel zwischen Client und Server über TCP-Port 4096 hergestellt. Eine Verbindung zu UDP-Port 3333 auf der Client-Seite entspricht einer Verbindung zu Port 7777 auf der Server-Seite. Es wird kein UDP-Datenverkehr preisgegeben.

Hinweis

Zum Ausführen auf Android siehe Android_Guide

Die Option -a fügt automatisch eine iptables-Regel (oder einige iptables-Regeln) für Sie hinzu. udp2raw ist auf diese iptables-Regel angewiesen, um stabil zu funktionieren. Achten Sie darauf, dass Sie -a nicht vergessen (das ist ein häufiger Fehler). Wenn Sie nicht möchten, dass udp2raw automatisch eine iptables-Regel hinzufügt, können Sie sie manuell hinzufügen (sehen Sie sich die Option -g an) und -a weglassen.

Fortgeschrittenes Thema

Verwendung

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-Regeln,-a und -g

Dieses Programm sendet Pakete über Raw Socket. Im FakeTCP-Modus muss die TCP-Paketverarbeitung des Linux-Kernels auf beiden Seiten durch eine iptables-Regel blockiert werden, da der Kernel sonst automatisch RST für ein nicht erkanntes TCP-Paket sendet und Sie unter Stabilitäts-/Leistungsproblemen leiden. Sie können die Option -a verwenden, damit das Programm beim Start/Beenden automatisch iptables-Regeln hinzufügt/löscht. Sie können auch die Option -g verwenden, um eine iptables-Regel zu generieren und manuell hinzuzufügen.

--cipher-mode und --auth-mode

Es wird empfohlen, aes128cbc + hmac_sha1 zu verwenden, um maximale Sicherheit zu erzielen. Wenn Sie das Programm auf einem Router ausführen möchten, können Sie xor + simple ausprobieren, was die meiste Zeit die Paketinspektion durch Firewalls täuschen kann, aber es kann Sie nicht vor schwerwiegenden Angriffen schützen. Der Modus none ist nur für Debugging-Zwecke gedacht. Es wird nicht empfohlen, cipher-mode oder auth-mode auf none zu setzen.

--seq-mode

Der FakeTCP-Modus verhält sich nicht zu 100 % wie eine echte TCP-Verbindung. ISPs können möglicherweise den simulierten TCP-Datenverkehr vom echten TCP-Datenverkehr unterscheiden (obwohl dies kostspielig ist). seq-mode kann Ihnen helfen, das seq-Erhöhungsverhalten geringfügig zu ändern. Wenn Sie Verbindungsprobleme haben, versuchen Sie, den Wert zu ändern.

--lower-level

--lower-level ermöglicht es Ihnen, Pakete auf OSI-Ebene 2 (Link-Ebene) zu senden, sodass Sie lokale iptables-Regeln umgehen können. Wenn Sie komplizierte iptables-Regeln haben, die mit udp2raw in Konflikt stehen, und Sie die iptables-Regeln nicht bearbeiten können (oder zu faul sind), kann --lower-level sehr nützlich sein. Versuchen Sie --lower-level auto, um die Parameter automatisch zu erkennen; Sie können sie manuell angeben, wenn auto fehlschlägt.

Manuelles Format if_name#dest_mac_adress, z.B. eth0#00:23:45:67:89:b9.

--keep-rule

Überwacht iptables und fügt bei Bedarf automatisch iptables-Regeln (zum Blockieren der Kernel-TCP-Verarbeitung) wieder hinzu. Besonders nützlich, wenn iptables-Regeln von anderen Programmen gelöscht werden können (z. B. wenn Sie OpenWrt verwenden, können bei jeder Änderung und Übernahme einer Einstellung iptables-Regeln gelöscht und neu erstellt werden).

--conf-file

Sie können Optionen auch aus einer Konfigurationsdatei laden, um Geheimnisse vor dem ps-Befehl zu schützen.

Zum Beispiel die Optionen für das obige server-Beispiel (im Abschnitt 'Erste Schritte') in eine Konfigurationsdatei umschreiben:

server.conf

root@kitploit:~
-s
# You can add comments like this
# Comments MUST occupy an entire line
# Or they will not work as expected
# Listen address
-l 0.0.0.0:4096
# Remote address
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

Achten Sie auf den Parameter -k: Im Befehlszeilenmodus werden die Anführungszeichen um das Passwort von der Shell entfernt. In Konfigurationsdateien entfernen wir keine Anführungszeichen.

Starten Sie dann den Server mit

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

--fifo

Verwenden Sie eine FIFO (Named Pipe), um Befehle an das laufende Programm zu senden. Zum Beispiel --fifo fifo.file.

Auf der Client-Seite können Sie echo reconnect >fifo.file verwenden, um den Client zur erneuten Verbindung zu zwingen. Derzeit wurde kein Befehl für den Server implementiert.

Leistungstest

Testmethode:

iperf3 TCP via OpenVPN + udp2raw (Der iperf3 UDP-Modus wird nicht verwendet, da ein Fehler in diesem Issue erwähnt wird: https://github.com/esnet/iperf/issues/296 . Stattdessen verpacken wir den TCP-Datenverkehr über OpenVPN in UDP, um die Leistung zu testen. Lesen Sie Anwendung für Details.

iperf3-Befehl:

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

Umgebungen

  • Client Vultr $2.5/Monat-Plan (Single-Core 2,4 GHz CPU, 512 MB RAM, Tokio, Japan)
  • Server BandwagonHost $3.99/Jahr-Plan (Single-Core 2,0 GHz CPU, 128 MB RAM, Los Angeles, USA)

Test1

raw_mode: faketcp cipher_mode: xor  auth_mode: simple

image4

(Die Rückwärtsgeschwindigkeit war ähnlich und nicht hochgeladen)

Test2

raw_mode: faketcp cipher_mode: aes128cbc  auth_mode: md5

image5

(Die Rückwärtsgeschwindigkeit war ähnlich und nicht hochgeladen)

wiki

Siehe Wiki für weitere Informationen:

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

Tool herunterladen