Cómo alojar un servidor Outline VPN en un VPS
Instala Outline VPN, no la wiki Outline, en tu VPS: configura Shadowsocks, claves de acceso, el puerto de la API de gestión y sus límites de privacidad.
Qué es el servidor Outline VPN
Para alojar tu propio servidor Outline VPN, ejecutas dos componentes en tu propio VPS: un servidor proxy Shadowsocks y una pequeña API de administración REST (transferencia de estado representacional) delante de él. Controlas ambos desde la aplicación de escritorio Outline Manager, que genera claves de acceso como cadenas ss:// que puedes enviar a otras personas. Outline se utiliza para acceder a Internet desde una red que bloquea las VPN. No está diseñado para ofrecer el máximo rendimiento.
Primero, una aclaración, porque los resultados de búsqueda los confunden constantemente. Outline VPN es la herramienta de elusión descrita en esta página, en getoutline.org. Outline también es el nombre de una wiki y una base de conocimiento autoalojadas, en otro dominio y mantenidas por otras personas. Sólo comparten el nombre. Si llegaste aquí por la wiki, esta no es la página correcta.
Quién desarrolla Outline VPN
La mayoría de las guías todavía presentan Outline como un producto de Google. Eso era cierto al principio, pero ya no lo es. Jigsaw, una incubadora de Google, lanzó Outline en 2018. En agosto de 2026, el sitio oficial del proyecto indica que Outline pertenece a Outline Foundation, una organización independiente sin ánimo de lucro, y que el código se encuentra en la organización OutlineFoundation de GitHub. Esto importa al decidir si confiar en el proyecto: la respuesta sobre su gobernanza es diferente hoy que en 2018, y una guía que identifica incorrectamente al propietario probablemente también cite una ruta de repositorio que ha cambiado.
Qué instala realmente el instalador en el servidor
El script de instalación no compila nada. Ejecuta contenedores Docker.
shadowbox, a partir de la imagenquay.io/outline/shadowbox:stable. Este es el servidor de administración y ejecutaoutline-ss-server, el backend de Shadowsocks del proyecto, como plano de datos.watchtower, que comprueba periódicamente si existe una imagenshadowboxmás reciente. De forma predeterminada, lo hace una vez por hora y reinicia el contenedor cuando encuentra una.- Un certificado TLS (seguridad de la capa de transporte) autofirmado y una clave privada, escritos en el directorio de estado del servidor. No interviene ninguna autoridad de certificación pública, por lo que el gestor fija ese certificado mediante su huella SHA-256 en lugar de validar una cadena.
El estado se almacena en /opt/outline y los archivos persistentes están en /opt/outline/persisted-state.
Watchtower requiere una decisión explícita. Las actualizaciones automáticas de imágenes hacen que las correcciones de seguridad se instalen sin intervención, pero también permiten que la versión auditada cambie de la noche a la mañana sin un registro de cambios que haya revisado. Decida qué aspecto es más importante. Si quiere controlar las actualizaciones manualmente, elimine el contenedor de watchtower y descargue las imágenes nuevas según su propio calendario.
Requisitos previos que el instalador comprueba realmente
- Una máquina x86 de 64 bits. El script se detiene con
Unsupported machine type: ${MACHINE_TYPE}. Please run this script on a x86_64 machine. Un plan VPS con ARM no funciona con la imagen estándar, así que compruebe la arquitectura antes de contratarlo. - Docker. Si Docker no está instalado, el script ofrece instalarlo y muestra
Would you like to install Docker? This will run 'curl https://get.docker.com/ | sh'.. Si Docker está instalado pero el daemon está detenido, el script falla con un mensaje que pregunta si el daemon de Docker está en ejecución. Inícielo consudo systemctl enable --now dockery vuelva a ejecutar el instalador. - Una dirección IPv4 pública que el script pueda descubrir por sí mismo. Consulta servicios externos, actualmente
icanhazip.com,ipinfo.ioy un endpoint de Google, para obtener la dirección que debe escribir en la URL de administración. Detrás de NAT (traducción de direcciones de red), o en un equipo cuyo tráfico HTTP saliente esté bloqueado, esa consulta falla y debe proporcionar la dirección con--hostname. - root, mediante sudo.
La documentación del proyecto indica Ubuntu 20.04 LTS o Debian 10 como base compatible. Como todo se ejecuta en contenedores, una versión más reciente de Ubuntu normalmente funciona, pero quedará fuera de la ruta que prueba el proyecto.
Instalar el servidor VPN de Outline
Este es el comando de la documentación del propio proyecto en developer.getoutline.org, consultada en agosto de 2026. Acceda allí y obténgalo usted mismo en lugar de confiar en una copia de cualquier guía, incluida esta. El repositorio ya cambió de ubicación una vez, y una copia obsoleta de esta línea puede hacer que la instalación se realice desde una ruta archivada.
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh)"Lea el script antes de ejecutarlo. Redirigir una URL remota a un shell con permisos de root significa ejecutar lo que esa URL sirva en ese momento. Revisarlo primero sólo cuesta un minuto:
wget -qO- https://raw.githubusercontent.com/OutlineFoundation/outline-apps/master/server_manager/install_scripts/install_server.sh | lessTres flags opcionales permiten elegir los valores en lugar de aceptar los generados:
Usage: install_server.sh [--hostname <hostname>] [--api-port <port>] [--keys-port <port>]
--hostname The hostname to be used to access the management API and access keys
--api-port The port number for the management API
--keys-port The port number for the access keysNo espere números de puerto fijos. Si deja --api-port y --keys-port sin definir, el script elige un puerto aleatorio superior a 1023 para cada uno. No existe un puerto conocido de Outline. Cualquier guía que indique un número específico está citando su propia instalación, no la suya. Consulte los puertos en la salida de su ejecución.
Si la operación finaliza correctamente, el script muestra un banner que comienza por CONGRATULATIONS! Your Outline server is up and running. y le pide que copie la línea siguiente, incluidos los corchetes, en la interfaz de Outline Manager. La línea tiene esta forma:
{"apiUrl":"https://<your ip>:<api port>/<random secret>","certSha256":"<fingerprint>"}Después indica exactamente qué puertos debe abrir y completa los números que ha elegido:
Make sure to open the following ports on your firewall, router or cloud provider:
- Management port ${API_PORT}, for TCP
- Access key port ${ACCESS_KEY_PORT}, for TCP and UDPSi cierra el terminal y pierde esa línea de configuración, todavía estará en el servidor. sudo cat /opt/outline/access.txt la vuelve a mostrar.
Antes de abrir el manager, compruebe que los contenedores estén realmente en ejecución:
sudo docker psDebería ver shadowbox y watchtower, ambos con estado Up. Un contenedor shadowbox que se reinicia continuamente significa que el manager nunca podrá conectarse, y sudo docker logs shadowbox indica el motivo.
Por qué no se debe exponer sin más el puerto de la API de administración
Vuelva a mirar apiUrl. No hay nombre de usuario ni contraseña. La autenticación es el segmento de ruta aleatorio de esa URL, y ese es todo el mecanismo. Cualquiera que pueda acceder al puerto de administración y conozca esa ruta puede leer todas las claves de acceso del servidor y eliminarlas.
La sugerencia de UFW del propio script (ufw es el firewall sencillo de Ubuntu) abre el puerto de administración a todo Internet:
sudo ufw allow ${API_PORT}/tcpEs práctico, pero permite más acceso del necesario. El puerto de las claves de acceso debe estar abierto al mundo porque ahí se conectan los usuarios. El puerto de administración sólo tiene que ser accesible desde el lugar donde ejecute Outline Manager. Restrinja el acceso:
sudo ufw allow <keys port>/tcp
sudo ufw allow <keys port>/udp
sudo ufw allow from <your admin ip> to any port <api port> proto tcpMejor aún, mantenga el puerto de administración cerrado en el firewall público y acceda a él mediante un túnel privado que ya tenga configurado. Si ha seguido la VPN WireGuard autogestionada en un VPS, el servidor de Outline puede unirse a ese túnel y responder a la API sólo en la dirección del túnel. Así, un escaneo de puertos de su IP pública mostrará el puerto de las claves de acceso y ningún otro. Recuerde que la mayoría de los proveedores también tienen un firewall de red en su panel de control, además del firewall del servidor. Ambos deben permitir el mismo tráfico.
Hay otros dos aspectos de esa línea de configuración. La documentación de Outline la considera sensible y recomienda compartirla sólo con quienes necesiten acceso de administración, mediante un canal cifrado y no por correo electrónico o chat sin cifrar. Además, revocar su validez resulta realmente difícil: en un servidor instalado manualmente, la forma documentada de invalidar una configuración de administración que haya compartido es reinstalarlo por completo. Esto también restablece todas las claves de acceso de usuario que haya emitido. Trate esa cadena como la contraseña de root del servidor, porque en la práctica eso es lo que representa.
Emisión y revocación de claves de acceso
Outline Manager crea claves mediante un botón. Por debajo, realiza solicitudes HTTP normales contra la ruta de la API de secretos, por lo que puede automatizarlo:
API="https://SERVER_IP:API_PORT/SECRET_PATH" # the apiUrl from access.txt
curl -k "$API/access-keys"
curl -k -X POST "$API/access-keys"
curl -k -X PUT "$API/access-keys/3/name" -H 'Content-Type: application/json' -d '{"name":"anna-laptop"}'
curl -k -X DELETE "$API/access-keys/3"-k es necesario porque el certificado es autofirmado. Sin esta opción, curl se detiene con SSL certificate problem: self-signed certificate y nunca envía la solicitud. La API también admite límites de datos por clave: PUT /access-keys/{id}/data-limit permite establecer uno y DELETE /access-keys/{id}/data-limit lo elimina. Así puede evitar que la copia de seguridad del teléfono de una persona consuma todo el ancho de banda mensual disponible.
Emita una clave por persona. Esta regla determina si el resto funcionará correctamente. Revocar una clave consiste en eliminarla. El servidor deja de aceptarla de inmediato, por lo que una persona que abandona la organización pierde el acceso en cuanto ejecuta esa eliminación. Suponga ahora que diez personas comparten una clave. No puede quitar a una sola. Si elimina la clave, las diez personas dejan de tener acceso y tendrá que dedicar la tarde a emitir nueve claves nuevas. Asignar a cada clave el nombre de su titular es lo que permite ejecutar el comando de eliminación de forma segura.
Tenga claro qué no hace la eliminación. La cadena ss:// es un secreto que ya envió a alguien. Eliminar la clave impide que el servidor la acepte, que es la parte que usted controla. No recupera el mensaje en el que envió esa cadena. Por tanto, si una clave se filtra, elimínela y emita una nueva. No dé por hecho que la copia ha desaparecido.
Outline es un proxy, no un túnel completo
Esta es la diferencia que sorprende a quienes llegan desde WireGuard. Shadowsocks mueve las conexiones TCP y UDP a través de un proxy. No hay ninguna interfaz de red en el servidor, ninguna dirección de par, ninguna entrada en la tabla de enrutamiento ni una subred detrás del servidor. outline-ss-server transporta TCP y UDP, por lo que los navegadores, las aplicaciones y DNS funcionan a través de él. ping no lo hace, porque ICMP (protocolo de mensajes de control de Internet) no es uno de los tipos de tráfico que transporta un proxy de Shadowsocks. Haga la prueba con curl https://ifconfig.me y confirme que la dirección que devuelve es la de su servidor, no la suya.
Conviene indicar claramente las consecuencias. No puede acceder a una red privada situada detrás del servidor de Outline como un par de WireGuard accede a 10.20.0.0/16, porque Outline no tiene ninguna ruta que distribuir. Tampoco puede conectar dos servidores entre sí con esta herramienta. No existe tráfico entre pares de clientes. Esto también impide la configuración habitual en casa en la que un teléfono sincroniza sus fotos con un servidor de fotografías autohospedado a través del túnel. Si ese es el objetivo, elija primero el servidor en la comparación entre PhotoPrism e Immich y asígnele una VPN enrutable en lugar de un proxy. Si necesita una red real con direcciones y rutas, Outline no es la herramienta adecuada. En ese caso, la comparación entre WireGuard y OpenVPN es un mejor punto de partida.
Qué hace la ofuscación y qué no hace
Shadowsocks cifra y autentica desde el primer byte. No hay un handshake en texto claro, un campo de versión del protocolo, un intercambio de certificados ni una cabecera fija. En la red, una conexión parece un flujo de bytes aleatorios dirigido a un puerto alto. Ese es todo el fundamento de Outline: un dispositivo de DPI (inspección profunda de paquetes) configurado para reconocer el handshake de WireGuard o el opcode de OpenVPN en el primer paquete no tiene nada que identificar aquí. outline-ss-server también ofrece protección contra repeticiones, activada con --replay_history, que bloquea una clase de sondeo activo en la que un censor repite un paquete capturado para comprobar cómo responde el servidor.
Ahora, la parte que debe tener en cuenta.
- No oculta el flujo. El tráfico sigue dirigiéndose a una sola dirección, con un volumen considerable y durante horas. El análisis del tiempo y del volumen no depende de que la carga útil sea ilegible.
- No le proporciona anonimato. El proveedor sabe quién alquiló el servidor y normalmente conserva los datos de pago. Además, cada sitio que visita ve la dirección del servidor. La diferencia entre alquilar un VPS y contratar un servicio VPN explica por qué un servidor a su nombre cambia el modelo de amenazas, en lugar de eliminarlo.
- No funciona si bloquean la dirección. Si un censor bloquea la IP del servidor, la ofuscación deja de ser relevante, porque no llega nada que ofuscar.
- No impide compartir claves. Una clave publicada en un chat grupal público es una clave que el censor puede obtener y utilizar. Así sabe exactamente qué dirección debe bloquear.
Los dos últimos puntos explican por qué la elusión a gran escala requiere muchas direcciones, rotadas y distribuidas con cuidado. Ese es precisamente el problema que el proyecto Tor resolvió mediante bridges. Por tanto, si su adversario bloquea direcciones más rápido de lo que usted puede alquilar servidores, lea cómo los bridges y los transportes conectables de Tor distribuyen puntos de entrada no publicados antes de alquilar un segundo VPS.
Elegir entre Outline y las alternativas
Elija Outline cuando la red bloquee los protocolos VPN y las personas a las que ayuda no vayan a editar un archivo de configuración. Solo tiene que enviar una cadena y la otra persona debe pegarla en una aplicación. Es una ventaja real y explica gran parte del motivo por el que existe Outline.
Elija WireGuard cuando la red lo permita. Es más rápido, se ejecuta en el kernel, proporciona una red enrutable y requiere mucho menos mantenimiento. La guía completa está en la guía del servidor VPN de WireGuard.
Elija un bridge o un transporte conectable cuando el adversario bloquee direcciones en lugar de protocolos, o cuando necesite anonimato además de conectividad.
Elija una malla con un plano de control cuando el problema sea administrar una flota y no sortear la censura. La distribución manual de claves y la asignación manual de direcciones dejan de ser escalables cuando se llega aproximadamente a una docena de máquinas. Un servidor NetBird autohospedado se encarga de ese registro. Si prefiere no ejecutar un plano de control, consulte primero qué incluye realmente el plan gratuito de Tailscale, porque una flota doméstica o de un equipo pequeño suele caber en él y no le cuesta nada ejecutarla.
FAQ
¿Outline VPN es lo mismo que la wiki Outline?
No. Son proyectos independientes que coinciden en el nombre. Outline VPN es la herramienta para eludir la censura disponible en getoutline.org. Está compuesta por un servidor Shadowsocks y una API REST de administración, y se controla desde la aplicación de escritorio Outline Manager. La wiki Outline es una base de conocimiento autoalojada para equipos y usa otro dominio. Las búsquedas de «self-host Outline» devuelven ambos proyectos. Compruebe el dominio antes de copiar cualquier comando de instalación.
¿Outline VPN sigue siendo un producto de Google?
No, al menos desde agosto de 2026. Jigsaw lanzó Outline en 2018. Jigsaw es una incubadora de Google, y ese historial explica la referencia a «Google VPN» que aparece en las guías antiguas. El sitio del proyecto indica ahora que Outline pertenece a Outline Foundation, una organización independiente sin ánimo de lucro. Los repositorios de código fuente están en la organización OutlineFoundation de GitHub.
¿Qué puertos utiliza el servidor de Outline?
No hay una respuesta fija, por diseño. Si no pasa --api-port y --keys-port al instalador, este elige un puerto aleatorio superior a 1023 para la API de administración y otro para las claves de acceso. Al finalizar, muestra ambos puertos e indica que debe abrir el puerto de administración para TCP y el puerto de las claves de acceso para TCP y UDP, tanto en el firewall local como en el firewall de red del proveedor. Si perdió esa salida, sudo cat /opt/outline/access.txt devuelve la URL de administración con su puerto.
¿Puedo usar Outline para acceder a mi red privada?
No. Shadowsocks actúa como proxy para conexiones TCP y UDP, en lugar de crear un túnel de capa 3. Por eso, el servidor no tiene ninguna interfaz ni rutas hacia los recursos situados detrás de él. Puede asignar AllowedIPs = 10.20.0.0/16 a un peer de WireGuard para que acceda a ese rango. Outline no tiene un ajuste equivalente porque no tiene nada que enrutar. Use WireGuard para acceder a redes privadas y reserve Outline para salir a internet pública.
¿Cómo elimino el acceso de una persona?
Elimine su clave de acceso en Outline Manager o mediante DELETE /access-keys/{id} contra la API de administración. El servidor deja de aceptar esa clave de inmediato. Esto sólo funciona correctamente cuando cada persona tiene su propia clave. Cree una clave por persona y asígnele un nombre que la identifique. Revocar el acceso de administración es un problema mucho más grave: la solución documentada para una configuración de administración que haya compartido en un servidor instalado manualmente es reinstalarlo por completo. Esto restablece todas las claves de usuario al mismo tiempo.