
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.
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.

oder

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.
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.
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.
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.
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.)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
Laden Sie die Binärversion von https://github.com/wangyu-/udp2raw-tunnel/releases herunter.
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.
# 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.)


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.
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.
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]