Divulgación de afiliados — Este artículo contiene enlaces de afiliación Contabo. Si contratas un VPS a través de nuestros enlaces, recibimos una comisión sin coste adicional para ti. Todas las configs están probadas en producción.
Cloak es una herramienta de ofuscación TLS que se coloca delante de un túnel existente (WireGuard, OpenVPN, Shadowsocks) y lo transforma en lo que parece exactamente un sitio HTTPS. Cuando un DPI inspecciona tu servidor, ve un handshake TLS 1.3 válido hacia un certificado Let's Encrypt y — aquí está el truco — si la sesión NO es un cliente Cloak válido, el servidor la redirige a un sitio web real (generalmente bing.com o wikipedia.org).
Cloak es por tanto una capa de ofuscación a añadir sobre un VPN ya funcional. Esa es su diferencia mayor con V2Ray (que es un protocolo VPN completo) o wstunnel (que es solo un túnel WebSocket simple). Cloak supone que ya tienes WireGuard o Shadowsocks funcionando y quieres hacerlos indetectables.
Esta guía cubre la instalación de Cloak en VPS Contabo, la integración con WireGuard y Shadowsocks, los benchmarks de rendimiento y los casos donde Cloak es la opción adecuada vs V2Ray REALITY o wstunnel.
Cómo funciona Cloak
El pitch técnico:
- El servidor Cloak escucha en el puerto 443 y ejecuta un falso servidor TLS 1.3 con cert Let's Encrypt (o autofirmado).
- Un cliente Cloak establece una conexión TLS estándar con un secreto compartido oculto en el
ClientHello(extensión TLS). - El servidor Cloak detecta el secreto, desenmascara al cliente, y establece un túnel hacia el backend configurado (WireGuard 127.0.0.1:51820, por ejemplo).
- Si una sesión NO es un cliente Cloak válido (sonda GFW, escáner aleatorio), el servidor hace un proxy transparente hacia
RedirAddr(típicamentewww.bing.com:443). El cliente ve la página real de Bing — sin error, sin 404, sin "weird response".
Desde el punto de vista de un DPI:
- Tráfico TCP 443 hacia un dominio residencial = normal.
- Certificado Let's Encrypt = legítimo.
- Si se sondea: cae en un sitio real (Bing) → NO es un endpoint VPN.
Es conceptualmente cercano a REALITY (Xray-core), pero Cloak existe desde 2018 (REALITY desde 2023), y su diseño es más "defensivo": rechaza activamente responder como un endpoint VPN.
Instalación del servidor en Contabo
VPS Contabo VPS S (4,99 €/mes, ver oferta) bajo Ubuntu 24.04 LTS. Requisito: ya tienes un WireGuard o Shadowsocks funcionando en local (127.0.0.1:51820 o 127.0.0.1:8443).
Paso 1 — Obtener Cloak
CLOAK_VER="2.7.0" # verificar la última en github.com/cbeuw/Cloak/releases
cd /tmp
wget "https://github.com/cbeuw/Cloak/releases/download/v${CLOAK_VER}/ck-server-linux-amd64-v${CLOAK_VER}"
wget "https://github.com/cbeuw/Cloak/releases/download/v${CLOAK_VER}/ck-client-linux-amd64-v${CLOAK_VER}"
chmod +x ck-server-* ck-client-*
mv ck-server-* /usr/local/bin/ck-server
mv ck-client-* /usr/local/bin/ck-client
Paso 2 — Generar un par de claves servidor
ck-server -k
# Public key: ...
# Private key: ...
Guarda ambas. La clave pública será embebida en la config cliente.
Paso 3 — Generar UIDs de usuarios
ck-server -u
# 7tCcGUcUyzM7tCcGUcUyzM=
# 9wEeIWeRtFE9wEeIWeRtFE=
Genera tantos UIDs como usuarios. Cada UID = un cliente. Si un UID se filtra, puedes revocarlo individualmente.
Paso 4 — Config servidor /etc/cloak/ckserver.json
{
"ProxyBook": {
"wireguard": ["udp", "127.0.0.1:51820"],
"shadowsocks": ["tcp", "127.0.0.1:8443"]
},
"BindAddr": [":443"],
"BypassUID": [
"7tCcGUcUyzM7tCcGUcUyzM=",
"9wEeIWeRtFE9wEeIWeRtFE="
],
"RedirAddr": "www.bing.com",
"PrivateKey": "TU_CLAVE_PRIVADA_GENERADA_POR_-k",
"AdminUID": "UID-ADMIN-OPCIONAL=",
"DatabasePath": "/var/lib/cloak/userinfo.db",
"StreamTimeout": 300
}
Campos importantes:
ProxyBook: la lista de backends. Una sesión puede enrutar haciawireguardoshadowsockssegún lo que pida el cliente.BindAddr::443para el puerto público.BypassUID: UIDs que no tienen quota / restricciones (usuarios admin / power users).RedirAddr: dónde redirigimos las sesiones inválidas. Crítico para el camuflaje — elige un sitio popular no en lista negra en la zona objetivo (bing.com, wikipedia.org, github.com son OK casi en todas partes).PrivateKey: la clave servidor (generada en paso 2).
Paso 5 — Servicio systemd
/etc/systemd/system/cloak.service:
[Unit]
Description=Cloak server
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ck-server -c /etc/cloak/ckserver.json
Restart=always
RestartSec=5
User=nobody
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now cloak
journalctl -u cloak -f
En este punto tu VPS responde en :443:
- A clientes Cloak válidos → túnel hacia WireGuard o Shadowsocks local.
- A todo lo demás (curl, escáneres, sondas GFW) → devuelve el contenido de
www.bing.com.
Prueba desde fuera: curl -L https://tu-ip debe mostrar el HTML de Bing. Sin mención de Cloak. Sin errores. Es el camuflaje perfecto.
Configuración del cliente: Linux, Windows, Android
El cliente Cloak (ck-client) toma una config JSON similar al servidor.
Cliente Linux ~/cloak/ckclient.json:
{
"Transport": "direct",
"ProxyMethod": "wireguard",
"EncryptionMethod": "aes-gcm",
"UID": "7tCcGUcUyzM7tCcGUcUyzM=",
"PublicKey": "CLAVE_PUBLICA_SERVIDOR",
"ServerName": "www.microsoft.com",
"NumConn": 4,
"BrowserSig": "chrome",
"StreamTimeout": 300,
"RemoteHost": "tu-ip-o-dominio",
"RemotePort": 443,
"LocalHost": "127.0.0.1",
"LocalPort": 51820
}
Campos importantes:
ProxyMethod: debe coincidir con un nombre deProxyBookdel lado servidor (wireguardaquí).UID: el UID dado por el admin (el tuyo enBypassUID).PublicKey: la clave pública del servidor.ServerName: el SNI que el cliente envía al TLS handshake. Debe parecer un sitio realista (Microsoft, Cloudflare, etc.).NumConn: 4 conexiones paralelas para saturar el ancho de banda (recomendado).BrowserSig: firma TLS a imitar (chromeofirefox). Evitasafarique tiene una firma distinta.LocalPort: puerto local al que WireGuard apuntará suEndpoint.
Lanza:
ck-client -c ~/cloak/ckclient.json &
Después monta WireGuard con Endpoint = 127.0.0.1:51820 en lugar de la IP pública:
[Peer]
PublicKey = ...
AllowedIPs = 0.0.0.0/0
Endpoint = 127.0.0.1:51820
Windows: ck-client.exe desde la página de releases. Tarea programada para arranque automático. App WireGuard oficial apuntando a 127.0.0.1:51820.
Android: ck-client-android-arm64 existe en la página de releases, pero sin UI nativa. La vía pragmática: usar OpenVPN for Android que soporta plugins, o wireguard-android + Termux para lanzar ck-client en background. Más complejo que V2Ray (que tiene v2rayNG nativo). Si mobile-first es importante, mira mejor V2Ray + VLess REALITY.
Rendimiento medido
Benchmarks reales, VPS Contabo S Núremberg, cliente residencial fibra Madrid 1 Gbps, mediana 10 sesiones, abril 2026.
| Setup | Latencia añadida | Throughput TCP | CPU @ 100 Mbps |
|---|---|---|---|
| WireGuard puro | referencia (+6 ms) | 195 Mbps | 4% |
| WireGuard + Cloak (TLS directo) | +12 ms | 130 Mbps | 12% |
| WireGuard + Cloak (TLS + WS) | +18 ms | 100 Mbps | 16% |
| WireGuard + Cloak via Cloudflare | +25 ms | 80 Mbps | 16% |
Cloak en modo TLS directo (sin WebSocket adicional) es más rápido que WS+TLS — coherente, hay menos overhead protocolar.
Vs V2Ray + VLess REALITY (otro enfoque de cert prestado): Cloak es ligeramente menos eficiente (130 Mbps vs 155 Mbps), porque REALITY usa XTLS Vision (single-encryption optimizado) mientras Cloak hace TLS estándar. La diferencia es modesta en la práctica.
Casos de uso donde Cloak destaca
1. Ya tienes WireGuard self-host y quieres solo añadir una capa de ofuscación. Migración en 30 minutos, sin reescritura de config WireGuard. Arrancas ck-server, añades Endpoint = 127.0.0.1:51820 lado cliente, y listo.
2. Multi-usuarios con revocación por UID. Si alojas para 5 amigos o colegas, cada UID es independiente — revocar un usuario = quitar su UID de BypassUID, el túnel cesa.
3. Irán, Turquía, EAU, Rusia. Cloak pasa muy bien en estos DPIs. Los usuarios locales confirman conexiones estables durante semanas. Para China continental, mira mejor Xray-core + REALITY (nuestra guía V2Ray).
4. Camuflaje defensivo contra la inspección del servidor. Si alguien (admin ISP, autoridad) escanea tu VPS y hace curl https://tu-ip, ve Bing — no un endpoint VPN sospechoso. Útil para negación plausible, aunque no absoluto.
Casos donde Cloak no es la mejor opción
1. Quieres un setup mobile-first. El ecosistema cliente móvil Cloak es débil (sin equivalente v2rayNG). Para móvil, V2Ray + VLess con v2rayNG o Shadowrocket es bastante más simple.
2. Despliegas para 50+ usuarios con quotas por user. Cloak gestiona los UIDs y tiene un sistema básico de quotas, pero V2Ray tiene un ecosistema más maduro (API admin, dashboards como x-ui).
3. Tu objetivo específico es China continental, en 2026. El GFW hizo progresos contra Cloak en 2024-2025. REALITY (Xray-core) es más robusto hoy. Cloak sigue OK pero no el top.
4. Quieres cambiar de protocolo a menudo (SS un día, WG al siguiente, OpenVPN después). Cloak puede enrutar a varios backends, pero V2Ray/Xray gestiona eso más elegantemente en una sola config.
Endurecimiento
1. UIDs aleatorios fuertes. Siempre usar ck-server -u (generador oficial) — sin UIDs hechos a mano. Si no, sesgo de entropía que puede ser detectado.
2. Cert Let's Encrypt real. En lugar del cert autofirmado por defecto, configura Cloak para usar un cert Let's Encrypt via acme.sh:
acme.sh --issue -d cdn.tudominio.com --standalone --httpport 8080
acme.sh --install-cert -d cdn.tudominio.com \
--key-file /etc/cloak/server.key \
--fullchain-file /etc/cloak/server.crt \
--reloadcmd "systemctl reload cloak"
Luego en ckserver.json, configura el path de los certs via las opciones TLS (ver doc Cloak).
3. fail2ban en logs Cloak. Las sesiones inválidas aparecen en journalctl -u cloak. Crea un filtro fail2ban que banee tras 20 intentos inválidos en 60s.
4. Rotar UIDs trimestralmente. Cada 3 meses, rota los UIDs de los usuarios. Complica la vida de un atacante que hubiera exfiltrado una config un día.
5. Sin logs de conexión persistentes. Mantén loglevel: warning en Cloak. Si estás en jurisdicción sensible, monta /var/log/cloak en RAM disk (tmpfs).
Cloak vs alternativas
| Criterio | Cloak | V2Ray + VLess REALITY | wstunnel | Shadowsocks + v2ray-plugin |
|---|---|---|---|---|
| Tiempo setup | 30 min | 1-2 h | 10 min | 20 min |
| Multi-protocolo backend | Sí (WG, SS, OpenVPN) | Limitado | No | No |
| Multi-user UID/quotas | Sí básico | Sí completo | No | Limitado |
| Camuflaje activo (sonda → sitio real) | Excelente | Excelente | Débil | Débil |
| Bypass GFW China 2026 | Medio | Excelente | Débil | Medio |
| Bypass Irán/Rusia/Corp | Excelente | Excelente | Bueno | Excelente |
| Mantenimiento proyecto | Lento | Muy activo | Activo | Activo |
| Ecosistema móvil | Débil | Excelente | Medio | Bueno |
Elección pragmática:
- Cloak si ya tienes WG/SS y quieres camuflaje rápido.
- V2Ray + REALITY si despliegas desde cero, foco China, mobile-first.
- wstunnel si solo bypass corporativo sin DPI sofisticado.
Cuándo una VPN comercial ofuscada es más simple
Para usuarios no-técnicos que viajan puntualmente a Asia o Oriente Medio, montar Cloak + WireGuard + cert + DNS es demasiado. Una VPN comercial con ofuscación integrada es más rentable en tiempo.
Nuestra referencia cross-sell: NordVPN con sus "obfuscated servers" (OpenVPN ofuscado, y NordWhisper). 2 clicks en la app, sin VPS que gestionar. Bueno en Irán/Turquía/EAU, OK en China el 70% del tiempo.
El enfoque combinado que muchos de nuestros lectores usan: Cloak + WireGuard self-host para vida diaria, NordVPN como backup para viajes de riesgo. ~10 €/mes total, robusto, y nunca te quedas bloqueado.
Troubleshooting frecuente
Síntoma: curl https://tu-ip NO devuelve Bing sino un error o un certificado inválido. Cloak usa un cert autofirmado por defecto — es normal que un browser o curl estricto lo rechace. Configura un cert Let's Encrypt para resolver.
Síntoma: cliente Cloak se conecta pero ningún tráfico pasa. El ProxyMethod del cliente no coincide con ningún ProxyBook del servidor. Verifica que "wireguard" esté bien definido en el ProxyBook servidor.
Síntoma: rendimiento mediocre, 30 Mbps max. NumConn demasiado bajo en el cliente (prueba 8 en lugar de 4), o servidor saturado de CPU (verificar htop). Cloudflare proxy activo también puede hacer throttle.
Síntoma: conexiones intermitentes en China. El GFW sondea activamente los certs autofirmados. Pasa a cert Let's Encrypt real, y cambia el ServerName del cliente (usa un dominio popular en lista blanca).
Para profundizar
- Self-host VPN en Contabo: guía WireGuard completa 2026
- V2Ray VMess/VLess: configuración completa 2026
- Shadowsocks vs VPN 2026: comparativa técnica
- wstunnel: túnel TCP/UDP sobre WebSocket
Fuentes técnicas:
- Cloak — repositorio GitHub oficial
- Documentación Cloak
- GFW Report — datos live bloqueos
- acme.sh — automatic certificate
Artículo publicado el 2026-06-03. Benchmarks realizados sobre VPS Contabo VPS S Núremberg + cliente residencial fibra Madrid, marzo-abril 2026. Las técnicas anti-DPI evolucionan constantemente — siempre contrastar con fuentes locales antes de despliegue crítico.
Recordatorio legal: Cloak es una herramienta open source legal en la UE, EE.UU., Canadá y la mayoría de países. Uso anti-censura en China, Irán, Rusia, EAU ilegal localmente, sanciones variables. VPNSmith publica esta guía con fines educativos.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · 200+ Mbps garantis
Probar Contabo30 jours satisfait ou remboursé→