udp2grpc
1.0.0
__ ______ ____ ___ ____ ____ ______
/ / / / __ / __ __ ____ / __ / __ / ____/
/ / / / / / / /_/ /_/ // __ / /_/ / /_/ / /
/ /_/ / /_/ / ____/ __// /_/ / _, _/ ____/ /___
____/_____/_/ /____/__, /_/ |_/_/ ____/
/____/
이 프로젝트는 udp2raw에서 많은 영감을 받았습니다.
UDP 트래픽을 암호화된 gRPC/TCP 트래픽으로 전환하는 터널은 UDP 방화벽(또는 불안정한 UDP 환경)을 우회하는 데 도움이 됩니다. UDP가 차단되었거나 QOS가 적용되거나 제대로 지원되지 않는다고 가정해 보세요.
Dockerhub 이미지 가져오기
도커 풀 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 모두에 대해 생성 -certificates --dir ./cert --domain example.com --ip 127.0.0.1
utg genkey# 출력# R1kvISImDxxRS1AnMDUrSy0xVg9XFzhDCyszGSdAX04=
utg 피어 -n Joshua-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:안전하지 않음: falsecert_file: ./cert/server.crtkey_file: ./cert/server.key
동료:
- 이름: "PeerName"privatekey: "{{ super-secure-client-private-key }}"remote: "127.0.0.1:51820"available_from:
- 192.168.1.0/24클라이언트 측 구성 파일
클라이언트: 개인키: "{{ 슈퍼 보안 클라이언트-개인 키 }}"
듣기: 0.0.0.0:51820
원격: 127.0.0.1:52935
지속적인Keepalive: 30
TLS:안전하지 않음: 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
# 서버와 클라이언트에 대한 인증서를 생성합니다.
생성 인증서:이미지: mrjoshlab/udp2grpc:최신 명령:
- "gen-certificates" # 서버 IP 주소 - "--ip" - "127.0.0.1" # 인증서 디렉터리 - "--dir" - "/cert"volumes:
- "$PWD/cert/:/cert"
# udp2grpc 서버 컨테이너
udp2grpc-서버:이미지: mrjoshlab/udp2grpc:최신 포트:
- "52935:52935/tcp" 명령:
- "서버" - "--config-file" - "/config/server.yaml"볼륨:
- "$PWD/cert/:/cert" - "$PWD/server.yaml:/config/server.yaml"restart: Except-stoppeddependents_on: gen-certificates:condition: service_completed_successfully
# udp2grpc 클라이언트 컨테이너
udp2grpc-클라이언트:이미지: mrjoshlab/udp2grpc:최신 포트:
- "51820:51820/udp" 명령:
- "클라이언트" - "--config-file" - "/config/client.yaml"볼륨:
- "$PWD/cert/server.crt:/cert/server.crt" - "$PWD/client.yaml:/config/client.yaml"restart: Except-stoppeddependents_on: gen-certificates:condition: service_completed_successouslyUDP2gRPC 프로젝트에 기여해 주셔서 감사합니다!
UDP2gRPC는 MIT 라이선스에 따라 라이선스가 부여된 오픈 소스 소프트웨어입니다.