__ ______ ____ ___ ____ ____ ______
/ / / / __ / __ __ ____ / __ / __ / ____/
/ / / / / / / /_/ /_/ // __ / /_/ / /_/ / /
/ /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___
____/_____/_/ /____/__, /_/ |_/_/ ____/
/____/
Этот проект во многом вдохновлен udp2raw.
Туннель, который превращает UDP-трафик в зашифрованный трафик gRPC/TCP, помогает вам обойти межсетевые экраны UDP (или нестабильную среду UDP). Предположим, что ваш UDP заблокирован, имеет QOS или просто плохо поддерживается.
Извлеките образ dockerhub
docker pull mrjoshlab/udp2grpc: последний
Загрузите двоичный выпуск с https://github.com/mrjosh/udp2grpc/releases.
Предположим, что IP-адрес вашего сервера — 127.0.0.1, а домен вашего сервиса — example.com.
# генерировать для конкретного IP-адреса utg gen-certificates --dir ./cert --ip 127.0.0.1# генерировать для конкретного доменного имени utg gen-certificates --dir ./cert --domain example.com# генерировать как для домена, так и для iputg gen -сертификаты --dir ./cert --domain example.com --ip 127.0.0.1
utg genkey# вывод# R1kviSImDxxRS1AnMDUrSy0xVg9XFzhDCyszGSdAX04=
utg Peer -n Джошуа-MBP -r 127.0.0.1:51820
выход
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 }}'
...Конфигурационный файл на стороне сервера
сервер: частный ключ: "{{ супер-безопасный-сервер-частный-ключ }}"
слушать: 0.0.0.0:52935
tls:insecure: falsecert_file: ./cert/server.crtkey_file: ./cert/server.key
сверстники:
- имя: "PeerName" личный ключ: "{{ super-secure-client-private-key }}" удаленный: "127.0.0.1:51820"available_from:
- 192.168.1.0/24Конфигурационный файл на стороне клиента
client: Privatekey: "{{ super-secure-client-private-key }}"
слушать: 0.0.0.0:51820
удаленный: 127.0.0.1:52935
постоянныйKeepalive: 30
tls:insecure: falsecert_file: ./cert/server.crt Предположим, что ваш серверный домен example.com и у вас есть служба, прослушивающая udp-порт 51820. Если вы хотите запустить сервер без tls, используйте флаг --insecure для клиента и сервера.
# Запуск на стороне сервера: utg server --config-file server.yaml# Запуск на стороне клиента: utg client --config-file client.yaml
версия: '3.7'services: # init-container
# генерируем сертификаты для сервера и клиента
gen-сертификаты: изображение: mrjoshlab/udp2grpc: последняя команда:
- "gen-certificates" # IP-адрес сервера - "--ip" - "127.0.0.1" # каталог сертификатов - "--dir" - "/cert"volumes:
- "$PWD/серт/:/серт"
# серверный контейнер udp2grpc
udp2grpc-сервер: изображение: mrjoshlab/udp2grpc:latestports:
- Команда «52935:52935/tcp»:
- "сервер" - "--config-file" - "/config/server.yaml" тома:
- "$PWD/cert/:/cert" - "$PWD/server.yaml:/config/server.yaml"перезапуск: если не остановлен, зависит_он: gen-certificates: условие: service_completed_successfully
# клиентский контейнер udp2grpc
udp2grpc-клиент: изображение: mrjoshlab/udp2grpc:latestports:
- Команда «51820:51820/udp»:
- "клиент" - "--config-file" - "/config/client.yaml" тома:
- "$PWD/cert/server.crt:/cert/server.crt" - "$PWD/client.yaml:/config/client.yaml"перезапуск: если не остановлен, зависит_он: gen-certificates: условие: service_completed_successfullyСпасибо, что решили внести свой вклад в проект UDP2gRPC!
UDP2gRPC — это программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.