Desplegar Shadowsocks en un VPS
Pon en marcha tu propio proxy cifrado en menos de 20 minutos con esta guía paso a paso.
- Conocimientos básicos de terminal/línea de comandos
- Una tarjeta de crédito para el dominio y alquiler de VPS
Descripción general de la arquitectura
Antes de empezar, veamos lo que vamos a construir. Cada componente cumple una función específica para hacer que tu tráfico sea invisible para censores e ISP:
graph TD
A["Tu Dispositivo"] -->|"HTTPS :443"| B["Nginx"]
B -->|"WebSocket"| C["Shadowsocks :8389"]
C -->|"Tráfico Normal"| D["Internet"]
style A fill:#1e293b,stroke:#3b82f6,color:#e2e8f0
style B fill:#1e293b,stroke:#f59e0b,color:#e2e8f0
style C fill:#1e293b,stroke:#10b981,color:#e2e8f0
style D fill:#1e293b,stroke:#8b5cf6,color:#e2e8f0
- Nginx escucha en el puerto 443 con un certificado SSL genuino, gestionando la terminación TLS. Para cualquier observador, tu servidor parece un sitio web HTTPS normal.
- Shadowsocks se ejecuta dentro de un contenedor Docker en el puerto 8389 (solo localhost). Nginx reenvía el tráfico WebSocket desde la ruta
/shadowsocksa este contenedor. - v2ray-plugin envuelve el protocolo Shadowsocks dentro de marcos WebSocket, así que la cadena completa es: tu dispositivo → TLS → WebSocket → Shadowsocks → internet.
El resultado: tu ISP ve tráfico HTTPS estándar dirigido a lo que parece un sitio web ordinario. No hay nada que detectar ni bloquear.
Paso 1: Compra un nombre de dominio
Necesitas un nombre de dominio para tu servidor proxy. Es esencial — te permite obtener un certificado SSL real, lo que hace que tu tráfico parezca navegación HTTPS normal. Sin un dominio, los firewalls pueden identificar y bloquear fácilmente tu servidor por IP.
Un dominio cuesta tan solo $2-9 al año. Elige cualquier registrador:
Namecheap — Dominios económicos con protección de privacidad gratuita.
- Ve a namecheap.com y busca un dominio
- Elige un TLD barato (
.uk,.xyz,.sitesuelen costar menos de $3/año) - Añade WhoisGuard (gratis) para ocultar tu información personal
- Completa la compra
- Ve a Domain List → tu dominio → Advanced DNS para gestionar registros DNS
Cloudflare Registrar — Dominios a precio de coste, sin margen.
- Crea una cuenta en cloudflare.com
- Ve a Domain Registration → Register Domain
- Busca un dominio y cómpralo (
.comcuesta ~$9/año a precio de coste) - El DNS se gestiona automáticamente desde Cloudflare — no necesitas configuración adicional
Porkbun — Precios bajos, privacidad WHOIS y SSL incluidos gratis.
- Ve a porkbun.com y busca un dominio
- Muchos TLDs están disponibles por menos de $5/año
- La privacidad WHOIS está incluida gratis con cada dominio
- Completa la compra y gestiona el DNS desde el panel
Paso 2: Elige un proveedor de VPS
Necesitas un servidor privado virtual (VPS) – un pequeño ordenador en la nube que ejecutará tu proxy Shadowsocks las 24 horas del día, los 7 días de la semana. El plan más barato de cualquier proveedor importante es más que suficiente.
DigitalOcean – Fiable, fácil para principiantes, servidores en más de 15 regiones.
- Regístrate en digitalocean.com
- Haz clic en Create Droplet
- Elige Ubuntu 24.04 LTS como sistema operativo
- Selecciona el plan de $4/mes (512 MB RAM, 1 vCPU) – esto es más que suficiente
- Elige una región cercana a ti (por ejemplo, Londres, Fráncfort, Nueva York)
- En Authentication, selecciona SSH Key (recomendado) o Password
- Haz clic en Create Droplet y anota la dirección IP
Vultr – Precios competitivos, 32 ubicaciones de servidores en todo el mundo.
- Regístrate en vultr.com
- Haz clic en Deploy New Server
- Elige Cloud Compute (Regular Performance)
- Selecciona Ubuntu 24.04 LTS
- Elige el plan de $3.50/mes (512 MB RAM, 1 vCPU)
- Selecciona una ubicación de servidor cercana a ti
- Añade tu clave SSH o establece una contraseña de root
- Haz clic en Deploy Now y anota la dirección IP
Hetzner – Excelente relación calidad-precio, con sede en la UE, fuerte privacidad.
- Regístrate en hetzner.com/cloud
- Crea un nuevo proyecto, luego haz clic en Add Server
- Elige Ubuntu 24.04 como imagen
- Selecciona CX22 (2 vCPU, 4 GB RAM, aproximadamente 4 EUR/mes) o el más barato disponible
- Elige una ubicación (Falkenstein, Núremberg, Helsinki o Ashburn)
- Añade tu clave SSH
- Haz clic en Create & Buy Now y anota la dirección IP
OVH – Económico, con sede en la UE, ideal para usuarios preocupados por la privacidad.
- Regístrate en ovhcloud.com
- Navega a Public Cloud → Create an instance
- Elige Ubuntu 24.04 como imagen
- Selecciona el plan Starter (aproximadamente 3,50 EUR/mes)
- Elige una región (Gravelines, Estrasburgo, Londres, etc.)
- Añade tu clave SSH
- Lanza la instancia y anota la dirección IP
Paso 3: Apunta tu dominio al servidor
Necesitas un nombre de dominio apuntando a tu VPS para poder obtener un certificado SSL genuino. Esto es lo que hace que tu tráfico parezca navegación HTTPS normal.
- Inicia sesión en tu registrador de dominios (Namecheap, Cloudflare, GoDaddy, etc.)
- Ve a la configuración DNS de tu dominio
- Crea un registro A:
- Nombre/Host:
@(o un subdominio comoproxy) - Valor/Apunta a: la dirección IP de tu VPS (por ejemplo,
203.0.113.42) - TTL: Automático o 300 segundos
- Nombre/Host:
Paso 4: Conéctate a tu servidor por SSH
Abre un terminal en tu ordenador y conéctate a tu VPS:
ssh root@YOUR_SERVER_IP
Reemplaza YOUR_SERVER_IP con la dirección IP del Paso 2. Si configuraste una contraseña en lugar de una clave SSH, se te pedirá que la introduzcas.
ssh de arriba. Alternativamente, puedes usar PuTTY si prefieres una interfaz gráfica.Una vez conectado, deberías ver un prompt de comandos como root@your-server:~#. Ya estás listo para configurar el servidor.
Paso 5: Instala Docker
Docker nos permite ejecutar Shadowsocks en un contenedor aislado. Instálalo con un solo comando:
curl -fsSL https://get.docker.com | sh
Esto descarga y ejecuta el script de instalación oficial de Docker. Funciona en Ubuntu, Debian, CentOS y Fedora. El proceso tarda aproximadamente un minuto.
Verifica que Docker esté instalado y en ejecución:
docker --version
Deberías ver una salida como Docker version 27.x.x, build ....
Paso 6: Despliega el contenedor Shadowsocks
Ahora despliega el servidor Shadowsocks con soporte de v2ray-plugin:
docker run -d \
--name shadowsocks \
--restart always \
-p 127.0.0.1:8389:8389 \
-e PASSWORD=YOUR_STRONG_PASSWORD \
-e METHOD=aes-256-gcm \
jfca68/shadowsocks-server:latest
YOUR_STRONG_PASSWORD con una contraseña fuerte y única. Usa al menos 16 caracteres con una mezcla de letras, números y símbolos. Esta contraseña es la que cifra tu tráfico – trátala como una contraseña bancaria.Desglosemos lo que hace este comando:
-d– Ejecuta el contenedor en segundo plano (modo desacoplado)--name shadowsocks– Da al contenedor un nombre fácil de recordar--restart always– Reinicia automáticamente si el contenedor o servidor se reinicia-p 127.0.0.1:8389:8389– Expone el puerto 8389 solo en localhost (no a internet público)-e PASSWORD=...– Establece la contraseña de cifrado-e METHOD=aes-256-gcm– Usa cifrado AES-256-GCM (el más fuerte disponible)
Verifica que el contenedor esté en ejecución:
docker ps
Deberías ver un contenedor llamado shadowsocks con estado Up.
Paso 7: Instala y configura Nginx
Nginx actuará como proxy inverso, aceptando conexiones HTTPS en el puerto 443 y reenviando el tráfico WebSocket al contenedor Shadowsocks.
Instala Nginx:
apt update && apt install -y nginx
Crea el archivo de configuración de Nginx para tu dominio:
nano /etc/nginx/sites-available/YOUR_DOMAIN
Pega la siguiente configuración (reemplaza YOUR_DOMAIN con tu dominio real):
server {
listen 80;
server_name YOUR_DOMAIN;
location /shadowsocks {
proxy_pass http://127.0.0.1:8389;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
return 200 'Welcome to my website';
add_header Content-Type text/plain;
}
}
Activa el sitio y reinicia Nginx:
ln -s /etc/nginx/sites-available/YOUR_DOMAIN /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
location / sirve una respuesta de texto simple para cualquier persona que visite tu dominio directamente. Esto hace que parezca un servidor web normal e inofensivo. Puedes reemplazarlo con una página HTML estática si lo prefieres.Paso 8: Obtén un certificado SSL
Un certificado SSL genuino de Let’s Encrypt es fundamental. Asegura que tu tráfico use cifrado TLS real y que tu servidor parezca un sitio web HTTPS legítimo.
Instala Certbot y obtén un certificado:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d YOUR_DOMAIN
Certbot hará lo siguiente:
- Verificar que controlas el dominio
- Obtener un certificado SSL gratuito de Let’s Encrypt
- Configurar automáticamente Nginx para usar HTTPS
- Configurar la renovación automática del certificado (los certificados caducan cada 90 días, pero Certbot los renueva automáticamente)
Cuando se te solicite, introduce tu dirección de correo electrónico (para notificaciones de renovación) y acepta los términos de servicio. Cuando se te pregunte sobre redirigir HTTP a HTTPS, selecciona Sí (opción 2).
Paso 9: Prueba tu configuración
Verifica el servidor
Visita https://YOUR_DOMAIN en un navegador web. Deberías ver:
- Un certificado SSL válido (icono de candado en la barra de direcciones)
- El texto “Welcome to my website” (o lo que hayas configurado)
Configura tu cliente
Ahora configura el cliente Shadowsocks en tu dispositivo. Necesitarás estos datos:
| Configuración | Valor |
|---|---|
| Servidor | YOUR_DOMAIN |
| Puerto del servidor | 443 |
| Contraseña | La contraseña que estableciste en el Paso 6 |
| Cifrado | aes-256-gcm |
| Plugin | v2ray-plugin |
| Opciones del plugin | tls;host=YOUR_DOMAIN;path=/shadowsocks;mux=0 |
Verifica la conexión
Una vez conectado a través de tu cliente Shadowsocks:
- Visita whatismyipaddress.com – deberías ver la dirección IP de tu VPS, no la tuya real
- Visita dnsleaktest.com y ejecuta el test extendido – ninguna consulta DNS debería apuntar a tu ISP real
- Ejecuta un test de velocidad en speedtest.net – deberías ver una reducción mínima de velocidad
¿Y ahora qué?
Tu proxy Shadowsocks ya está en funcionamiento. Aquí tienes algunos pasos siguientes:
- Conecta todos tus dispositivos – Configura el cliente en Windows, macOS, Linux, Android e iOS
- Aprende más sobre Shadowsocks – Comprende cómo funciona la tecnología y por qué es resistente a la censura
- Configura actualizaciones automáticas – Mantén tu imagen Docker actualizada:
docker pull jfca68/shadowsocks-server:latest
docker stop shadowsocks && docker rm shadowsocks
# Re-run the docker run command from Step 6