Cada cop més gent utilitza la seva pròpia VPN en comptes de dependre de serveis de pagament ja fets: és més barat, millor per a la privadesa i et dóna un control total del servidor. Una de les opcions més efectives per a regions amb bloqueig de xarxa agressiu és AmneziaWG, un protocol desenvolupat pel projecte Amnezia sobre WireGuard.
El WireGuard clàssic és ràpid i fiable, però té una estructura de paquets fixa i una handshake predictible, que els sistemes DPI (Deep Packet Inspection) poden detectar i bloquejar de manera fiable. AmneziaWG ho soluciona: afegeix paquets brossa a la connexió WireGuard ordinària, aleatoritza les capçaleres i canvia la mida dels camps d'handshake, de manera que la signatura característica de WireGuard desapareix i el trànsit ja no destaca del trànsit UDP ordinari.
Ja executes un túnel clàssic i et preguntes si val la pena canviar? Compara això amb una configuració OpenVPN/PPTP senzilla a Configuració del servidor VPN a Linux: PPTP o OpenVPN?, o amb WireGuard estàndard (sense ofuscació) a Com configurar Wireguard VPN al servidor.
Aquesta guia configura un servidor AmneziaWG manualment, sense Docker ni un panell web, la petjada més petita possible al propi VPS, configurat completament des de la línia d'ordres. És l'opció més lleugera i funciona bé en un VPS econòmic, ja que no necessita ni GUI, ni base de dades, ni proxy invers. El servidor d'exemple següent utilitza una adreça IP de marcador de posició; substituïu-la per l'adreça del vostre propi VPS allà on aparegui.
Què necessitareu: un VPS amb Ubuntu 22.04/24.04 o Debian 11/12, accés root i l'adreça IP del vostre VPS. No cal un nom de domini: AmneziaWG no utilitza certificats, de manera que no hi ha res a renovar ni res que DPI pugui marcar com a protocol de connexió TLS.
Encara no tens un servidor? Consulta Com demanar un servidor
Connexió al servidor
Windows (PuTTY)
Obriu PuTTY, introduïu l'adreça IP del vostre VPS al camp Nom de l'amfitrió, configureu el port a 22 i inicieu la sessió com a root amb la contrasenya que us ha enviat el vostre proveïdor de VPS per correu electrònic.
Adreça IP del servidor: la vostra adreça IP
iniciar sessió com a: root
Contrasenya: la teva contrasenya
1. Obriu PuTTY i introduïu l'adreça IP del vostre VPS al camp Nom de l'amfitrió.
2. Configureu el port a 22.
3. Introduïu inicieu sessió com a root.
4. Utilitzant la contrasenya que el teu proveïdor de VPS et va enviar per correu electrònic.
El resultat hauria de ser el següent:
Per obtenir una guia detallada sobre com connectar-se mitjançant PuTTY/SSH, vegeu Com connectar-se a un servidor Linux mitjançant SSH.
Linux / macOS (terminal)
ssh root@YOUR_SERVER_IP
Totes les ordres següents s'executen al servidor, en aquesta mateixa sessió SSH, que cobreix les seccions 2 a 5, a més de les comprovacions del servidor de la secció 9. Les seccions 6 a 8 (instal·lació i configuració del client VPN) es duen a terme al vostre propi dispositiu Windows/macOS/Linux, ja que aquest és el dispositiu on la VPN ha d'executar-se; cadascuna d'aquestes seccions indica explícitament quines línies, si n'hi ha, encara toquen el servidor.
Preparant el servidor
Actualitza el sistema
Abans d'instal·lar res, actualitzeu la llista de paquets i actualitzeu els paquets instal·lats:
apt update -y && apt upgrade -y
Si això actualitza el nucli, reinicieu abans de compilar el mòdul del nucli AmneziaWG a la Secció 3; en cas contrari, DKMS pot compilar-se amb les capçaleres del nucli incorrectes i el mòdul no es podrà carregar. (Per a un repàs sobre apt i com funcionen els gestors de paquets de Linux, consulteu Gestors de paquets de Linux .) Consulteu amb:
cat /var/run/reboot-required
Activa el reenviament d'IP
Aquesta configuració permet que el servidor reenviï els paquets dels clients a Internet; sense ella, el túnel s'activarà però no hi passarà trànsit.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
La primera ordre crea un fitxer de configuració dedicat; la segona l'aplica sense reiniciar el servidor.
Configura el tallafocs (UFW)
Per obtenir més informació sobre les regles d'UFW, vegeu Configuració del tallafoc a Linux.
Obriu els dos ports que necessitareu: 22/tcp per a SSH (si ometeu aquesta regla, us arrisqueu a perdre l'accés al servidor) i 42666/udp, el port que escoltarà AmneziaWG.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Ambdues regles haurien de mostrar-se com a ALLOW a la sortida d'estat d'ufw.
Instal·lació d'AmneziaWG
Debian no admet directament els PPA d'estil Ubuntu, per la qual cosa el repositori s'ha d'afegir manualment en comptes de fer-ho amb add-apt-repository. Això funciona de la mateixa manera a Ubuntu.
Afegiu el repositori manualment
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Afegiu la clau de signatura de GPG
Feu servir un fitxer de clauer dearmat en lloc de l'ordre obsoleta apt-key i obteniu la clau de signatura real del PPA (empremta digital 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
Actualitzar i instal·lar
apt update
apt install -y amneziawg
Verifica que el mòdul s'ha carregat
modprobe amneziawg
lsmod | grep amnezia
Generació de la configuració del servidor i del client
Instal·leu les utilitats auxiliars
Instal·leu la dependència qrcode, creeu un directori de treball dedicat i descarregueu-hi l'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
Si python3-qrcode no està disponible als repositoris de la teva distribució, torna a pip3 install qrcode --break-system-packages (el senyalador és obligatori a Debian 12+/Ubuntu 24.04, que bloqueja les instal·lacions de pip no gestionades per defecte). No executis les dues instal·lacions; tria'n una.
Generar la configuració del servidor
Crea /etc/amnezia/amneziawg/awg0.conf. Pots deixar la subxarxa interna i el port UDP del túnel amb els valors predeterminats o definir-ne els teus propis:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
El senyalador -i estableix l'adreça de xarxa interna i la màscara del túnel; -p estableix el port UDP del servidor (el mateix que s'ha obert al pas 2.3).
Crea la plantilla de configuració del client
python3 awgcfg.py --create
Això desa una plantilla a la mateixa carpeta des de la qual es creen les configuracions individuals dels clients; ja inclou la clau pública del servidor, la seva adreça IP i els paràmetres d'ofuscació (Jc, Jmin, Jmax, S1, S2, H1–H4) que distingeixen AmneziaWG del WireGuard simple.
Afegeix clients
Crea una entrada per dispositiu; el nom pot ser qualsevol, per exemple, el nom del dispositiu:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Generar fitxers de clients i codis QR
python3 awgcfg.py -c -q
La carpeta ~/awg ara contindrà fitxers com ara laptop.conf i phone.conf, a més de codis QR PNG corresponents que podeu escanejar directament a una aplicació mòbil.
La carpeta ~/awg ara contindrà fitxers com ara laptop.conf i phone.conf, a més de codis QR PNG corresponents que podeu escanejar directament a una aplicació mòbil.
Inici del servei i activació de l'inici automàtic
Obriu la interfície awg0 i activeu-la perquè s'iniciï automàticament en reiniciar:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
L'estat hauria de mostrar actiu (tancat) amb la unitat habilitada a l'arrencada. Si la consola sembla que es "penja" mostrant registres, premeu Q per sortir.
Comproveu la llista de peers actius i el trànsit per peer amb:
awg show
Connexió des de Windows
Tot el que s'explica en aquesta secció passa al vostre PC amb Windows, no a través de SSH; el client VPN ha d'estar instal·lat al dispositiu que realment utilitzarà el túnel. L'únic pas que afecta el servidor és la descàrrega de scp a la versió 6.2, i fins i tot aquesta ordre s'escriu al vostre PC, extreient un fitxer que el servidor ja ha generat a la secció 4.
Instal·leu el client
AmneziaWG té una aplicació dedicada per a Windows: la seva interfície reflecteix el client estàndard de WireGuard, però entén els paràmetres d'ofuscació. Baixeu l'instal·lador des del repositori oficial del projecte:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
L'enllaç de dalt és la pàgina de versions del client de Windows actualitzat: descarregueu-vos l'últim fitxer .msi/.exe des d'allà. Aquesta és una pàgina per obrir al navegador, no una ordre per enganxar a un terminal.
Executeu l'instal·lador i seguiu les instruccions de l'assistent de configuració; no cal canviar els valors per defecte.
Importeu la configuració
Copieu el fitxer de configuració del client del servidor a l'ordinador. La manera més fàcil és executar scp al PowerShell a l'ordinador, no al servidor:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
A l'aplicació AmneziaWG, feu clic a "Importa túnel(s) des del fitxer", seleccioneu laptop.conf i activeu el botó que hi ha al costat del nou túnel.
Connexió des de macOS
Hi ha dues opcions compatibles:
- AmneziaWG (Mac App Store): un client lleuger, funciona amb macOS 12 i posteriors. Cerqueu "AmneziaWG" a l'App Store, instal·leu-lo i, a continuació, utilitzeu "Importa túnel(s) des del fitxer" i seleccioneu el fitxer .conf; el mateix flux de treball que el client de Windows.
- AmneziaVPN (aplicació completa, macOS 14+): descarrega el fitxer .pkg de github.com/amnezia-vpn/amnezia-client/releases/latest si prefereixes utilitzar l'aplicació completa d'Amnezia en lloc del client lleuger només per a AmneziaWG.
Copieu primer la configuració del client si cal, igual que al pas 6.2:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Connexió des de Linux
En un ordinador de sobretaula o portàtil amb Linux teniu dues opcions:
- GUI: instal·leu el client d'escriptori AmneziaVPN complet des de github.com/amnezia-vpn/amnezia-client/releases i, a continuació, importeu el fitxer .conf de la mateixa manera que a Windows/macOS.
- CLI, utilitzant les mateixes eines amneziawg que s'utilitzen al servidor (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Executeu aquest codi per desconnectar.
awg-quick down awg0
Perquè el túnel s'activi automàticament en iniciar la sessió, activeu-lo com a servei:
systemctl enable --now awg-quick@awg0
Verificació de la connexió
Amb el túnel actiu des de la secció 6, 7 o 8, torneu al vostre dispositiu (no a la sessió SSH) i obriu qualsevol verificador de "quina és la meva IP" en un navegador; l'adreça que es mostra hauria de coincidir amb l'adreça IP del vostre VPS. Per verificar-ho des de dins de la sessió SSH, executeu awg show al servidor i confirmeu que el peer del client mostra una handshake recent i un trànsit diferent de zero.
Referència:
|
Camp |
Valor |
|
Adreça |
LA_IP_DE_LA_VOSTRA_TÚNEL (l'adreça del client dins del túnel, p. ex. 10.10.8.2/32 — assignada automàticament quan es va afegir el client al pas 4.4) |
|
Punt final |
IP_EL_VOTRE_SERVIDOR:42666 (L'adreça IP externa del servidor i el port UDP al qual es connecta el client.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmín / Jmàx |
nombre i mida dels paquets "brossa" enviats abans de la confirmació de connexió: poden variar entre el servidor i el client sense interrompre la connexió |
|
S1/S2 |
mida dels camps de farciment de handshake: ha de coincidir byte per byte entre el servidor i cada client |
|
H1 – H4 |
les capçaleres de tipus paquet que emmascaren el protocol com a trànsit ordinari, també han de coincidir exactament i han de ser úniques entre si |
Només S1/S2 i H1–H4 han de ser idèntics a tots dos extrems del túnel; Jc, Jmin i Jmax tracten purament de com cada costat carrega el seu propi trànsit brossa de sortida, de manera que els valors del client i del servidor poden diferir legítimament, com passa a l'exemple anterior.
Conclusió
Seguint aquesta guia, el vostre VPS executa el seu propi servidor AmneziaWG: un protocol compatible amb WireGuard amb ofuscació del trànsit que és notablement més difícil de distingir del trànsit UDP ordinari per als sistemes DPI que amb WireGuard simple. El servei s'executa com a unitat systemd awg-quick@awg0 i sobreviu a un reinici del servidor sense cap acció per part vostra.
Els fitxers .conf i els codis QR resultants a ~/awg no només funcionen amb el client de Windows, sinó que també es poden importar a les aplicacions AmneziaWG o Amnezia per a Android, iOS, macOS i Linux, així com als encaminadors Keenetic i OpenWrt.
Afegiu nous clients en qualsevol moment repetint els passos 4.4–4.5 (python3 awgcfg.py -a "name", després awgcfg.py -c -q) i reiniciant la interfície amb systemctl restart [email protected].
Alguns hàbits que val la pena mantenir un cop el servidor estigui en funcionament:
- Mantingueu el sistema actualitzat. Torneu a executar `apt update -y` i `apt upgrade -y` periòdicament i reinicieu després de les actualitzacions del nucli perquè DKMS reconstrueixi el mòdul amneziawg amb el nou nucli.
- Fes una còpia de seguretat de ~/awg. Conté la clau privada de cada client i el parell de claus del servidor a awg0.conf; perdre-la significa regenerar les configuracions per a cada dispositiu.
- Revoca els dispositius perduts immediatament. Elimina el bloc [Peer] corresponent de /etc/amnezia/amneziawg/awg0.conf i executa systemctl restart. [protegit per correu electrònic].
Si la connexió no s'estableix, comproveu-ho en aquest ordre:
- l'estat del servei (estat del sistema) [protegit per correu electrònic])
- les regles del tallafocs (estat d'ufw: el port 42666/udp ha d'estar obert)
- l'estat del DKMS/mòdul si la interfície ni tan sols s'inicia (estat del dkms, lsmod | grep amnezia)
- la llista de peers actius al servidor (awg show)
- que la configuració del client apunta a l'adreça IP correcta del servidor extern
Voleu comparar AmneziaWG amb altres opcions abans de fer un commit? Vegeu Configuració del servidor VPN a Linux: PPTP o OpenVPN? i Com configurar una VPN Wireguard al vostre servidor . Si només necessiteu un proxy simple en lloc d'un túnel VPN complet, la configuració de 3proxy a CentOS/ArchLinux és una alternativa més lleugera. Per a un enduriment general del servidor un cop la VPN estigui activa, vegeu Usuaris de Linux: administració i permisos.