__ ______ ____ ___ ____ ____ ______ / / / / __ / __ __ ____ / __ / __ / ____/ / / / / / / / /_/ /_/ // __ / /_/ / /_/ / / / /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___ ____/_____/_/ /____/__, /_/ |_/_/ ____/ /____/
Este proyecto está fuertemente inspirado en udp2raw.
Un túnel que convierte el tráfico UDP en tráfico gRPC/TCP cifrado le ayuda a evitar los firewalls UDP (o entorno UDP inestable). Suponga que su UDP está bloqueado, tiene QOS o simplemente no es compatible.
Extraer imagen de Dockerhub
ventana acoplable extraiga mrjoshlab/udp2grpc:último
Descargue la versión binaria desde https://github.com/mrjosh/udp2grpc/releases
Suponga que la IP de su servidor es 127.0.0.1 y su dominio de servicio es example.com
# generar para direcciones IP específicasutg gen-certificates --dir ./cert --ip 127.0.0.1# generar para nombres de dominio específicosutg gen-certificates --dir ./cert --domain example.com# generar tanto para dominio como para iputg gen -certificados --dir ./cert --dominio ejemplo.com --ip 127.0.0.1
utg genkey# salida# R1kvISImDxxRS1AnMDUrSy0xVg9XFzhDCyszGSdAX04=
utg par -n Joshua-MBP -r 127.0.0.1:51820
producción
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 }}' ...
Archivo de configuración del lado del servidor
servidor: clave privada: "{{ clave-privada-del-servidor-super-seguro }}" escuchar: 0.0.0.0:52935 tls:insecure: falsecert_file: ./cert/server.crtkey_file: ./cert/server.key colegas: - nombre: "PeerName"clave privada: "{{ super-secure-client-private-key }}"remoto: "127.0.0.1:51820"available_from: - 192.168.1.0/24
Archivo de configuración del lado del cliente
cliente: clave privada: "{{ clave-privada-de-cliente-super-secure }}" escuchar: 0.0.0.0:51820 remoto: 127.0.0.1:52935 persistenteKeepalive: 30 tls: inseguro: falsecert_file: ./cert/server.crt
Suponga que el dominio de su servidor es ejemplo.com y tiene un servicio escuchando en el puerto udp 51820. Si desea ejecutar el servidor sin tls, use el indicador --insecure
para cliente y servidor.
# Ejecutar en el lado del servidor: utg server --config-file server.yaml # Ejecutar en el lado del cliente: utg client --config-file client.yaml
versión: '3.7'servicios: # init-container # generar certificados para servidor y cliente certificados-gen:imagen: mrjoshlab/udp2grpc:últimocomando: - "gen-certificates" # dirección IP del servidor - "--ip" - "127.0.0.1" # directorio de certificados - "--dir" - "/cert" volúmenes: - "$PWD/certificado/:/certificado" # contenedor de servidor udp2grpc servidor udp2grpc:imagen: mrjoshlab/udp2grpc:latestports: - Comando "52935:52935/tcp": - "servidor" - "--config-file" - "/config/server.yaml" volúmenes: - "$PWD/cert/:/cert" - "$PWD/server.yaml:/config/server.yaml"restart: a menos que-stoppeddepends_on: gen-certificates:condition: service_completed_successfully # contenedor cliente udp2grpc udp2grpc-client:imagen: mrjoshlab/udp2grpc:latestports: - Comando "51820:51820/udp": - "cliente" - "--archivo de configuración" - "/config/client.yaml" volúmenes: - "$PWD/cert/server.crt:/cert/server.crt" - "$PWD/client.yaml:/config/client.yaml"reiniciar: a menos que se detenga depende_de: gen-certificados:condición: servicio_completado_con éxito
¡Gracias por considerar contribuir al proyecto UDP2gRPC!
UDP2gRPC es un software de código abierto con licencia MIT.