VPN AmneziaWG
Palabras clave
| Palabra clave | Definición |
|---|---|
| 🛡️ AmneziaWG | Una bifurcación de WireGuard que aleatoriza los encabezados de los paquetes, los tamaños y los tiempos de transmisión para contrarrestar la inspección profunda de paquetes mientras mantiene la misma criptografía probada. Este es un protocolo que se ejecuta en tu servidor. |
| 🚀 AmneziaWG 2.0 | La versión principal actual que usa rangos dinámicos de encabezados (en lugar de valores fijos), añade relleno a nivel de datos (S4) y admite paquetes sustitutos con una firma de protocolo personalizada para una evasión de DPI más fuerte. |
| 🔍 Inspección profunda de paquetes (DPI) | Una técnica de filtrado de red utilizada por los ISP y entidades gubernamentales para identificar y bloquear tráfico VPN mediante el análisis de encabezados de paquetes, tamaños y patrones de handshake. AmneziaWG está diseñado específicamente para contrarrestar esto. |
| ⚡ WireGuard | Un protocolo VPN rápido y moderno con una base de código pequeña y rendimiento a nivel de kernel. Es fácilmente identificable por los sistemas DPI debido a su estructura fija de paquetes, lo cual se ha abordado en AmneziaWG. |
| 🏠 VPN autohospedada | Una VPN que implementas y administras en tu propio servidor (normalmente un VPS) en lugar de suscribirte a un proveedor comercial. Tú controlas las claves, la configuración y la infraestructura. |
| 🐧 DKMS (Dynamic Kernel Module Support) | Un framework de Linux que recompila automáticamente los módulos del kernel cuando se actualiza el kernel del sistema. El instalador de AmneziaWG usa DKMS para compilar un módulo del kernel de alto rendimiento. |
| 🎭 Ofuscación | La práctica de disfrazar el tráfico VPN para que parezca tráfico normal de Internet. AmneziaWG ofusca en la capa de transporte aleatorizando encabezados, añadiendo relleno, enviando paquetes sustitutos y generando paquetes basura. |
| 🔀 Split tunneling | Una configuración de enrutamiento en la que solo el tráfico específico (por ejemplo, sitios bloqueados) pasa por la VPN mientras que el otro tráfico usa tu conexión directa. Útil en países con censura parcial. |
| 🖥️ KVM vs LXC | KVM es virtualización completa con un kernel dedicado necesario para cargar módulos personalizados del kernel como AmneziaWG. LXC es virtualización de contenedores que usa el kernel compartido del host y no puede cargar módulos personalizados. |
| 🎪 CPS (Custom Protocol Signature) | Una función de AmneziaWG 2.0 que envía paquetes sustitutos que imitan otros protocolos (QUIC, DNS, SIP) antes del handshake real, engañando a los sistemas DPI al clasificar el tráfico como normal. |
Servidor VPN AmneziaWG autodesplegable — Guía completa

AmneziaWG es un protocolo diseñado para resolver un problema específico: ¿cómo lograr velocidades de WireGuard cuando las redes a las que te conectas intentan activamente bloquearlo? Es una bifurcación de WireGuard creada por el equipo de Amnezia VPN, y hace lo que el original no hace: aleatoriza la capa de transporte para que los sistemas de inspección profunda de paquetes no puedan identificarlo. El cifrado sigue siendo exactamente el mismo. Solo cambia la apariencia de los paquetes en la red.
El panorama general de la ofuscación VPN ha sido una carrera armamentística a lo largo de los años. Herramientas como Shadowsocks, VLESS+Reality y OpenVPN con obfs4 intentan disfrazar el tráfico de varias maneras: algunas como proxies, otras como túneles completos, algunas con altos costes de rendimiento. AmneziaWG ocupa un nicho específico: es un túnel VPN completo con rendimiento a nivel de WireGuard y protección DPI integrada, todo en un solo paquete. Y como es de código abierto, puedes desplegarlo en tu propio servidor.
Pero aquí está el problema que hace esto necesario. Configuras WireGuard. Funciona perfectamente: rápido, limpio, fiable. Luego, un buen día, deja de funcionar. Sin mensaje de error, sin tiempo de espera, sin rechazo de conexión. Los paquetes simplemente desaparecen. Así es como se ve el bloqueo por DPI en la práctica: tu túnel sigue operativo, tu configuración sigue siendo correcta y nada pasa a través de él. Esta es la realidad en Rusia (donde WireGuard tiene aproximadamente una tasa de éxito del 12%), Irán (98% de pérdida de paquetes) y una lista creciente de países que incluye China, Egipto, EAU, Turquía, Bielorrusia, Uzbekistán, Kazajistán, Myanmar y Pakistán.

Las alternativas tradicionales no resuelven completamente este problema. Shadowsocks es un proxy, no un túnel VPN completo: tu DNS y el tráfico que no sea TCP seguirán filtrándose. OpenVPN con obfs4 funciona, pero tiene aproximadamente un 25% de sobrecarga de rendimiento. VLESS+Reality ofrece una ofuscación sólida, pero se basa en proxy y es complejo de configurar. AmneziaWG llena ese vacío: es un túnel VPN completo con rendimiento a nivel de WireGuard y protección DPI integrada.
Esta guía te llevará a desplegar un servidor AmneziaWG 2.0 completamente funcional en cualquier VPS KVM en menos de 15 minutos usando un único script instalador de la comunidad. Al final, tendrás un túnel VPN funcional al que podrás conectarte desde cualquier dispositivo. Los pasos son independientes del proveedor: funcionan en cualquier VPS con acceso SSH y privilegios de root, ya sea de AlexHost, AvaHost u otro. Esto está escrito para usuarios con un nivel intermedio de conocimientos técnicos que se sienten cómodos trabajando con SSH y comandos básicos de Linux.
Una aclaración antes de empezar: AmneziaWG es un protocolo. AmneziaVPN es una aplicación cliente que se conecta a él. Están relacionados pero son distintos, como TLS para tu navegador. Necesitarás una aplicación para conectarte, pero el protocolo es lo que se ejecuta en tu servidor.
Pero antes de desplegar nada, necesitas entender qué hace diferente a AmneziaWG de WireGuard — y por qué esa diferencia importa cuando DPI te está vigilando.
¿Qué es AmneziaWG? (Modelo mental)
WireGuard es elegante en su diseño. Tiene una base de código pequeña, usa criptografía moderna y se ejecuta en el kernel de Linux para un rendimiento casi nativo. Pero esta elegancia tiene un problema de visibilidad: cada paquete de WireGuard lleva la misma estructura fija de encabezado, los mismos tamaños fijos de paquete y el mismo patrón de handshake. Para un sistema de inspección profunda de paquetes, el túnel WireGuard tiene una firma tan clara como un código de barras. Una vez que un dispositivo DPI aprende esta firma, puede descartar cada paquete sin bloquear el puerto ni cerrar la conexión.

Piénsalo así. WireGuard es como un mensajero que siempre lleva el mismo uniforme: rápido, fiable y eficiente. Pero cualquiera que observe la carretera aprende a reconocer ese uniforme y puede detener al mensajero en cualquier control. AmneziaWG es el mismo mensajero llevando los mismos paquetes, pero cambia su uniforme en cada control. La misma persona, la misma carga, una apariencia completamente diferente.
La historia de versiones importa. AmneziaWG 1.x introdujo encabezados personalizados que diferían de los valores fijos de WireGuard; esto ayudó durante un tiempo, pero los sistemas DPI se adaptaron. AmneziaWG 2.0, lanzado a finales de 2025, aleatoriza todo: los encabezados cambian de paquete a paquete, el relleno varía de mensaje a mensaje y los paquetes sustitutos imitan otros protocolos antes de que comience el handshake real. No existe una firma universal para la detección porque cada servidor AmneziaWG 2.0 genera su propio conjunto único de parámetros. Cada servidor habla su propio dialecto.
Cuando todos los parámetros de ofuscación se establecen en cero, AmneziaWG se comporta de forma idéntica a WireGuard: es totalmente compatible hacia atrás a nivel de protocolo. Pero con parámetros activos (que es la configuración predeterminada), se convierte en lo que WireGuard no puede ser: un túnel VPN rápido que los sistemas DPI tienen dificultades para identificar.
Entonces, ¿cómo cifra exactamente AmneziaWG su tráfico? Veamos los cuatro niveles de ofuscación que hacen que DPI quede ciego — y por qué añaden casi ningún coste de velocidad.
Cómo AmneziaWG se oculta de DPI (sin pérdida de velocidad)
AmneziaWG 2.0 usa cuatro niveles de ofuscación que trabajan juntos. Cada uno apunta a una forma distinta en que los sistemas DPI identifican el tráfico VPN. Juntos, hacen que el tráfico de cada servidor sea único.
Encabezados dinámicos (H1–H4)
WireGuard usa identificadores fijos de tipo de mensaje de 32 bits:
- 1 — para iniciación
- 2 — para respuesta
- 3 — para respuesta con cookie
- 4 — para datos
Un dispositivo DPI que escanea el tráfico simplemente busca estos valores. AmneziaWG 2.0 reemplaza cada valor fijo con un número aleatorio elegido de un rango especificado. El encabezado de iniciación (H1) puede ser cualquier valor de 234567 a 345678. El encabezado de respuesta (H2) puede ser de 3456789 a 4567890. Estos rangos nunca se superponen — el protocolo todavía necesita distinguir internamente los tipos de paquete — pero para un observador externo, no hay un único valor de encabezado al que aferrarse. Cada paquete se ve diferente del anterior.
Relleno aleatorio (S1–S4)
El paquete de iniciación de WireGuard siempre tiene exactamente 148 bytes. Su respuesta siempre tiene exactamente 92 bytes. Estos tamaños fijos son otra huella digital. AmneziaWG añade relleno aleatorio a cada tipo de paquete: la iniciación pasa a ser 148+S1 bytes, la respuesta 92+S2 bytes, la respuesta con cookie 64+S3 bytes, y cada paquete de datos recibe S4 bytes de relleno. S3 y S4 son nuevos en la versión 2.0 — y S4 es la adición más significativa, ya que afecta a cada paquete de datos, haciendo mucho más difícil el análisis del tráfico a nivel de sesión.
Hay una restricción crítica: S1+56 no debe ser igual a S2. Dado que la diferencia original de tamaño entre iniciación y respuesta es de 56 bytes (148−92), si los valores de relleno compensan aleatoriamente exactamente esa diferencia, dos paquetes rellenados acabarán teniendo el mismo tamaño — recreando la huella que AmneziaWG intenta eliminar. El generador de parámetros del instalador garantiza automáticamente esta restricción.
Firma de protocolo personalizada (I1–I5)
Antes de que comience el handshake real, el cliente AmneziaWG envía hasta cinco paquetes sustitutos que imitan otros protocolos: QUIC, DNS, SIP o patrones de bytes personalizados. El servidor ignora completamente estos paquetes. Simplemente espera el handshake real.
- Configuración simple: Envía 128 bytes aleatorios <r 128>.
- Configuración compleja: Envía bytes que parecen iniciar una conexión QUIC (<b 0xc000000001><r 64><t>), con una marca de tiempo Unix.
Para un sistema DPI que observa el inicio de la sesión, los primeros paquetes parecen tráfico web normal.
Paquetes basura (Jc, Jmin, Jmax)
Después de los paquetes sustitutos, el cliente envía un número configurable de paquetes basura: ruido puro con tamaños aleatorios de Jmin a Jmax. Estos paquetes difuminan el perfil de tiempo y tamaño del inicio de la sesión, haciendo más difícil para los sistemas DPI identificar dónde comienza el handshake real.
Pregunta de velocidad
Hay un número que circula por Internet: AmneziaWG tiene un 65% de sobrecarga. Esta cifra es real, pero se refiere a la implementación Go en espacio de usuario, no al módulo del kernel. El instalador de la comunidad usado en esta guía compila un módulo del kernel DKMS, y el módulo del kernel añade menos del 12% de sobrecarga en total — más cerca del 3% en pruebas reales. En una red sin censura, verías unos 95 Mbps a través de WireGuard y 92 Mbps a través de AmneziaWG 2.0. En una red censurada, la comparación es 92 Mbps frente a cero.
La siguiente tabla resume los parámetros que el instalador genera automáticamente:
| Parámetro | Rango generado | Valor de ejemplo |
|---|---|---|
| Jc (número de paquetes basura) | 4–8 | 6 |
| Jmin (tamaño mín. de basura) | 40–89 | 55 |
| Jmax (tamaño máx. de basura) | Jmin+100 a Jmin+500 | 380 |
| S1 (relleno de iniciación) | 15–150 | 72 |
| S2 (relleno de respuesta) | 15–150, S1+56≠S2 | 56 |
| S3 (relleno de cookie) | 8–55 | 32 |
| S4 (relleno de datos) | 4–27 | 16 |
| H1 (rango de encabezado de iniciación) | uint32 sin solapamiento | 234567-345678 |
| H2 (rango de encabezado de respuesta) | uint32 sin solapamiento | 3456789-4567890 |
| H3 (rango de encabezado de cookie) | uint32 sin solapamiento | 56789012-67890123 |
| H4 (rango de encabezado de datos) | uint32 sin solapamiento | 456789012-567890123 |
| I1 (paquete CPS) | Formato <r N> | <r 128> |
No necesitas configurar manualmente ninguno de estos parámetros. El instalador genera valores aleatorios criptográficamente que cumplen las restricciones cada vez.
Ahora que sabes cómo funciona la ofuscación, veamos cómo se compara AmneziaWG con las alternativas que podrías estar considerando.
AmneziaWG vs alternativas — Guía rápida para tomar decisiones

| WireGuard | AmneziaWG 2.0 | OpenVPN+obfs4 | Shadowsocks | VLESS+Reality | |
|---|---|---|---|---|---|
| Resistencia a DPI | Baja | Alta | Media | Media | Muy alta |
| Sobre carga de velocidad | ~4% | <12% (~3% en condiciones reales) | ~25% | ~8% | ~10% |
| Túnel VPN completo | Sí | Sí | Sí | No (proxy) | No (proxy) |
| Se ejecuta en el kernel | Sí | Sí (DKMS) | No | No | No |
| Complejidad de configuración | Baja | Baja (con instalador) | Alta | Media | Alta |
| Transporte | UDP | UDP | TCP/UDP | TCP | TCP |
Las reglas para tomar decisiones son simples:
- ¿No hay DPI en tu país? Usa WireGuard normal. Es más fácil y tiene un ecosistema más amplio.
- ¿Necesitas la máxima protección contra DPI y no te importan los proxies? VLESS+Reality es la opción más fuerte para la ofuscación, pero no es un túnel completo.
- ¿Quieres velocidad y un túnel completo con ofuscación? AmneziaWG 2.0 es la única opción que ofrece rendimiento a nivel de WireGuard con protección DPI real en un túnel VPN completo.
- ¿Ya usas OpenVPN+obfs4 y sigue funcionando? No hay necesidad urgente de cambiar, pero AmneziaWG será notablemente más rápido.
Este artículo se centra en AmneziaWG porque es el único protocolo que te proporciona un túnel completo, rendimiento a nivel de kernel y ofuscación integrada, todo configurado con un solo script.
Si AmneziaWG es la opción correcta para tu situación, esto es lo que necesitas antes de comenzar el despliegue.
Lo que necesitas antes de empezar
Antes de ejecutar el instalador, asegúrate de que tu entorno cumpla estos requisitos:
| Requisito | Detalles | Por qué |
|---|---|---|
| SO | Ubuntu 24.04 LTS (instalación limpia). Ubuntu 25.10 es experimental. Debian 12/13 funciona, pero puede requerir curl preinstalado. | El instalador está probado y totalmente soportado en Ubuntu 24.04. |
| Especificaciones del VPS | 1 vCore, 1 GB RAM, 25 GB de almacenamiento. Cualquier plan de $3–5/mes es adecuado. | El instalador requiere ~2 GB de espacio en disco y ~1 GB de RAM durante la compilación DKMS. La VPN en funcionamiento usa recursos mínimos. |
| Virtualización | KVM (no OpenVZ, no LXC). | AmneziaWG carga el módulo del kernel mediante DKMS. LXC usa un kernel compartido del host y no puede cargar módulos personalizados. |
| Acceso SSH | Usuario root o sudo con autenticación por contraseña/clave. | El instalador necesita ejecutarse como root. |
| Puerto SSH | Predeterminado 22 o preabierto en UFW si usas un puerto no estándar. | Si SSH no se está ejecutando en el puerto 22 y no lo has abierto de antemano, la configuración del firewall del instalador te bloqueará. |
| Aplicación cliente | Amnezia VPN >= 4.8.12.7 (todas las plataformas). | Las opciones de AWG 2.0 no son entendidas por clientes antiguos. El cliente estándar de WireGuard no admite AWG en absoluto. |
⚠️ Advertencia: Los contenedores LXC no son compatibles. Si tu VPS usa virtualización LXC, la compilación del módulo del kernel DKMS fallará. Debes usar KVM o bare-metal. Consulta con tu proveedor si no estás seguro.
⚠️ Advertencia: Si tu SSH se está ejecutando en un puerto no estándar (cualquier cosa distinta de 22), debes abrirlo en UFW antes de ejecutar el instalador:
sudo ufw allow YOUR_PORT/tcpReemplaza YOUR_PORT con tu puerto SSH real. El instalador incluye UFW con una política predeterminada: si tu puerto SSH no está permitido, quedarás bloqueado inmediatamente.
💡 Consejo: Espera 5–10 minutos después de crear tu VPS antes de ejecutar el instalador. Cloud-init y los procesos de inicialización en segundo plano pueden entrar en conflicto con las llamadas a apt-get que realiza el instalador.
Con tu VPS listo y los requisitos previos confirmados, despleguemos AmneziaWG 2.0 usando el script instalador de la comunidad: el método más rápido y transparente.
Método 1 — Desplegar con el instalador CLI (recomendado)
Este es el método principal de instalación. Descargarás un script instalador fijado a una versión, lo ejecutarás como root, pasarás por ocho pasos automatizados (con dos reinicios esperados) y terminarás con un servidor AmneziaWG 2.0 completamente configurado. El instalador se encarga de todo: instalación de paquetes, compilación del módulo del kernel, configuración del firewall, generación de parámetros e inicio del servicio.
6.1 — Conéctate a tu VPS vía SSH
Abre tu terminal y conéctate a tu servidor:
ssh root@<SERVER_IP>Reemplaza <SERVER_IP> con la dirección IP pública real de tu VPS. Si tu proveedor te dio un usuario que no es root, inicia sesión con ese usuario y luego eleva privilegios:
ssh <username>@<SERVER_IP>
sudo -iDeberías ver el banner de bienvenida de Ubuntu 24.04 seguido de un prompt de root:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-xx-generic x86_64)
...
root@vps:~#6.2 — Descarga y ejecuta el instalador
Descarga el script instalador, hazlo ejecutable y ejecútalo:
wget https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.1/install_amneziawg_en.sh
chmod +x install_amneziawg_en.sh
sudo bash ./install_amneziawg_en.shLa URL está fijada a la versión v5.8.1 — la última versión a abril de 2026. Esto es seguridad en la cadena de suministro: garantiza que el script descargado coincida con la versión probada, incluso si el repositorio se ha actualizado desde entonces.
El instalador comienza comprobando tu sistema:
============================================
AmneziaWG 2.0 Installer v5.8.1
============================================
Checking system requirements...
OS: Ubuntu 24.04 LTS — OK
Virtualization: KVM — OK
RAM: 1024 MB — OK
Disk: 25 GB free — OKSi alguna comprobación falla, el instalador se detiene y te dice por qué. Corrige el problema y vuelve a ejecutar el comando.
6.3 — Sigue los mensajes del instalador
El instalador es una máquina de estados de ocho pasos con soporte para reanudación tras reinicio. Guarda su progreso en /root/awg/setup_state, así que si el servidor se reinicia, solo tienes que ejecutar el mismo comando otra vez y continuará donde lo dejó.
Paso 0: Inicialización — El instalador comprueba tu SO, tipo de virtualización, RAM y espacio en disco. Crea el directorio de trabajo /root/awg/ y configura un archivo de bloqueo para evitar ejecuciones paralelas.
Paso 1: Actualización del sistema e instalación de paquetes — El instalador ejecuta
apt-get update && apt-get upgrade -y, luego instala AmneziaWG, DKMS, encabezados de Linux, UFW, Fail2Ban, herramientas de generación de códigos QR y otras dependencias.
📝 Nota: El instalador también elimina varios servicios en segundo plano que consumen recursos en instancias VPS mínimas: snapd, modemmanager, networkd-dispatcher, unattended-upgrades, packagekit, lxd-agent-loader y udisks2. Esto es intencional y seguro.
Cuando el Paso 1 se completa, el instalador solicita un reinicio:
Reboot required. Reboot now? [y/n]:Escribe y y pulsa Enter. Después de que el servidor vuelva a estar en línea, entra de nuevo por SSH y vuelve a ejecutar el mismo comando:
sudo bash ./install_amneziawg_en.shEl script lee su estado guardado y continúa al Paso 2 sin volver a hacer preguntas.
Paso 2: Compilación del módulo del kernel DKMS — El instalador compila el módulo del kernel AmneziaWG contra tu kernel actual y lo registra con DKMS para recompilación automática en futuras actualizaciones del kernel:
Step 2: Building AmneziaWG kernel module via DKMS...
Creating symlink /var/lib/dkms/amneziawg/2.0/source -> /usr/src/amneziawg-2.0
DKMS: add completed.
Kernel preparation completed.
Building module:
make -C /lib/modules/6.8.0-xx-generic/build M=/var/lib/dkms/amneziawg/2.0/build modules
DKMS: build completed.
DKMS: install completed.Se solicita un segundo reinicio. Escribe y y pulsa Enter.
📝 Nota: Dos reinicios durante la instalación son normales y esperados. El primero carga los nuevos encabezados del kernel, el segundo activa el módulo del kernel recién compilado. El script guarda el estado entre reinicios: no se pierde nada.
Después del segundo reinicio, vuelve a entrar por SSH y ejecuta el instalador una vez más:
sudo bash ./install_amneziawg_en.shPaso 3: Verificación del módulo después del reinicio — El script verifica que el módulo del kernel esté cargado (lsmod | grep amneziawg). Si la compilación DKMS falló por cualquier motivo, recurre a la implementación Go en espacio de usuario con una advertencia sobre la mayor sobrecarga.
Paso 4: Configuración del firewall — UFW se habilita con una política predeterminada de denegar entradas. El instalador añade una regla de limitación de SSH en el puerto 22, abre tu puerto VPN para tráfico UDP y configura reglas de enrutamiento para la interfaz awg0.
Paso 5: Descarga de scripts de gestión — Los scripts de gestión del cliente (manage_amneziawg_en.sh y awg_common_en.sh) se descargan en /root/awg/ con permisos solo para el propietario (700). Estos también están fijados a la versión v5.8.1.
Paso 6: Configuración interactiva — El instalador ahora hace cuatro preguntas:
- Puerto UDP (predeterminado: 39743, rango 1024–65535). El valor predeterminado es un puerto alto aleatorio: déjalo así a menos que sepas que tu ISP bloquea puertos UDP altos.
- Subred del túnel (predeterminado: 10.9.9.1/24). Esta es tu red VPN interna. El servidor obtiene .1, los clientes obtienen de .2 a .254, admitiendo hasta 253 clientes.
- Desactivar IPv6 (predeterminado: Y). Recomendado: desactivar IPv6 evita que el tráfico se filtre fuera del túnel en rutas IPv6.
- Modo de enrutamiento: Elige 1 para todo el tráfico, 2 para Amnezia List + DNS (recomendado), o 3 para redes personalizadas. El modo 2 enruta solo los rangos de IP públicas bloqueadas y DNS a través de la VPN, manteniendo el acceso a tu red local rápido y directo.
💡 Consejo: El MTU se establece en 1280 por defecto. Este es el MTU mínimo de IPv6 y es crítico para redes móviles y celulares. iOS es estricto con Path MTU Discovery, y las redes celulares a menudo tienen un MTU efectivo por debajo del valor predeterminado de WireGuard de 1420. Déjalo en 1280.
Paso 7: Inicio del servicio — El instalador genera la configuración del servidor en /etc/amnezia/amneziawg/awg0.conf, crea dos configuraciones de cliente predeterminadas (my_phone y my_laptop) en /root/awg/, genera códigos QR e inicia el servicio systemd awg-quick@awg0.
Paso 8: Finalización — Verás el mensaje de éxito:
============================================
AmneziaWG 2.0 installation and configuration completed SUCCESSFULLY!
============================================El instalador genera automáticamente todos los parámetros de ofuscación de AmneziaWG 2.0. No necesitas tocarlos. Cada servidor obtiene un conjunto único de valores: no existe una huella universal que los sistemas DPI puedan detectar.
6.4 — Gestión de clientes después de la instalación
El script de gestión en /root/awg/manage_amneziawg.sh maneja todas las operaciones del ciclo de vida del cliente. Estos son los comandos esenciales:
Añadir un nuevo cliente:
sudo bash /root/awg/manage_amneziawg.sh add my_desktopEsto genera un archivo .conf, un código QR y un archivo .vpnuri para el nuevo cliente. La configuración del servidor se recarga en caliente: no es necesario reiniciar el servicio.
Añadir un cliente temporal con expiración automática:
sudo bash /root/awg/manage_amneziawg.sh add guest --expires=7dUn trabajo cron comprueba cada cinco minutos y elimina automáticamente el cliente cuando expira. La configuración, las claves y la entrada del servidor se limpian por completo.
Listar todos los clientes:
sudo bash /root/awg/manage_amneziawg.sh listClients: my_phone (10.9.9.2/32) my_laptop (10.9.9.3/32) my_desktop (10.9.9.4/32) guest (10.9.9.5/32) [expires in 6d 23h]
Añade la bandera -v para obtener detalles adicionales, incluidas las claves públicas y las fechas de creación.
Eliminar un cliente:
sudo bash /root/awg/manage_amneziawg.sh remove guestComprobar el estado completo del servidor:
sudo bash /root/awg/manage_amneziawg.sh checkEsto muestra el estado del servicio, el puerto abierto, todos los parámetros de AWG 2.0, el estado del módulo del kernel, el estado de UFW y el estado de Fail2Ban en una sola vista.
Ver estadísticas de tráfico por cliente:
sudo bash /root/awg/manage_amneziawg.sh statsClient Received Sent Latest handshake ─────────────────────────────────────────────────────────────────── my_phone 1.24 GiB 356.7 MiB 2 minutes ago my_laptop 892.3 MiB 128.4 MiB 15 seconds ago my_desktop 0 B 0 B (none)
Crear una copia de seguridad:
sudo bash /root/awg/manage_amneziawg.sh backupEsto crea un archivo comprimido en /root/awg/backups/ que contiene la configuración de tu servidor, las configuraciones de los clientes, las claves y los datos de expiración.
📝 Nota: Los comandos add y remove usan awg syncconf para recarga en caliente. La configuración del servidor se actualiza al instante sin reiniciar el servicio. Usa restart solo cuando cambies parámetros del lado del servidor como el puerto o el MTU.
6.5 — Verificar que el servidor está funcionando
Ejecuta estas comprobaciones para confirmar que todo está operativo:
Comprobar el servicio systemd:
sudo systemctl status awg-quick@awg0● awg-quick@awg0.service - AmneziaWG Quick via awg-quick(8) for awg0
Loaded: loaded (/lib/systemd/system/awg-quick@.service; enabled)
Active: active (exited) since Thu 2026-04-09 14:32:01 UTCVerificar el estado y los parámetros de AmneziaWG:
sudo awg show awg0Verificar el firewall:
sudo ufw status verboseStatus: active Default: deny (incoming), allow (outgoing) 22/tcp LIMIT IN Anywhere 39743/udp ALLOW IN Anywhere
Verificar Fail2Ban:
sudo fail2ban-client status sshdStatus for the jail: sshd |- Filter | |- Currently failed: 0 | `- Total failed: 0 `- Actions |- Currently banned: 0 `- Banned IP list:
Verificar el módulo del kernel DKMS:
dkms statusamneziawg/2.0, 6.8.0-xx-generic, x86_64: installed
Si las cinco comprobaciones pasan, tu servidor AmneziaWG 2.0 está funcionando y listo para aceptar conexiones.
Tu servidor está funcionando y verificado. Si prefieres un enfoque guiado por GUI en lugar de la terminal, aquí tienes el método alternativo usando la app AmneziaVPN.
Método 2 — Desplegar con la app AmneziaVPN (alternativa)
La aplicación de escritorio AmneziaVPN puede instalar automáticamente AmneziaWG en tu servidor vía SSH. Usa el mismo script instalador subyacente que el método CLI, pero envuelve todo en una interfaz guiada. Esto es ideal si quieres una experiencia de instalación sin intervención.
- Descarga AmneziaVPN desde amnezia.org/en/downloads. Está disponible para Windows, macOS, Linux, Android e iOS.
- Abre la app y haz clic en el ➕ (icono de más) o Get Started.
- Selecciona «Self-hosted VPN» entre las opciones presentadas.
- Introduce las credenciales de tu servidor:
- Dirección IP del servidor (y puerto si SSH no está en 22, por ejemplo, 203.0.113.10:2221)
- Nombre de usuario SSH (por ejemplo, root)
- Contraseña o clave privada SSH
- Elige el tipo de instalación:
- Automática — instala solo AmneziaWG (recomendado)
- Manual — elige un protocolo específico de la lista
- Haz clic en «Install» — la app se conecta a tu servidor vía SSH y ejecuta la instalación automáticamente. Verás un indicador de progreso.
- Después de la instalación, la app crea un perfil de conexión VPN listo para usar.
Notas posteriores a la instalación:
- La app instala AmneziaWG con un puerto aleatorio por defecto. Algunos ISP bloquean UDP en puertos altos. La app recomienda cambiar a un puerto por debajo de 9999 (como 585 o 1234). Para cambiarlo: haz clic en el icono de engranaje junto a la conexión → pestaña Management → cambia el número de puerto.
- Si tu servidor ya tiene software Amnezia instalado, haz clic en «Skip setup» durante la creación de la conexión y luego usa «Check the server for previously installed Amnezia services» en la pestaña Management.
Así es como se comparan los dos métodos:
| Aspecto | Instalador CLI | App AmneziaVPN |
|---|---|---|
| Control | Total — ves cada paso, puedes personalizar | Limitado — la app lo maneja todo |
| Visibilidad | Transparente — todos los comandos visibles | Opaco — se ejecuta en segundo plano |
| Flexibilidad | Enrutamiento personalizado, endpoint, flags | Usa solo los valores predeterminados |
| Facilidad de uso | Requiere familiaridad con SSH | Cero trabajo en terminal |
| Gestión | Suite completamanage_amneziawg.sh | Solo gestión basada en la app |
| Mejor para | VPS no administrado, solución de problemas | Configuración rápida, experiencia guiada |
Ya sea que hayas usado el CLI o la app, tu servidor está listo. Ahora conectemos tu primer dispositivo.
Conectar tu primer cliente
Después de la instalación, tienes tres formas de importar la configuración del cliente en la app Amnezia VPN. Elige la que coincida con tu dispositivo.
Método A: Código QR (móvil)
El instalador generó un código QR en /root/awg/my_phone.png. Descárgalo a tu ordenador:
scp root@<SERVER_IP>:/root/awg/my_phone.png .Abre el archivo PNG en tu pantalla. En tu teléfono, abre la app Amnezia VPN, toca «Add VPN» → «Scan QR code» y apunta la cámara al código QR en tu pantalla. La conexión se importa automáticamente.
Método B: URI vpn:// (cliente Amnezia)
Muestra la URI comprimida en tu servidor:
cat /root/awg/my_phone.vpnuriCopia toda la cadena vpn://… y envíatela a ti mismo — por Telegram, correo electrónico o una app de notas. En tu teléfono, abre la app Amnezia VPN, toca «Add VPN» → «Paste from clipboard». La configuración se importa en un solo paso.
La URI es una versión comprimida con zlib y codificada en Base64 del archivo de configuración completo. Es compacta y está diseñada para compartirla rápidamente.
Método C: archivo .conf (escritorio/Windows)
Descarga el archivo de configuración:
scp root@<SERVER_IP>:/root/awg/my_phone.conf .Abre el cliente AmneziaWG for Windows o la app de escritorio AmneziaVPN, haz clic en «Import tunnel(s) from file» y selecciona el archivo .conf.
Verificar la conexión
Una vez conectado, verifica que el túnel esté enrutando tu tráfico a través del servidor:
curl ifconfig.me
La salida debería mostrar la dirección IP pública de tu servidor, no la tuya local: 203.0.113.1
Para más detalle, incluida la ubicación geográfica del servidor:
curl -s https://ipinfo.io/json{
"ip": "203.0.113.1",
"city": "Amsterdam",
"region": "North Holland",
"country": "NL",
...
}⚠️ Advertencia: El cliente estándar de WireGuard no funciona con configuraciones de AmneziaWG 2.0. Debes usar la app Amnezia VPN (versión 4.8.12.7 o posterior) o un cliente nativo de AmneziaWG (versión 2.0.0 o posterior en Windows/Android/iOS).
⚠️ Advertencia: Si ves «Invalid key: s3» en Windows, tu cliente AmneziaWG para Windows está desactualizado (versión inferior a 2.0.0). Actualiza a la versión 2.0.0+ o cambia a la app Amnezia VPN.
💡 Consejo: Si estás conectado pero no tienes Internet, comprueba que la configuración de tu cliente tenga MTU = 1280 en la sección [Interface]. Esta es la causa más común de «handshake exitoso pero sin tráfico» en redes móviles.
Tu túnel VPN está funcionando. Aquí es donde ir a partir de ahora para sacar el máximo provecho de tu configuración.
Qué sigue — ampliar tu configuración
Ahora tienes un túnel VPN resistente a DPI funcionando en tu propio servidor, bajo tu control, con velocidad de nivel WireGuard. La muerte silenciosa de paquetes que acabó con tu conexión WireGuard ya no es un problema: tu tráfico no se parece a nada que un sistema DPI pueda identificar de forma fiable.
Estas son las cosas más útiles que puedes hacer a continuación:
- Añadir clientes para tu familia o equipo — usa el script de gestión para generar configuraciones para cada dispositivo que necesite acceso.
- Configurar split tunneling si no necesitas enrutamiento de túnel completo — mantiene el tráfico local rápido y reduce el ancho de banda en tu VPS.
- Hacer copias de seguridad de tus configuraciones — ejecuta el comando de copia de seguridad y guarda el archivo en un lugar seguro. Si alguna vez necesitas reconstruir tu servidor, esto es lo que te evita empezar de cero.
Configura split tunneling si no necesitas que todo el tráfico pase por la VPN. Esto es especialmente útil en países con censura parcial: enruta solo los sitios bloqueados a través del túnel y mantén el tráfico local directo:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone AllowedIPs "192.168.1.0/24,10.0.0.0/8"Cambia el DNS de tu cliente si prefieres otros resolvers:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone DNS "8.8.8.8,1.0.0.1"Ajusta PersistentKeepalive si estás en una configuración NAT agresiva. El valor predeterminado de 33 segundos mantiene la sesión UDP a través de NAT; bajarlo a 25 puede ayudar en redes que eliminan rápidamente sesiones UDP inactivas:
sudo bash /root/awg/manage_amneziawg.sh modify my_phone PersistentKeepalive 25Instálalo en tu router para cobertura de toda la red. AmneziaWG es compatible con routers Keenetic a través de AWG Manager y con routers ASUS que ejecutan Asuswrt-Merlin a través de AmneziaWG for Merlin.
Haz una copia de seguridad de tu configuración ahora, antes de que cambie nada:
sudo bash /root/awg/manage_amneziawg.sh backupSi alguna vez necesitas migrar a un nuevo servidor, realiza una instalación nueva y luego:
sudo bash /root/awg/manage_amneziawg.sh restore
sudo bash /root/awg/manage_amneziawg.sh regenEl comando restore recupera tus configuraciones y claves, y regen actualiza las configuraciones de los clientes con la nueva IP del servidor.
Para documentación más profunda, la documentación oficial de Amnezia está en docs.amnezia.org y la comunidad está activa en Telegram.
Si estás buscando un VPS fiable para alojar tu servidor AmneziaWG — o necesitas escalar con endpoints adicionales para miembros del equipo — AvaHost ofrece virtualización KVM con acceso root completo, almacenamiento NVMe y soporte para Ubuntu 24.04 que esta configuración requiere. Su infraestructura está diseñada específicamente para el tipo de despliegues autohospedados que cubre esta guía.


