Cliente de Outline 1.15.0 y versiones posteriores.
En este instructivo, se ofrece una explicación detallada para ayudarte a implementar Shadowsocks sobre WebSockets, una potente técnica para evitar la censura en entornos donde se bloquean las conexiones comunes de Shadowsocks. Encapsular el tráfico de Shadowsocks en WebSockets puede disfrazarlo como tráfico web, lo que mejora la resiliencia y la accesibilidad.
Paso 1: Configura y ejecuta un servidor de Outline
Crea un archivo config.yaml
con la siguiente configuración:
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
Descarga la versión más reciente de
outline-ss-server
y ejecútala con la configuración que creaste:
outline-ss-server -config=config.yaml
Paso 2: Expón el servidor web
Para que tu servidor web WebSocket sea de acceso público, deberás exponerlo a Internet y configurar TLS. Para ello, tienes varias opciones: puedes usar un servidor web local (como Caddy, nginx o Apache) y asegurarte de que tenga un certificado TLS válido, o utilizar un servicio de tunelización como Cloudflare Tunnel o ngrok.
Ejemplo de uso de TryCloudflare
En este ejemplo, usaremos TryCloudflare para crear un túnel rápido, lo que brinda una forma conveniente y segura de exponer servidores web locales sin abrir puertos entrantes.
Descarga e instala
cloudflared
.Crea un túnel que apunte al puerto del servidor web local:
cloudflared tunnel --url http://127.0.0.1:WEB_SERVER_PORT
Cloudflare proporcionará un subdominio (p. ej.,
acids-iceland-davidson-lb.trycloudflare.com
) para acceder a tu extremo de WebSocket
y controlar TLS automáticamente. Anota este subdominio, ya que lo necesitarás más
adelante.
Paso 3: Crea una clave de acceso dinámica
Genera un archivo YAML de clave de acceso de cliente para tus usuarios usando el formato de configuración de claves de acceso y, luego, incluye los extremos de WebSocket previamente configurados en el servidor:
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
Después de generar el archivo YAML de clave de acceso dinámica, debes enviárselo a los usuarios. Puedes alojar el archivo en un servicio de hosting web estático o generarlo dinámicamente. Obtén más información para usar claves de acceso dinámicas.
Paso 4: Conecta el servidor con el cliente de Outline
Usa una de las apps oficiales del cliente de Outline (versión 1.15.0 como mínimo) y agrega la clave de acceso dinámica que acabas de crear como entrada de servidor. Haz clic en Conectar para iniciar una tunelización hacia el servidor utilizando la configuración de Shadowsocks sobre WebSocket.
Usa una herramienta como IPInfo para verificar que ahora estás navegando por Internet a través del servidor de Outline.