وكيل UDP عبر WebSocket - مفيد لاستخدام WireGuard في الشبكات المقيدة.
المثال الأساسي:
الرسم البياني LR
WC[عميل Wireguard] ---|UDP| ب [عميل ضياء]
ب ---|مقبس الويب| ج[خادم Zia]
ج ---|UDP| د [خادم Wireguard]
الفائدة هي أن WebSocket يستخدم HTTP. إذا كنت على شبكة مقيدة حيث يمكنك فقط الوصول إلى الخدمات الخارجية باستخدام وكيل HTTP المتوفر، فيمكنك وكيل حركة مرور WireGuard UDP عبر WebSocket من خلال هذا الوكيل.
الرسم البياني LR
WC[عميل Wireguard] ---|UDP| ب [عميل ضياء]
ب ---|مقبس الويب| C [وكيل المتشعب]
C ---|مقبس الويب| D[خادم Zia]
د ---|UDP| E[خادم Wireguard]
اسم | وصف |
---|---|
WebSocket | يتم تغليف مخططات بيانات UDP داخل إطارات WebSocket. يتم بعد ذلك نقل هذه الإطارات إلى الخادم، حيث يتم فك تغليفها. |
برنامج التعاون الفني | تكون مخططات بيانات 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
لجميع الخيارات المتاحة.