__ ______ ____ ___ ____ ____ ______
/ / / / __ / __ __ ____ / __ / __ / ____/
/ / / / / / / /_/ /_/ // __ / /_/ / /_/ / /
/ /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___
____/_____/_/ /____/__, /_/ |_/_/ ____/
/____/
Dieses Projekt ist stark von udp2raw inspiriert
Ein Tunnel, der UDP-Verkehr in verschlüsselten gRPC/TCP-Verkehr umwandelt, hilft Ihnen, UDP-FireWalls (oder instabile UDP-Umgebungen) zu umgehen. Gehen Sie davon aus, dass Ihr UDP blockiert ist oder QOS-bedingt ist oder einfach nur schlecht unterstützt wird.
Dockerhub-Image abrufen
Docker Pull mrjoshlab/udp2grpc:latest
Laden Sie die Binärversion von https://github.com/mrjosh/udp2grpc/releases herunter
Angenommen, Ihre Server-IP ist 127.0.0.1 und Ihre Servicedomäne ist example.com
# für bestimmte IP-Adressen generierenutg gen-certificates --dir ./cert --ip 127.0.0.1# für bestimmte Domänennamen generierenutg gen-certificates --dir ./cert --domain example.com# sowohl für Domäne als auch für iputg gen generieren -certificates --dir ./cert --domain example.com --ip 127.0.0.1
utg genkey# Ausgabe# R1kvISImDxxRS1AnMDUrSy0xVg9XFzhDCyszGSdAX04=
utg peer -n Joshua-MBP -r 127.0.0.1:51820
Ausgabe
server side config:
-------------------------------------------------------------
...
peers:
- name: Joshua-MBP
privatekey: LlRIVyEqVxtZORxdIgoiMTg6UxIsTCBYRC4/K0U4VjM=
remote: 127.0.0.1:51820
available_from:
- 0.0.0.0/0
...
client side config:
-------------------------------------------------------------
client:
privatekey: LlRIVyEqVxtZORxdIgoiMTg6UxIsTCBYRC4/K0U4VjM=
remote: '{{ server ip address }}'
...Serverseitige Konfigurationsdatei
server: privatekey: „{{ super-secure-server-private-key }}“
Hören Sie: 0.0.0.0:52935
tls:insecure: falsecert_file: ./cert/server.crtkey_file: ./cert/server.key
Gleichaltrige:
- Name: „PeerName“privatekey: „{{ super-secure-client-private-key }}“remote: „127.0.0.1:51820“available_from:
- 192.168.1.0/24Clientseitige Konfigurationsdatei
client: privatekey: „{{ super-secure-client-private-key }}“
Hören Sie: 0.0.0.0:51820
Fernbedienung: 127.0.0.1:52935
persistentKeepalive: 30
tls:insecure: falsecert_file: ./cert/server.crt Angenommen, Ihre Serverdomäne example.com und Sie verfügen über einen Dienst, der den UDP-Port 51820 überwacht. Wenn Sie den Server ohne TLS ausführen möchten, verwenden Sie das Flag --insecure für Client und Server
# Auf der Serverseite ausführen:utg server --config-file server.yaml# Auf der Clientseite ausführen:utg client --config-file client.yaml
Version: '3.7'Dienste: # init-container
# Zertifikate für Server und Client generieren
gen-certificates:image: mrjoshlab/udp2grpc:latestcommand:
– „gen-certificates“ # Server-IP-Adresse – „--ip“ – „127.0.0.1“ # Zertifikatsverzeichnis – „--dir“ – „/cert“volumes:
- „$PWD/cert/:/cert“
# udp2grpc-Servercontainer
udp2grpc-server:image: mrjoshlab/udp2grpc:latestports:
- „52935:52935/tcp“-Befehl:
- "server" - "--config-file" - "/config/server.yaml"volumes:
– „$PWD/cert/:/cert“ – „$PWD/server.yaml:/config/server.yaml“ Neustart: sofern nicht gestoppt, abhängig von: gen-certificates: Bedingung: service_completed_successfully
# udp2grpc-Client-Container
udp2grpc-client:image: mrjoshlab/udp2grpc:latestports:
- „51820:51820/udp“Befehl:
– „client“ – „--config-file“ – „/config/client.yaml“volumes:
– „$PWD/cert/server.crt:/cert/server.crt“ – „$PWD/client.yaml:/config/client.yaml“restart:less-stoppeddepends_on: gen-certificates:condition: service_completed_successfullyVielen Dank, dass Sie darüber nachdenken, am UDP2gRPC-Projekt mitzuwirken!
UDP2gRPC ist eine Open-Source-Software, die unter der MIT-Lizenz lizenziert ist.