Para alojar un VPN (como VLESS Reality) y un sitio web en el mismo VPS utilizando el puerto 443, se implementa eficazmente mediante el enrutamiento SNI con Nginx o sing-box, donde Nginx, al escuchar en el puerto 443, redirige el tráfico basándose en SNI, enviando las solicitudes HTTPS al sitio web y el resto del tráfico TLS al servidor VPN, lo que requiere un mínimo de 2 vCPU y 4 GB de RAM para un funcionamiento estable.
Muchos usuarios de VPS se enfrentan a un dilema: ejecutar su propio servidor VPN para un acceso seguro y libre a internet o alojar un sitio web accesible a través del protocolo HTTPS. Ambos servicios, por defecto, intentan ocupar el mismo puerto 443, creando un conflicto. Sin embargo, las tecnologías modernas permiten resolver este problema de manera elegante y eficiente, utilizando mecanismos de enrutamiento de tráfico TLS. En este artículo, exploraremos en detalle cómo configurar VPN y un sitio web en un mismo servidor, utilizando Nginx o sing-box como un proxy inteligente que dividirá el tráfico entrante y lo dirigirá a su destino, haciendo que tu configuración sea resistente a los sistemas de inspección profunda de paquetes (DPI).
Problema del puerto 443 ocupado: ¿Por qué es crucial el enrutamiento SNI?
El puerto 443 es el puerto estándar para el Protocolo de Transferencia de Hipertexto Seguro (HTTPS), que se utiliza para el intercambio de datos cifrados entre un navegador web y un servidor web. La gran mayoría de los sitios web en internet utilizan HTTPS para garantizar la confidencialidad e integridad de los datos. Simultáneamente, los protocolos VPN modernos, como VLESS Reality, también prefieren utilizar el puerto 443, enmascarando su tráfico como HTTPS normal para eludir bloqueos y sistemas DPI.
Fundamentos del puerto 443 y TLS
Cuando abres un sitio web cuya dirección comienza con https://, tu navegador establece una conexión con el servidor en el puerto 443. La primera etapa de esta conexión es el handshake TLS (Transport Layer Security), durante el cual el cliente y el servidor intercambian certificados, generan claves de sesión y establecen un canal cifrado. Si dos servicios diferentes (por ejemplo, un servidor web y un VPN) intentan operar simultáneamente en la misma dirección IP y puerto 443, surgirá un conflicto, ya que solo una aplicación puede "escuchar" el tráfico en un puerto específico.
Cómo SNI resuelve los conflictos en una misma IP
Server Name Indication (SNI) es una extensión del protocolo TLS que permite al cliente (por ejemplo, un navegador o un cliente VPN) especificar el nombre de host al que intenta conectarse, incluso antes de que se complete el handshake TLS. Esto es fundamental para los servidores que alojan múltiples dominios en una única dirección IP, ya que el servidor puede determinar qué certificado enviar y qué sitio web servir, basándose en el nombre de host indicado en el SNI.
Para nuestro escenario, cuando el puerto 443 está ocupado por un VPN o un servidor web, el enrutamiento SNI se convierte en una solución clave. Podemos configurar un único proxy de frontend (por ejemplo, Nginx o sing-box) en el puerto 443. Este proxy analizará el encabezado SNI en el tráfico TLS entrante:
- Si el SNI coincide con el dominio de tu sitio web (por ejemplo,
yourdomain.com), el proxy redirigirá el tráfico a tu servidor web (por ejemplo, Apache, Nginx, aplicación Node.js), que puede estar escuchando en otro puerto interno (por ejemplo, 8080). - Si el SNI no coincide con los dominios de sitios web conocidos o tiene un valor específico utilizado por tu VPN (por ejemplo,
example.com, especificado en la configuración de Reality), el proxy redirigirá el tráfico a tu servidor VPN (Xray, sing-box), que también estará escuchando en otro puerto interno.
Este enfoque permite que el alojamiento de un sitio web y un VPN en un mismo VPS coexistan, utilizando eficazmente una única dirección IP pública y el puerto 443, mientras se enmascara el tráfico VPN como tráfico web normal, lo que aumenta significativamente la supervivencia del VPN en condiciones de bloqueo. Para una comprensión más profunda de los principios de funcionamiento de un VPN en tu propio servidor, te recomendamos consultar VPN en tu propio VPS: guía completa 2026.
Configurar Nginx para VPN y sitio web en un mismo servidor
Nginx (Engine-X) es un servidor HTTP de alto rendimiento y un servidor proxy inverso, conocido por su eficiencia y flexibilidad. Es ideal para el rol de frontend que recibirá todo el tráfico entrante en el puerto 443 y lo enrutará basándose en SNI. El uso de Nginx no solo permite alojar VPN y un sitio web en un mismo servidor, sino también gestionar centralizadamente los certificados SSL y proporcionar una capa adicional de seguridad.
Principios de funcionamiento de Nginx con TLS y SNI
Nginx es capaz de terminar la conexión TLS, lo que significa que descifra el tráfico cifrado entrante, lo analiza (incluido el encabezado SNI) y luego, si es necesario, lo vuelve a cifrar y lo redirige al backend. Esto permite que Nginx actúe como una puerta de enlace SSL/TLS. Para el enrutamiento SNI, Nginx utiliza la directiva ssl_preread_protocol on; y el módulo ngx_stream_ssl_preread_module, que permite extraer el SNI de una conexión TLS entrante antes de su establecimiento completo.
Después de extraer el SNI, Nginx puede usarlo para tomar decisiones de enrutamiento. Por ejemplo, si el SNI coincide con el dominio de tu sitio, el tráfico se dirige a tu servidor web. Si el SNI coincide con el dominio utilizado para Reality, el tráfico se dirige a tu servidor Xray o sing-box. En caso de que el SNI esté ausente o no coincida con ninguna de las reglas, se puede configurar un "fallback" al VPN, lo que lo hace más resistente.
Implementación de VLESS Reality detrás de Nginx: esquema general
El esquema general de funcionamiento de la combinación Reality y Nginx juntos es el siguiente:
- El cliente (navegador o cliente VPN) establece una conexión TLS con tu VPS en el puerto 443.
- Nginx, escuchando en el puerto 443, acepta esta conexión.
- Nginx utiliza el módulo
ngx_stream_ssl_preread_modulepara extraer el SNI de la solicitud. -
- Si el SNI coincide con el dominio de tu sitio web, Nginx proxy el tráfico a un puerto interno donde opera tu servidor web (por ejemplo,
localhost:8080). - Si el SNI coincide con el nombre de dominio especificado en la configuración de Reality (por ejemplo,
microsoft.comoapple.com), Nginx proxy el tráfico a un puerto interno donde opera tu servidor Xray o sing-box (por ejemplo,localhost:10000). - Si el SNI no coincide con ninguno de los dominios configurados, Nginx puede configurarse para redirigir el tráfico al VPN (fallback), lo que aumenta la fiabilidad del VPN.
- Si el SNI coincide con el dominio de tu sitio web, Nginx proxy el tráfico a un puerto interno donde opera tu servidor web (por ejemplo,
- El servidor web o el servidor VPN procesa el tráfico y devuelve la respuesta a través de Nginx al cliente.
Este esquema permite dividir el tráfico de manera eficiente, mientras que para un observador externo (incluido el DPI) todo el tráfico que pasa por el puerto 443 parece tráfico HTTPS normal hacia un servidor web legítimo, lo que aumenta significativamente las posibilidades de eludir los bloqueos.
¿Buscas un servidor fiable para tus proyectos?
VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.
Ver ofertas →Preparación del VPS: requisitos y configuración inicial para VPN y web
Antes de comenzar con la configuración, es importante asegurarse de que tu VPS tenga suficientes recursos para alojar simultáneamente el sitio web y el VPN, así como realizar la configuración básica del sistema operativo e instalar los componentes necesarios.
Especificaciones mínimas de VPS para alojar un sitio web y un VPN
La elección del VPS depende de la carga esperada tanto en el sitio web como en el VPN. Para un sitio web personal pequeño y un VPN para unos pocos usuarios, los requisitos serán mínimos, pero para proyectos con mayor carga se necesitarán más recursos. Valebyte.com ofrece diversas tarifas que se adaptarán a cualquier tarea.
Para 50 usuarios simultáneos, son suficientes 4 vCPU, 8 GB de RAM y un disco NVMe de 80 GB.
| Usuarios simultáneos | vCPU | RAM | Disco | Puerto | Precio (aprox., $/mes) |
|---|---|---|---|---|---|
| 1-5 (personal) | 1-2 | 1-2 GB | 20-40 GB NVMe/SSD | 1 Gbps | $5 - $10 |
| 5-20 (pequeña empresa/blog) | 2 | 2-4 GB | 40-60 GB NVMe | 1 Gbps | $10 - $20 |
| 20-50 (proyecto mediano/equipo) | 4 | 8 GB | 80-120 GB NVMe | 1 Gbps | $20 - $40 |
| 50-100+ (proyecto grande) | 6-8+ | 16 GB+ | 160 GB+ NVMe | 1-10 Gbps | $40+ |
Para la mayoría de los escenarios de alojamiento de sitio web y VPN en un mismo VPS, especialmente con VLESS Reality, un VPS con 2 vCPU y 4 GB de RAM en un disco NVMe será una elección óptima, garantizando un buen rendimiento y capacidad de respuesta. También es importante considerar que para un funcionamiento ininterrumpido se necesita un canal de comunicación estable, por lo que se recomienda elegir un proveedor con un puerto gigabit.
Instalación de Nginx, Xray/sing-box y obtención de certificado SSL (Let's Encrypt)
Después de seleccionar y configurar el VPS, es necesario instalar todos los componentes. Utilizaremos Ubuntu 22.04 LTS como ejemplo.
1. Actualización del sistema e instalación de Nginx:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
2. Instalación de Certbot para Let's Encrypt:
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
3. Obtención de certificado SSL para tu dominio:
Asegúrate de que tu dominio (por ejemplo, yourdomain.com) apunte a la dirección IP de tu VPS. Luego ejecuta:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Sigue las instrucciones de Certbot. Configurará automáticamente Nginx para usar el certificado. Si ya tienes experiencia trabajando con Nginx y SSL, puedes consultar nuestra guía sobre alojar Node.js en un VPS: PM2, Nginx y SSL en 15 minutos, donde se describen detalladamente los pasos para configurar Nginx con SSL.
4. Instalación de Xray o sing-box:
Para Xray-core, puedes usar el script de instalación oficial:
bash -c "$(curl -L https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh)" @ install
Para sing-box, la instalación se puede realizar manualmente o a través de scripts, como se describe en el artículo sing-box en un VPS: servidor universal para VLESS, Reality e Hysteria.
# Ejemplo de instalación de sing-box (para Ubuntu/Debian)
wget https://github.com/SagerNet/sing-box/releases/download/v1.7.0/sing-box-1.7.0-linux-amd64.tar.gz
tar -xvf sing-box-1.7.0-linux-amd64.tar.gz
sudo mv sing-box-1.7.0-linux-amd64/sing-box /usr/local/bin/
sudo chmod +x /usr/local/bin/sing-box
# Cree un archivo de servicio para systemd si es necesario
Después de instalar todos los componentes, puedes proceder con su configuración.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Configuración de Nginx para enrutamiento SNI: ejemplos y pasos
El elemento clave de nuestro esquema es Nginx, que actuará como enrutador TLS. Lo configuraremos para escuchar en el puerto 443 y redirigir el tráfico basándose en SNI.
Configuración sencilla para un sitio web y VLESS Reality
Esta configuración de Nginx escuchará en el puerto 443 y enrutará el tráfico a tu servidor web o a Xray/sing-box con Reality. Suponemos que tu servidor web escucha en localhost:8080 y el servidor Reality en localhost:10000.
Crea un nuevo archivo de configuración de Nginx, por ejemplo, /etc/nginx/conf.d/proxy.conf:
# Habilitamos el módulo ssl_preread
stream {
map $ssl_preread_server_name $backend_name {
# Dominio de tu sitio web
yourdomain.com website_backend;
www.yourdomain.com website_backend;
# Dominio para Reality (debe ser real, pero no necesariamente tuyo)
# Por ejemplo, microsoft.com, apple.com, google.com
microsoft.com vpn_backend;
apple.com vpn_backend;
# Fallback por defecto al VPN si el SNI no coincide
default vpn_backend;
}
upstream website_backend {
server 127.0.0.1:8080; # Tu servidor web
}
upstream vpn_backend {
server 127.0.0.1:10000; # Tu Xray/sing-box con Reality
}
server {
listen 443 ssl_preread;
proxy_pass $backend_name;
proxy_socket_keepalive on;
}
}
# Servidor HTTP para Certbot y redirección de HTTP a HTTPS
http {
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_prefer_server_ciphers on;
# Configuración HTTP/2
http2 on; # Importante para el rendimiento del sitio web
location / {
proxy_pass http://127.0.0.1:8080; # Redirigimos a tu servidor web
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
No olvides reemplazar yourdomain.com por tu dominio real, y microsoft.com/apple.com por los dominios que uses para Reality. Los dominios para Reality deben ser sitios web reales y activos para engañar con éxito al DPI. Guarda el archivo, verifica la configuración de Nginx con el comando sudo nginx -t y recarga Nginx: sudo systemctl reload nginx.
Configuración avanzada con fallback para Xray/sing-box
En la configuración anterior, ya implementamos un fallback a través de default vpn_backend;. Esto significa que cualquier tráfico en el puerto 443 cuyo SNI no coincida con tu sitio web o dominios Reality, será dirigido al VPN. Esto es muy útil, ya que algunos clientes antiguos o solicitudes específicas pueden no enviar SNI o enviar un SNI desconocido. Esta configuración hace que VLESS detrás de Nginx sea más resistente.
Adicionalmente, para aumentar la seguridad y prevenir fugas, se pueden bloquear todos los puertos excepto el 80 y el 443, utilizando un firewall (por ejemplo, UFW):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Esto garantiza que solo Nginx sea accesible desde el exterior en los puertos web estándar, y que todos los servicios internos (servidor web en 8080, VPN en 10000) solo sean accesibles localmente.
Cómo configurar VLESS Reality (Xray/sing-box) con Nginx
Después de configurar Nginx, es necesario adaptar la configuración de tu servidor VPN (Xray o sing-box) para que funcione detrás de este proxy. Deben escuchar en un puerto interno (por ejemplo, 10000) y estar configurados para recibir el tráfico que Nginx les redirigirá.
Configuración de Xray-core con inbound Reality y SNI
Para Xray-core, la configuración de Reality con el protocolo inbound VLESS debe configurarse para escuchar en un puerto interno y esperar el tráfico que ya ha pasado por Nginx. En este caso, Xray no escuchará directamente en el puerto 443, sino que recibirá el tráfico de Nginx.
Ejemplo de archivo /usr/local/etc/xray/config.json:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 10000, # Puerto interno que escucha Xray
"protocol": "vless",
"settings": {
"clients": [
{
"id": "ВАШ_UUID", # Genere un UUID único
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "microsoft.com:443", # Dominio del sitio objetivo para Reality
"xver": 0,
"serverNames": [
"microsoft.com", # Dominios que Nginx redirige al VPN
"apple.com"
],
"privateKey": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ", # Clave privada de Reality generada
"minClientVer": "",
"maxClientVer": "",
"maxTimeDiff": 0,
"shortIds": [
"ВАШ_КОРОТКИЙ_ID" # ID corto generado
]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
]
}
Reemplaza ВАШ_UUID, ВАШ_ПРИВАТНЫЙ_КЛЮЧ, ВАШ_КОРОТКИЙ_ID con los valores generados. Para generar las claves Reality y el ID corto, puedes usar el comando xray x25519. Ten en cuenta que dest en realitySettings debe ser un dominio real que se utilizará para la "huella" TLS. Los serverNames deben coincidir con los que especificaste en Nginx para el enrutamiento al VPN. Puedes encontrar información más detallada sobre la configuración rápida de VLESS Reality en el artículo Tu propio VPN en un VPS: VLESS Reality + Xray-core en 10 minutos.
Uso de sing-box como proxy universal con Reality
Sing-box es una solución más moderna y universal que también funciona perfectamente con la combinación de Reality y Nginx juntos. Su configuración para VLESS Reality es similar a la de Xray, pero tiene sus propias particularidades. Sing-box también escuchará en un puerto interno.
Ejemplo de archivo /etc/sing-box/config.json:
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "vless",
"listen": "127.0.0.1",
"listen_port": 10000, # Puerto interno que escucha sing-box
"users": [
{
"uuid": "ВАШ_UUID",
"flow": "xtls-rprx-vision"
}
],
"tls": {
"enabled": true,
"reality": {
"enabled": true,
"handshake_server": "microsoft.com:443", # Dominio del sitio objetivo para Reality
"server_names": [
"microsoft.com", # Dominios que Nginx redirige al VPN
"apple.com"
],
"private_key": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ",
"short_id": ["ВАШ_КОРОТКИЙ_ID"]
}
},
"sniff": {
"enabled": true,
"route_only": true,
"override_destination": true
}
}
],
"outbounds": [
{
"type": "direct"
},
{
"type": "block",
"tag": "block"
}
]
}
De manera similar, reemplaza todos los marcadores de posición. Para generar claves e IDs en sing-box, puedes usar el comando sing-box generate reality-keypair. Después de guardar la configuración, reinicia el servicio Xray o sing-box. Por ejemplo, para Xray: sudo systemctl restart xray. Para sing-box, si creaste un servicio systemd, el comando será similar.
Nginx + Reality: ventajas y cómo evadir la inspección profunda de paquetes (DPI)
La combinación de Nginx con el protocolo Reality en Xray o sing-box es una de las formas más efectivas de eludir los sistemas de inspección profunda de paquetes (DPI) y la censura. Esta combinación proporciona un alto nivel de enmascaramiento y resistencia.
Enmascaramiento del tráfico VPN como HTTPS normal
La ventaja clave de Reality y Nginx juntos radica en que todo el tráfico que pasa por el puerto 443 parece una conexión HTTPS normal a un sitio web legítimo. Esto se logra de varias maneras:
- Uso del puerto 443: Puerto estándar para HTTPS, que rara vez se bloquea por completo.
- Enrutamiento SNI: Nginx dirige el tráfico basándose en SNI, que en el caso de VPN apunta a un dominio real y popular (por ejemplo,
microsoft.com). - Huella TLS (Reality): El protocolo Reality está diseñado específicamente para imitar las huellas TLS de servidores web conocidos (por ejemplo, Google, Apple, Microsoft), lo que lo hace prácticamente indistinguible del tráfico HTTPS normal para el DPI.
- Ausencia de certificado SSL en el VPN: En Reality, el servidor VPN no utiliza su propio certificado SSL, lo que elimina uno de los puntos frecuentes de detección de VPN.
Para el DPI, que analiza los encabezados de los paquetes, el SNI y las huellas TLS, la conexión con tu servidor parecerá una solicitud normal a microsoft.com o apple.com, lo que dificulta significativamente su identificación como tráfico VPN. Esto permite que el VPN y el sitio web en un mismo servidor pasen desapercibidos.
Comparación con otros métodos para evadir bloqueos
En comparación con otros protocolos y métodos, la combinación Nginx + Reality tiene varias ventajas:
- OpenVPN/IPsec: Estos protocolos a menudo utilizan puertos y patrones de tráfico específicos que son fácilmente detectados y bloqueados por el DPI.
- Shadowsocks/V2Ray (sin Reality): Aunque pueden usar TLS, sus huellas TLS pueden ser únicas y delatarlos como VPN. Reality combate activamente este problema.
- Proxy en puertos no estándar: Un simple cambio del puerto VPN al 80 o a otro puerto no estándar a menudo resulta en un bloqueo rápido, ya que estos puertos rara vez se utilizan para tráfico TLS legítimo.
- WireGuard: Un excelente protocolo, pero su tráfico UDP y su handshake específico pueden ser detectados y bloqueados en entornos agresivos.
Gracias a su enmascaramiento, el enrutamiento SNI en un VPS en combinación con Reality proporciona una alta supervivencia, lo que lo convierte en la opción preferida para usuarios en regiones con censura activa de internet.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Errores comunes y problemas al configurar VPN y sitio web en un VPS
A pesar de todas las ventajas, la configuración de VPN y un sitio web en un mismo servidor a través del enrutamiento SNI puede presentar algunas dificultades. Conocer estos posibles problemas te ayudará a evitarlos o a resolverlos rápidamente.
Problemas con certificados y HTTP/2
- Rutas de certificados incorrectas: Asegúrate de que las rutas a
fullchain.pemyprivkey.pemen tu configuración de Nginx (para la parte HTTP) sean correctas y apunten a los certificados Let's Encrypt actuales. Certbot generalmente los ubica en/etc/letsencrypt/live/yourdomain.com/. - Certificados caducados: Los certificados de Let's Encrypt son válidos por 90 días. Certbot suele configurar la renovación automática, pero a veces puede fallar. Verifica regularmente el estado con el comando
sudo certbot renew --dry-run. - Conflicto HTTP/2: Nginx soporta HTTP/2 (
http2 on;), lo cual es importante para la carga rápida del sitio web. Asegúrate de que tu servidor web, si es proxy por Nginx, también funcione correctamente con este protocolo o que Nginx convierta HTTP/2 a HTTP/1.1 al hacer proxy al backend. Pueden surgir problemas si el backend no soporta HTTP/2 y Nginx está configurado para usarlo estrictamente para el proxy. En nuestro ejemplo, Nginx hace proxy a un backend HTTP/1.1 (proxy_pass http://127.0.0.1:8080;), por lo que no debería haber problemas. - Dominio Reality incorrecto: El dominio utilizado para Reality (en
destyserverNames) debe ser real y accesible desde internet para que Reality pueda imitar con éxito su huella TLS. El uso de un dominio inexistente o bloqueado puede causar problemas de conexión.
Cuándo es más sencillo optar por un segundo VPS: análisis de costos y riesgos
Aunque alojar un sitio web y un VPN en un mismo VPS es económicamente ventajoso y técnicamente posible, a veces es más sencillo y fiable utilizar dos VPS separados.
Recomendaciones para la elección:
- Escala del proyecto: Si tienes un sitio web con mucha carga (miles de visitantes al día) o un VPN para un gran número de usuarios activos (cientos), separar los servicios en dos VPS (uno para el sitio web, otro para el VPN) garantizará un mejor rendimiento y estabilidad de cada uno.
- Riesgos de bloqueo: En condiciones de censura muy agresiva, donde los bloqueos ocurren con frecuencia y por diversas razones, la separación de servicios puede reducir el riesgo de una inaccesibilidad total. Si la IP del VPN es bloqueada, tu sitio web seguirá siendo accesible en otra IP.
- Complejidad de la configuración: La configuración del enrutamiento SNI requiere ciertos conocimientos técnicos. Si no estás seguro de tus habilidades o no tienes tiempo para depurar, dos VPS separados serán más fáciles de gestionar.
- Presupuesto: La diferencia de precio entre un VPS potente y dos VPS básicos puede ser insignificante. Por ejemplo, dos VPS de $5/mes pueden ofrecer más flexibilidad que uno de $10/mes. Valebyte.com ofrece tarifas accesibles que permiten no limitarse a un solo servidor.
- Facilidad de gestión: El uso de paneles de control como Hiddify (ver Hiddify en un VPS: panel propio y suscripciones para VLESS Reality) simplifica la gestión del VPN, pero para el sitio web aún se requerirá una configuración separada.
En última instancia, la decisión sobre la cantidad de VPS depende de tus necesidades, presupuesto y nivel de competencia técnica. Para la mayoría de los usuarios individuales y proyectos pequeños, un VPS con una configuración adecuada de enrutamiento SNI será la solución óptima.
Preguntas frecuentes sobre VPN y sitio web en un VPS
Aquí respondemos a las preguntas más comunes sobre cómo alojar un VPN y un sitio web en un mismo servidor.
¿Se puede usar VLESS Reality sin Nginx si no tengo un sitio web?
Sí, VLESS Reality puede funcionar directamente en el puerto 443 sin Nginx si no necesitas alojar un sitio web. En este caso, Xray o sing-box escuchará directamente en el puerto 443, lo que simplifica la configuración al no requerir enrutamiento SNI. Sin embargo, para eludir el DPI, sigue siendo crucial usar un dominio real en la configuración de Reality, por ejemplo, microsoft.com, para que el tráfico parezca una solicitud HTTPS normal.
¿Qué dominios se recomiendan para Reality en dest y serverNames?
Para Reality se recomienda usar dominios de servicios grandes, populares y confiables, como microsoft.com, apple.com, google.com, amazon.com u otros grandes proveedores de la nube. Estos dominios tienen huellas TLS estables que son bien conocidas y rara vez bloqueadas. Evita usar dominios poco conocidos o sospechosos, ya que esto podría generar sospechas en el DPI. Para un funcionamiento estable de Reality se requieren varios de estos dominios.
¿Se ralentizará el sitio web por tener el VPN en el mismo VPS?
Con una configuración adecuada y suficientes recursos de VPS, el impacto del VPN en el rendimiento del sitio web será mínimo. Nginx enruta el tráfico de manera eficiente, y los protocolos VPN modernos, como VLESS Reality, están optimizados para un bajo consumo de recursos. Si tu VPS tiene 2 vCPU y 4 GB de RAM, para un sitio web pequeño y pocos usuarios de VPN no habrá ralentizaciones. Sin embargo, para proyectos de alta carga, se recomienda un VPS más potente o la separación de servicios.
¿Es necesario abrir puertos adicionales además del 80 y 443?
En la mayoría de los casos, no. El esquema con Nginx y enrutamiento SNI permite alojar todos los servicios en el puerto 443. Tu servidor web y tu servidor VPN escucharán en puertos internos (por ejemplo, 8080 y 10000) que no deben ser accesibles desde el exterior. De esta manera, para el mundo exterior solo permanecen abiertos los puertos 80 (para la redirección a HTTPS) y 443, lo que aumenta la seguridad y reduce la "visibilidad" de tu servidor.
¿Puedo usar otro servidor web en lugar de Nginx, como Apache?
Técnicamente sí, pero Nginx es la opción preferida para esta tarea debido a su alto rendimiento y soporte nativo del módulo ngx_stream_ssl_preread_module para el enrutamiento SNI a nivel de flujo (stream). Apache también puede configurarse para proxy, pero su configuración para el enrutamiento SNI basado en el saludo TLS puede ser más compleja y menos eficiente que en Nginx. Para la mayoría de los escenarios, especialmente cuando se requiere alta velocidad y flexibilidad, Nginx es la solución óptima.
Conclusiones
Alojar un VPN (VLESS Reality) y un sitio web en un mismo VPS utilizando el puerto 443 no solo es posible, sino que también es una solución altamente eficaz para eludir la censura, enmascarando el tráfico VPN como HTTPS normal. El enrutamiento inteligente basado en SNI a través de Nginx o sing-box permite que estos servicios coexistan, garantizando al mismo tiempo una alta supervivencia del VPN. Para la mayoría de los usuarios, especialmente con proyectos pequeños y medianos, este enfoque ofrece un equilibrio óptimo entre el ahorro de recursos y la fiabilidad, requiriendo solo un VPS básico con 2 vCPU y 4 GB de RAM.
¿Listo para elegir un servidor?
VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.
Empezar ahora →