__ ______ ____ ___ ____ ____ ______ / / / / __ / __ __ ____ / __ / __ / ____/ / / / / / / / /_/ /_/ // __ / /_/ / /_/ / / / /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___ ____/_____/_/ /____/__, /_/ |_/_/ ____/ /____/
Este projeto é fortemente inspirado em udp2raw
Um túnel que transforma o tráfego UDP em tráfego gRPC / TCP criptografado, ajuda a ignorar firewalls UDP (ou ambiente UDP instável). Suponha que seu UDP esteja bloqueado ou com QOS ou apenas com suporte insuficiente.
Extrair imagem do dockerhub
docker pull mrjoshlab/udp2grpc:mais recente
Baixe a versão binária em https://github.com/mrjosh/udp2grpc/releases
Suponha que o IP do seu servidor seja 127.0.0.1 e o domínio do seu serviço seja example.com
# gerar para endereço IP específicoutg gen-certificates --dir ./cert --ip 127.0.0.1# gerar para nome de domínio específicoutg gen-certificates --dir ./cert --domain example.com# gerar para domínio e iputg gen -certificates --dir ./cert --domain example.com --ip 127.0.0.1
utg genkey# saída# R1kvISImDxxRS1AnMDUrSy0xVg9XFzhDCyszGSdAX04=
utg peer -n Joshua-MBP -r 127.0.0.1:51820
saída
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 }}' ...
Arquivo de configuração do lado do servidor
servidor: privatekey: "{{ super-seguro-servidor-chave privada }}" ouça: 0.0.0.0:52935 tls:inseguro: falsecert_file: ./cert/server.crtkey_file: ./cert/server.key pares: - nome: "PeerName"privatekey: "{{ super-secure-client-private-key }}"remote: "127.0.0.1:51820"available_from: -192.168.1.0/24
Arquivo de configuração do lado do cliente
cliente: privatekey: "{{ super-secure-client-private-key }}" ouça: 0.0.0.0:51820 remoto: 127.0.0.1:52935 persistenteKeepalive: 30 tls:inseguro: falsecert_file: ./cert/server.crt
Suponha que o domínio do seu servidor example.com e você tenha um serviço escutando na porta udp 51820. se desejar executar o servidor sem tls, use o sinalizador --insecure
para cliente e servidor
# Executado no lado do servidor:utg server --config-file server.yaml# Executado no lado do cliente:utg client --config-file client.yaml
versão: '3.7'serviços: # init-container # gera certificados para servidor e cliente gen-certificados:imagem: mrjoshlab/udp2grpc:latestcommand: - "gen-certificates" # endereço IP do servidor - "--ip" - "127.0.0.1" # diretório de certificados - "--dir" - "/cert"volumes: - "$PWD/cert/:/cert" #contêiner do servidor udp2grpc udp2grpc-server:image: mrjoshlab/udp2grpc:latestports: - Comando "52935:52935/tcp": - "servidor" - "--config-file" - "/config/server.yaml"volumes: - "$PWD/cert/:/cert" - "$PWD/server.yaml:/config/server.yaml"reiniciar: a menos que-stoppeddepends_on: gen-certificates:condition: service_completed_successfully #contêiner do cliente udp2grpc udp2grpc-client:imagem: mrjoshlab/udp2grpc:latestports: - Comando "51820:51820/udp": - "cliente" - "--config-file" - "/config/client.yaml"volumes: - "$PWD/cert/server.crt:/cert/server.crt" - "$PWD/client.yaml:/config/client.yaml"reiniciar: a menos que-stoppeddepends_on: gen-certificates:condition: service_completed_successfully
Obrigado por considerar contribuir com o projeto UDP2gRPC!
O UDP2gRPC é um software de código aberto licenciado sob a licença MIT.