- - - - - -
โปรเจ็กต์นี้ได้รับแรงบันดาลใจอย่างมากจาก udp2raw
อุโมงค์ที่เปลี่ยนการรับส่งข้อมูล UDP ให้เป็นการรับส่งข้อมูล gRPC/TCP ที่เข้ารหัส ช่วยให้คุณเลี่ยงผ่านไฟร์วอลล์ UDP (หรือสภาพแวดล้อม UDP ที่ไม่เสถียร) สมมติว่า UDP ของคุณถูกบล็อกหรือถูก QOS-ed หรือรองรับได้ไม่ดี
ดึงรูปภาพ dockerhub
นักเทียบท่าดึง mrjoshlab/udp2grpc: ล่าสุด
ดาวน์โหลดไบนารีรีลีสจากhttps://github.com/mrjosh/udp2grpc/releases
สมมติว่า IP ของเซิร์ฟเวอร์ของคุณคือ 127.0.0.1 และโดเมนบริการของคุณคือ example.com
# สร้างสำหรับที่อยู่ IP เฉพาะ ใบรับรอง gen utg --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 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 }}' ...
ไฟล์กำหนดค่าฝั่งเซิร์ฟเวอร์
เซิร์ฟเวอร์: คีย์ส่วนตัว: "{{ super-secure-server-private-key }}" ฟัง: 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
ไฟล์กำหนดค่าฝั่งไคลเอ็นต์
ลูกค้า: privatekey: "{{ super-secure-client-private-key }}" ฟัง: 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 --config-file server.yaml# ทำงานที่ฝั่งไคลเอ็นต์: ไคลเอนต์ utg --config-file client.yaml
เวอร์ชัน: '3.7' บริการ: # init-container # สร้างใบรับรองสำหรับเซิร์ฟเวอร์และไคลเอนต์ ใบรับรอง Gen: รูปภาพ: mrjoshlab/udp2grpc: คำสั่งล่าสุด: - "gen-certificates" # ที่อยู่ IP ของเซิร์ฟเวอร์ - "--ip" - "127.0.0.1" # ไดเรกทอรีใบรับรอง - "--dir" - "/cert"เล่ม: - "$PWD/ใบรับรอง/:/ใบรับรอง" # คอนเทนเนอร์เซิร์ฟเวอร์ udp2grpc udp2grpc-เซิร์ฟเวอร์: รูปภาพ: mrjoshlab/udp2grpc: พอร์ตล่าสุด: - คำสั่ง "52935:52935/tcp": - "เซิร์ฟเวอร์" - "--config-file" - "/config/server.yaml" เล่ม: - "$PWD/cert/:/cert" - "$PWD/server.yaml:/config/server.yaml" รีสตาร์ท: เว้นแต่-stoppeddepends_on: gen-certificates:condition: service_completed_successfully # คอนเทนเนอร์ไคลเอนต์ udp2grpc udp2grpc-client: ภาพ: mrjoshlab / udp2grpc: พอร์ตล่าสุด: - คำสั่ง "51820:51820/udp": - "ไคลเอนต์" - "--config-file" - "/config/client.yaml" เล่ม: - "$PWD/cert/server.crt:/cert/server.crt" - "$PWD/client.yaml:/config/client.yaml" รีสตาร์ท: เว้นแต่-stoppeddepends_on: gen-certificates:condition: service_completed_successfully
ขอขอบคุณที่พิจารณาการมีส่วนร่วมในโครงการ UDP2gRPC!
UDP2gRPC เป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT