Client Outline v1.15.0 et versions ultérieures
Ce tutoriel détaillé vous aidera à implémenter Shadowsocks-over-WebSockets, une technique puissante utilisée pour contourner la censure dans les environnements où les connexions Shadowsocks standards sont bloquées. En encapsulant le trafic Shadowsocks dans des WebSockets, vous pouvez le déguiser en trafic Web standard pour plus de résilience et d'accessibilité.
Étape 1 : Configurez et exécutez un serveur Outline
Créez un fichier config.yaml
avec la configuration suivante :
web:
servers:
- id: server1
listen:
- "127.0.0.1:WEB_SERVER_PORT"
services:
- listeners:
- type: websocket-stream
web_server: server1
path: "/TCP_PATH"
- type: websocket-packet
web_server: server1
path: "/UDP_PATH"
keys:
- id: 1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Téléchargez le dernier
outline-ss-server
et exécutez-le avec la configuration créée :
outline-ss-server -config=config.yaml
Étape 2 : Révélez le serveur Web
Pour rendre votre serveur Web WebSocket accessible au public, vous devez le révéler sur Internet et configurer le protocole TLS. Il existe plusieurs façons de procéder. Vous pouvez utiliser un serveur Web local comme Caddy, nginx ou Apache (en vous assurant qu'il comporte un certificat TLS valide), ou faire appel à un service de tunnelisation comme Cloudflare Tunnel ou ngrok.
Exemple avec TryCloudflare
Dans cet exemple, nous allons utiliser TryCloudflare pour créer un tunnel rapide. C'est un moyen pratique et sécurisé de révéler votre serveur Web local sans ouvrir de ports d'entrée.
Téléchargez et installez
cloudflared
.Créez un tunnel pointant vers le port de votre serveur Web local :
cloudflared tunnel --url http://127.0.0.1:WEB_SERVER_PORT
Cloudflare fournira un sous-domaine (exemple :
acids-iceland-davidson-lb.trycloudflare.com
) pour accéder à votre point de terminaison WebSocket et gérer automatiquement le protocole TLS. Notez le nom de ce sous-domaine, car vous en aurez besoin ultérieurement.
Étape 3 : Créez une clé d'accès dynamique
Générez un fichier YAML de clé d'accès client pour vos utilisateurs à l'aide du format de configuration de la clé d'accès et indiquez les points de terminaison WebSocket configurés précédemment côté serveur :
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Après avoir généré le fichier YAML de clé d'accès dynamique, vous devez le fournir à vos utilisateurs. Vous pouvez héberger le fichier sur un service d'hébergement Web statique ou bien le générer de façon dynamique. En savoir plus sur les clés d'accès dynamiques
Étape 4 : Connectez-vous au client Outline
Utilisez l'une des applications client Outline officielles (version 1.15.0 ou versions ultérieures) et ajoutez la clé d'accès dynamique que vous venez de créer comme entrée de serveur. Cliquez sur Connecter pour activer la tunnelisation vers votre serveur à l'aide de la configuration Shadowsocks-over-Websocket.
Utilisez un outil comme IPInfo pour vérifier que vous naviguez désormais sur Internet depuis votre serveur Outline.