__ ______ ____ ___ ____ ____ ______
/ / / / __ / __ __ ____ / __ / __ / ____/
/ / / / / / / /_/ /_/ // __ / /_/ / /_/ / /
/ /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___
____/_____/_/ /____/__, /_/ |_/_/ ____/
/____/
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/24Archivo 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.