__ ______ ____ ___ ____ ____ ______
/ / / / __ / __ __ ____ / __ / __ / ____/
/ / / / / / / /_/ /_/ // __ / /_/ / /_/ / /
/ /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___
____/_____/_/ /____/__, /_/ |_/_/ ____/
/____/
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/24Arquivo 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_successfullyObrigado por considerar contribuir com o projeto UDP2gRPC!
O UDP2gRPC é um software de código aberto licenciado sob a licença MIT.