Proxy UDP ผ่าน WebSocket - มีประโยชน์ในการใช้ WireGuard ในเครือข่ายที่ถูกจำกัด
ตัวอย่างพื้นฐาน:
กราฟ LR
WC[ไคลเอ็นต์ Wireguard] ---|UDP| B[ไคลเอนต์เซีย]
B ---|เว็บซ็อกเก็ต| C[เซิร์ฟเวอร์เซีย]
ค ---|UDP| D[เซิร์ฟเวอร์ Wireguard]
ข้อดีคือ WebSocket ใช้ HTTP หากคุณอยู่บนเครือข่ายแบบจำกัดซึ่งคุณสามารถเข้าถึงบริการภายนอกได้โดยใช้พร็อกซี HTTP ที่ให้มาเท่านั้น คุณสามารถพร็อกซีการรับส่งข้อมูล WireGuard UDP ของคุณผ่าน WebSocket ผ่านพร็อกซีนั้นได้
กราฟ LR
WC[ไคลเอ็นต์ Wireguard] ---|UDP| B[ไคลเอนต์เซีย]
B ---|เว็บซ็อกเก็ต| C[พร็อกซี HTTP]
C ---|เว็บซ็อกเก็ต| D[เซิร์ฟเวอร์เซีย]
ง ---|UDP| E[เซิร์ฟเวอร์ Wireguard]
ชื่อ | คำอธิบาย |
---|---|
เว็บซ็อกเก็ต | ดาตาแกรม UDP รวมอยู่ในเฟรม WebSocket เฟรมเหล่านี้จะถูกส่งไปยังเซิร์ฟเวอร์ จากนั้นเฟรมเหล่านั้นจะถูกแกะออก |
TCP | ดาตาแกรม UDP จะนำหน้าด้วยดาตาแกรมความยาว 16 บิต จากนั้นจึงส่งไปยังเซิร์ฟเวอร์ในแพ็คเกจ TCP ที่เซิร์ฟเวอร์ แพ็คเกจเหล่านี้จะถูกแกะและส่งต่อไปยังอัพสตรีม UDP จริง |
ไคลเอนต์สามารถทำการจับมือ TLSv2 หรือ TLSv3 ได้ แต่เซิร์ฟเวอร์ไม่สามารถจัดการคำขอ TLS ได้ ในกรณีที่ควรมีการเข้ารหัส TLS จากต้นทางถึงปลายทาง (zia-client <-> zia-server) คุณต้องพร็อกซีการรับส่งข้อมูลสำหรับเซิร์ฟเวอร์โดยใช้พร็อกซีย้อนกลับ
เพียงดาวน์โหลดไบนารีที่เหมาะสมจากรุ่นล่าสุด หรือใช้อิมเมจ Docker:
ghcr.io/marcelcoding/zia-client
ตัวแปรสภาพแวดล้อม:
ZIA_LISTEN_ADDR=127.0.0.1:8080 # local udp listener
ZIA_UPSTREAM=ws://domain.tld:1234 # your zia server instance (ws(s) or tcp(s))
# ZIA_PROXY=http://user:[email protected]:8080 # optional http(s) proxy
หากคุณใช้ไบนารีให้ใช้ --help
กับตัวเลือกที่มีทั้งหมด
เพียงดาวน์โหลดไบนารีที่เหมาะสมจากรุ่นล่าสุด หรือใช้อิมเมจ Docker:
ghcr.io/marcelcoding/zia-server
ตัวแปรสภาพแวดล้อม:
ZIA_LISTEN_ADDR=0.0.0.0:1234 # public websocket listener (client -> ZIA_UPSTREAM)
ZIA_UPSTREAM=domain.tld:9999 # your actual udp service e.g. wireguard listener
ZIA_MODE=WS # WS or TCP see client -> ZIA_UPSTREAM
หากคุณใช้ไบนารีให้ใช้ --help
กับตัวเลือกที่มีทั้งหมด