__ ______ ____ ___ ____ ____ ______ / / / / __ / __ __ ____ / __ / __ / ____/ / / / / / / / /_/ /_/ // __ / /_/ / /_/ / / / /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___ ____/_____/_/ /____/__, /_/ |_/_/ ____/ /____/
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/24
Clientseitige 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_successfully
Vielen Dank, dass Sie darüber nachdenken, am UDP2gRPC-Projekt mitzuwirken!
UDP2gRPC ist eine Open-Source-Software, die unter der MIT-Lizenz lizenziert ist.