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_successously
UDP2gRPC 프로젝트에 기여해 주셔서 감사합니다!
UDP2gRPC는 MIT 라이선스에 따라 라이선스가 부여된 오픈 소스 소프트웨어입니다.