Proxy UDP sur WebSocket - utile pour utiliser WireGuard dans des réseaux restreints.
Exemple de base :
graphique LR
WC[Client Wireguard] ---|UDP| B[Client Zia]
B ---|Websocket| C[Serveur Zia]
C ---|UDP| D[Serveur Wireguard]
L'avantage est que WebSocket utilise HTTP. Si vous êtes sur un réseau restreint où vous ne pouvez accéder qu'à des services externes à l'aide d'un proxy HTTP fourni, vous pouvez proxy votre trafic WireGuard UDP sur WebSocket via ce proxy.
graphique LR
WC[Client Wireguard] ---|UDP| B[Client Zia]
B ---|Websocket| C[Proxy HTTP]
C ---|Websocket| D[Serveur Zia]
D ---|UDP| E[Serveur Wireguard]
Nom | Description |
---|---|
WebSocket | Les datagrammes UDP sont encapsulés dans des trames WebSocket. Ces trames sont ensuite transmises au serveur, où elles sont déballées. |
TCP | Les datagrammes UDP sont préfixés par une longueur de datagramme de 16 bits, puis transmis au serveur dans des packages TCP. Sur le serveur, ces packages sont déballés et transmis au UDP réel en amont. |
Le client est capable d'effectuer une négociation TLSv2 ou TLSv3, le serveur n'est pas capable de gérer les requêtes TLS. Dans le cas où un cryptage TLS de bout en bout (zia-client <-> zia-server) devrait se produire, vous devez proxy le trafic du serveur à l'aide d'un proxy inverse.
Téléchargez simplement le binaire approprié à partir de la dernière version ou utilisez l'image Docker :
ghcr.io/marcelcoding/zia-client
Variables d'environnement :
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
Si vous utilisez le binaire, utilisez --help
pour toutes les options disponibles.
Téléchargez simplement le binaire approprié à partir de la dernière version ou utilisez l'image Docker :
ghcr.io/marcelcoding/zia-server
Variables d'environnement :
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
Si vous utilisez le binaire, utilisez --help
pour toutes les options disponibles.