Cada vez máis xente usa a súa propia VPN en lugar de depender de servizos de pago predefinidos: é máis barata, mellor para a privacidade e dálle control total sobre o servidor. Unha das opcións máis eficaces para rexións con bloqueos de rede agresivos é AmneziaWG, un protocolo desenvolvido polo proxecto Amnezia sobre WireGuard.
O WireGuard clásico é rápido e fiable, pero ten unha estrutura de paquetes fixa e un handshake predicible, que os sistemas DPI (Inspección Profunda de Paquetes) poden detectar e bloquear de forma fiable. AmneziaWG resolve isto: engade paquetes lixo á conexión WireGuard ordinaria, aleatoriza as cabeceiras e cambia o tamaño dos campos do handshake, de xeito que a sinatura característica de WireGuard desaparece e o tráfico xa non destaca do tráfico UDP ordinario.
Xa estás a usar un túnel clásico e te preguntas se paga a pena cambialo? Compara isto cunha configuración simple de OpenVPN/PPTP en Configuración do servidor VPN en Linux: PPTP ou OpenVPN?, ou cunha configuración estándar de WireGuard (sen ofuscación) en Como configurar Wireguard VPN no teu servidor.
Esta guía configura un servidor AmneziaWG manualmente, sen Docker nin un panel web, o que supón o menor espazo posible no propio VPS, configurado completamente desde a liña de comandos. É a opción máis lixeira e funciona ben nun VPS económico, xa que non precisa nin GUI, nin base de datos, nin proxy inverso. O servidor de exemplo que aparece a continuación usa un enderezo IP provisional; substitúeo polo enderezo do teu propio VPS onde queira que apareza.
O que necesitarás: un VPS con Ubuntu 22.04/24.04 ou Debian 11/12, acceso root e o enderezo IP do teu VPS. Non se require un nome de dominio (AmneziaWG non usa certificados, polo que non hai nada que renovar nin nada que DPI poida marcar como un protocolo de enlace TLS).
Aínda non tes un servidor? Consulta Como pedir un servidor
Conectando ao servidor
Windows (PuTTY)
Abre PuTTY, introduce o teu enderezo IP do VPS no campo Nome do host, configura o porto en 22 e inicia sesión como root co contrasinal que che enviou o teu provedor de VPS por correo electrónico.
Enderezo IP do servidor: o teu enderezo IP
iniciar sesión como: root
Contrasinal: o teu contrasinal
1. Abre PuTTY e introduce o teu enderezo IP do VPS no campo Nome do host.
2. Configura o porto en 22.
3. Introduza iniciar sesión como root.
4. Usando o contrasinal que che enviou o teu provedor de VPS por correo electrónico.
O resultado debería ser o seguinte:
Para obter unha guía detallada sobre a conexión mediante PuTTY/SSH, consulte Como conectarse a un servidor Linux mediante SSH.
Linux / macOS (terminal)
ssh root@YOUR_SERVER_IP
Todos os comandos seguintes execútanse no servidor, nesta mesma sesión SSH, que abrangue as seccións 2 a 5, ademais das comprobacións do servidor na sección 9. As seccións 6 a 8 (instalación e configuración do cliente VPN) realízanse no teu propio dispositivo Windows/macOS/Linux, xa que ese é o dispositivo no que a VPN necesita executarse; cada unha desas seccións indica explicitamente que liñas, se é o caso, aínda tocan o servidor.
Preparación do servidor
Actualiza o sistema
Antes de instalar nada, actualiza a lista de paquetes e actualiza os paquetes instalados:
apt update -y && apt upgrade -y
Se isto actualiza o kernel, reinicie antes de compilar o módulo do kernel AmneziaWG na Sección 3; se non, DKMS pode compilarse con cabeceiras do kernel incorrectas e o módulo non se cargará. (Para un repaso sobre apt e como funcionan os xestores de paquetes de Linux, consulte Xestores de paquetes de Linux ). Consulte con:
cat /var/run/reboot-required
Activar o reenvío de IP
Esta configuración permite que o servidor reenvíe os paquetes dos clientes a Internet; sen ela, o túnel activarase pero non pasará tráfico a través del.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
O primeiro comando crea un ficheiro de configuración dedicado; o segundo aplícao sen reiniciar o servidor.
Configurar o cortafuegos (UFW)
Para obter máis información sobre as regras de UFW, consulte Configuración do cortafuegos en Linux.
Abre os dous portos que precisarás: 22/tcp para SSH (se omites esta regra, corres o risco de perder o acceso ao servidor) e 42666/udp, o porto polo que escoitará AmneziaWG.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Ambas as regras deberían mostrarse como PERMITIR na saída de estado de ufw.
Instalación de AmneziaWG
Debian non admite directamente os PPA ao estilo de Ubuntu, polo que o repositorio debe engadirse manualmente en lugar de con add-apt-repository. Isto funciona do mesmo xeito en Ubuntu.
Engadir o repositorio manualmente
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Engadir a clave de sinatura de GPG
Usa un ficheiro de chaves deamored en lugar do comando obsoleto apt-key e obtén a chave de sinatura real do PPA (pegada dixital 75C9DD72C799870E310542E24166F2C257290828):
apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Actualizar e instalar
apt update
apt install -y amneziawg
Verificar o módulo cargado
modprobe amneziawg
lsmod | grep amnezia
Xeración da configuración do servidor e do cliente
Instalar utilidades auxiliares
Instala a dependencia qrcode, crea un directorio de traballo dedicado e descarga nel o script community config-generator:
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Se python3-qrcode non está dispoñible nos repositorios da túa distribución, volve a pip3 install qrcode --break-system-packages (o indicador é necesario en Debian 12+/Ubuntu 24.04, que bloquean as instalacións de pip non xestionadas por defecto). Non executes as dúas instalacións; escolle unha.
Xerar a configuración do servidor
Crea /etc/amnezia/amneziawg/awg0.conf. Podes deixar a subrede interna e o porto UDP do túnel nos seus valores predeterminados ou configurar os teus propios:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
O sinalizador -i define o enderezo de rede interno e a máscara do túnel; -p define o porto UDP do servidor (o mesmo que se abriu no paso 2.3).
Crear o modelo de configuración do cliente
python3 awgcfg.py --create
Isto garda un modelo no mesmo cartafol desde o que se crean as configuracións individuais dos clientes; xa inclúe a clave pública do servidor, o seu enderezo IP e os parámetros de ofuscación (Jc, Jmin, Jmax, S1, S2, H1–H4) que distinguen AmneziaWG de WireGuard simple.
Engadir clientes
Crea unha entrada por dispositivo; o nome pode ser calquera, por exemplo, o nome do dispositivo:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Xerar ficheiros de clientes e códigos QR
python3 awgcfg.py -c -q
O cartafol ~/awg agora conterá ficheiros como laptop.conf e phone.conf, ademais de códigos QR PNG correspondentes que podes escanear directamente nunha aplicación móbil.
O cartafol ~/awg agora conterá ficheiros como laptop.conf e phone.conf, ademais de códigos QR PNG correspondentes que podes escanear directamente nunha aplicación móbil.
Inicio do servizo e activación do inicio automático
Abre a interface awg0 e permítea para que se inicie automaticamente ao reiniciar:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
O estado debería mostrar activo (pechado) coa unidade activada no arranque. Se a consola parece "colgarse" mostrando rexistros, prema Q para saír.
Consulta a lista de pares activos e o tráfico por par con:
awg show
Conectando desde Windows
Todo o contido desta sección ocorre no teu PC con Windows, non a través de SSH. O cliente VPN debe estar instalado no dispositivo que realmente usará o túnel. O único paso que afecta ao servidor é a descarga de scp na versión 6.2, e mesmo ese comando escríbese no teu PC, extraendo un ficheiro que o servidor xa xerou na sección 4.
Instalar o cliente
AmneziaWG ten unha aplicación dedicada para Windows: a súa interface é similar á do cliente estándar de WireGuard, pero entende os parámetros de ofuscación. Descarga o instalador desde o repositorio oficial do proxecto:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
A ligazón de arriba é a páxina de versións mantidas do cliente de Windows: descarga a última versión do recurso .msi/.exe desde alí. Esta é unha páxina para abrir no navegador, non un comando para pegar nun terminal.
Executa o instalador e segue o asistente de configuración paso a paso; non é necesario cambiar os valores predeterminados.
Importar a configuración
Copia o ficheiro de configuración do cliente do servidor ao teu ordenador. O xeito máis sinxelo é executar scp en PowerShell no teu ordenador, non no servidor:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Na aplicación AmneziaWG, fai clic en "Importar túneles desde ficheiro", selecciona laptop.conf e activa o botón que hai xunto ao novo túnel.
Conectando desde macOS
Existen dúas opcións compatibles:
- AmneziaWG (Mac App Store): un cliente lixeiro, funciona en macOS 12 e posterior. Busca "AmneziaWG" na App Store, instálao e, a seguir, usa "Importar túneles desde ficheiro" e selecciona o teu ficheiro .conf (o mesmo fluxo de traballo que o cliente de Windows).
- AmneziaVPN (aplicación completa, macOS 14+): descarga o ficheiro .pkg desde github.com/amnezia-vpn/amnezia-client/releases/latest se prefires usar a aplicación completa de Amnezia en lugar do cliente lixeiro só para AmneziaWG.
Copia primeiro a configuración do cliente se é necesario, igual que no paso 6.2:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Conectando desde Linux
Nun ordenador de sobremesa ou portátil con Linux tes dúas opcións:
- GUI: instala o cliente de escritorio completo de AmneziaVPN desde github.com/amnezia-vpn/amnezia-client/releases e, a seguir, importa o ficheiro .conf do mesmo xeito que en Windows/macOS.
- CLI, usando as mesmas ferramentas amneziawg que se usan no servidor (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Executa este código para desconectar.
awg-quick down awg0
Para que o túnel se active automaticamente ao iniciar sesión, habilíteo como servizo:
systemctl enable --now awg-quick@awg0
Verificando a conexión
Co túnel activo desde a Sección 6, 7 ou 8, volve ao teu propio dispositivo (non á sesión SSH) e abre calquera comprobador de "cal é o meu IP?" nun navegador; o enderezo mostrado debería coincidir co enderezo IP do teu VPS. Para verificar desde dentro da sesión SSH, executa awg show no servidor e confirma que o equipo do cliente mostra un handshake recente e tráfico distinto de cero.
referencia:
|
Campo |
Valor |
|
dirección |
O_TEU_TÚNEL_IP (o enderezo do cliente dentro do túnel, por exemplo, 10.10.8.2/32, asignado automaticamente cando se engadiu o cliente no paso 4.4) |
|
Endpoint |
IP_DO_SERVIDOR:42666 (O enderezo IP externo do servidor e o porto UDP ao que se conecta o cliente.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmín / Jmáx |
número e tamaño dos paquetes "lixo" enviados antes do protocolo de conexión: poden variar entre o servidor e o cliente sen interromper a conexión |
|
S1/S2 |
tamaño dos campos de recheo de handshake: debe coincidir byte por byte entre o servidor e cada cliente |
|
H1 – H4 |
as cabeceiras de tipo paquete que enmascara o protocolo como tráfico ordinario, tamén deben coincidir exactamente e deben ser únicas entre si |
Só S1/S2 e H1–H4 precisan ser idénticos en ambos extremos do túnel; Jc, Jmin e Jmax tratan puramente de como cada lado enche o seu propio tráfico lixo de saída, polo que os valores do cliente e do servidor poden diferir lexitimamente, como ocorre no exemplo anterior.
Conclusión
Seguir esta guía deixa o teu VPS executando o seu propio servidor AmneziaWG: un protocolo compatible con WireGuard con ofuscación do tráfico que é notablemente máis difícil de distinguir para os sistemas DPI do tráfico UDP ordinario que con WireGuard simple. O servizo execútase como a unidade systemd awg-quick@awg0 e sobrevive a un reinicio do servidor sen ningunha acción da túa parte.
Os ficheiros .conf e os códigos QR resultantes en ~/awg non só funcionan co cliente de Windows, senón que tamén se poden importar ás aplicacións AmneziaWG ou Amnezia para Android, iOS, macOS e Linux, así como para os enrutadores Keenetic e OpenWrt.
Engade novos clientes en calquera momento repetindo os pasos 4.4–4.5 (python3 awgcfg.py -a "name", despois awgcfg.py -c -q) e reiniciando a interface con systemctl restart [email protected].
Algúns hábitos que paga a pena manter unha vez que o servidor estea funcionando:
- Mantén o sistema actualizado. Executa de novo apt update -y e apt upgrade -y periodicamente e reinicia despois das actualizacións do kernel para que DKMS reconstrua o módulo amneziawg co novo kernel.
- Fai unha copia de seguridade de ~/awg. Contén a clave privada de cada cliente e o par de claves propio do servidor en awg0.conf; perdela significa rexenerar as configuracións para cada dispositivo.
- Revogue os dispositivos perdidos canto antes. Elimine o bloque [Peer] correspondente de /etc/amnezia/amneziawg/awg0.conf e execute systemctl restart [protexido por correo electrónico].
Se a conexión non se establece, comprobe na seguinte orde:
- o estado do servizo (estado do sistema) [protexido por correo electrónico])
- as regras do cortafuegos (estado de ufw: o porto 42666/udp debe estar aberto)
- o estado de DKMS/módulo se a interface nin sequera se inicia (estado de dkms, lsmod | grep amnezia)
- a lista de pares activos no servidor (awg show)
- que a configuración do cliente apunte ao enderezo IP correcto do servidor externo
Queres comparar AmneziaWG con outras opcións antes de facer un commit? Consulta Configuración do servidor VPN en Linux: PPTP ou OpenVPN? e Como configurar unha VPN Wireguard no teu servidor . Se só necesitas un proxy sinxelo en lugar dun túnel VPN completo, a configuración de 3proxy en CentOS/ArchLinux é unha alternativa máis lixeira. Para o reforzo xeral do servidor unha vez que a VPN estea activa, consulta Usuarios de Linux: Xestión e permisos.