Vedno več ljudi uporablja svoj VPN, namesto da bi se zanašali na plačljive, že pripravljene storitve: je cenejši, boljši za zasebnost in vam omogoča popoln nadzor nad strežnikom. Ena najučinkovitejših možnosti za regije z agresivnim blokiranjem omrežja je AmneziaWG, protokol, ki ga je razvil projekt Amnezia na osnovi WireGuarda.
Klasični WireGuard je hiter in zanesljiv, vendar ima fiksno strukturo paketov in predvidljivo rokovanje, ki ga lahko sistemi DPI (Deep Packet Inspection) zanesljivo odtisnejo in blokirajo. AmneziaWG to rešuje: običajni povezavi WireGuard doda neželene pakete, naključno razporedi glave in spremeni velikost polj za rokovanje – tako značilni podpis WireGuarda izgine in promet ne izstopa več od običajnega prometa UDP.
Že uporabljate klasični tunel in se sprašujete, ali se splača preklopiti? Primerjajte to z navadno nastavitvijo OpenVPN/PPTP v razdelku Nastavitev strežnika VPN v Linuxu: PPTP ali OpenVPN? ali z navadnim WireGuardom (brez zakrivanja) v razdelku Kako nastaviti Wireguard VPN na vašem strežniku.
Ta priročnik ročno nastavi strežnik AmneziaWG, brez Dockerja ali spletne plošče – najmanjša možna zasedenost samega VPS-ja, konfigurirana v celoti iz ukazne vrstice. Je najlažja možnost in dobro deluje na cenovno ugodnem VPS-ju, saj ne potrebuje grafičnega uporabniškega vmesnika, baze podatkov in obratnega proxyja. Spodnji primer strežnika uporablja nadomestni IP-naslov – zamenjajte ga z naslovom svojega VPS-ja, kjer koli se pojavi.
Kaj boste potrebovali: VPS z operacijskim sistemom Ubuntu 22.04/24.04 ali Debian 11/12, root dostop in IP naslov vašega VPS-ja. Ime domene ni potrebno – AmneziaWG ne uporablja potrdil, zato ni treba ničesar obnavljati in DPI ni ničesar, kar bi lahko označil kot TLS rokovanje.
Še nimate strežnika? Glejte Kako naročiti strežnik
Povezovanje s strežnikom
Windows (PuTTY)
Odprite PuTTY, v polje Ime gostitelja vnesite IP naslov svojega VPS-ja, nastavite vrata na 22 in se prijavite kot root z geslom, ki vam ga je ponudnik VPS-ja poslal po e-pošti.
IP naslov strežnika: vaš IP naslov
prijava kot: root
Geslo: vaše geslo
1. Odprite PuTTY in v polje Ime gostitelja vnesite IP naslov svojega VPS-ja.
2. Nastavite vrata na 22.
3. Vnesite prijavo kot root.
4. Z geslom, ki vam ga je ponudnik VPS poslal po e-pošti.
Rezultat bi moral biti naslednji:
Za podroben vodnik po povezovanju prek PuTTY/SSH glejte Kako se povezati s strežnikom Linux prek SSH
Linux / macOS (terminal)
ssh root@YOUR_SERVER_IP
Vsi spodnji ukazi se izvajajo na strežniku, v isti seji SSH – ki zajema razdelke od 2 do 5, ter preverjanja na strani strežnika v razdelku 9. Razdelki 6–8 (nameščanje in konfiguriranje odjemalca VPN) se namesto tega izvajajo na vaši napravi Windows/macOS/Linux, saj je to naprava, na kateri mora VPN delovati; vsak od teh razdelkov izrecno navaja, katere vrstice, če sploh, se še vedno dotikajo strežnika.
Priprava strežnika
Posodobite sistem
Preden karkoli namestite, osvežite seznam paketov in nadgradite nameščene pakete:
apt update -y && apt upgrade -y
Če s tem nadgradite jedro, pred gradnjo modula jedra AmneziaWG v 3. razdelku znova zaženite računalnik, sicer lahko DKMS gradi z napačnimi glavami jedra in modul se ne bo naložil. (Za osvežitev znanja o apt in delovanju upravljalnikov paketov Linux glejte Upravitelji paketov Linux .) Preverite z:
cat /var/run/reboot-required
Omogoči posredovanje IP-ja
Ta nastavitev omogoča strežniku, da posreduje pakete odjemalcev na internet – brez nje se bo tunel odprl, vendar skozenj ne bo potekal promet.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Prvi ukaz ustvari namensko konfiguracijsko datoteko; drugi jo uporabi brez ponovnega zagona strežnika.
Konfigurirajte požarni zid (UFW)
Za več informacij o pravilih UFW glejte Konfiguriranje požarnega zidu v Linuxu
Odprite dve potrebni vrati: 22/tcp za SSH (če preskočite to pravilo, tvegate izgubo dostopa do strežnika) in 42666/udp, vrata, na katerih bo AmneziaWG poslušal.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Obe pravili bi se morali v izpisu stanja ufw prikazati kot DOVOLJENO.
Namestitev programa AmneziaWG
Debian ne podpira neposredno PPA-jev v slogu Ubuntuja, zato je treba repozitorij dodati ročno in ne z ukazom add-apt-repository. To deluje na enak način v Ubuntuju.
Ročno dodajte repozitorij
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Dodajte podpisni ključ GPG
Namesto zastarelega ukaza apt-key uporabite zastarelo datoteko s ključi in pridobite pravi podpisni ključ PPA (prstni odtis 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
Posodobi in namesti
apt update
apt install -y amneziawg
Preverite, ali je modul naložen
modprobe amneziawg
lsmod | grep amnezia
Ustvarjanje konfiguracije strežnika in odjemalca
Namestitev pomožnih pripomočkov
Namestite odvisnost qrcode, nato ustvarite namensko delovno mapo in vanjo prenesite skripto 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
Če python3-qrcode ni na voljo v repozitorijih vaše distribucije, uporabite pip3 install qrcode --break-system-packages (zastavica je obvezna v Debianu 12+/Ubuntu 24.04, ki privzeto blokirata neupravljane namestitve pip-ov). Ne zaženite obeh namestitev – izberite eno.
Ustvari konfiguracijo strežnika
Ustvarite datoteko /etc/amnezia/amneziawg/awg0.conf. Notranje podomrežje in vrata UDP predora lahko pustite privzete ali pa nastavite svoje:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
Zastavica -i nastavi notranji omrežni naslov in masko tunela; -p nastavi UDP vrata strežnika (ista, kot so bila odprta v koraku 2.3).
Ustvarite predlogo za konfiguracijo odjemalca
python3 awgcfg.py --create
S tem se predloga shrani v isto mapo, iz katere so zgrajene posamezne konfiguracije odjemalcev – že vključuje javni ključ strežnika, njegov IP-naslov in parametre zakrivanja (Jc, Jmin, Jmax, S1, S2, H1–H4), ki ločijo AmneziaWG od navadnega WireGuarda.
Dodaj stranke
Ustvarite en vnos na napravo – ime je lahko poljubno, npr. ime naprave:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Ustvarite datoteke strank in QR kode
python3 awgcfg.py -c -q
Mapa ~/awg bo zdaj vsebovala datoteke, kot sta laptop.conf in phone.conf, ter ujemajoče se QR kode PNG, ki jih lahko skenirate neposredno v mobilno aplikacijo.
Mapa ~/awg bo zdaj vsebovala datoteke, kot sta laptop.conf in phone.conf, ter ujemajoče se QR kode PNG, ki jih lahko skenirate neposredno v mobilno aplikacijo.
Zagon storitve in omogočanje samodejnega zagona
Odprite vmesnik awg0 in mu omogočite samodejni zagon ob ponovnem zagonu:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Stanje bi moralo biti aktivno (izhod), enota pa omogočena ob zagonu. Če se zdi, da se konzola "zatakne" in prikazuje dnevnike, pritisnite Q za izhod.
Preverite seznam aktivnih vrstnikov in promet na vrstnik z:
awg show
Povezovanje iz sistema Windows
Vse v tem razdelku se dogaja na vašem računalniku z operacijskim sistemom Windows, ne prek SSH – odjemalec VPN mora biti nameščen na napravi, ki bo dejansko uporabljala predor. Edini korak, ki se dotakne strežnika, je prenos ukaza scp v različici 6.2, in celo ta ukaz se vnese v računalnik, pri čemer se potegne datoteka, ki jo je strežnik že ustvaril v 4. razdelku.
Namestite odjemalca
AmneziaWG ima namensko aplikacijo za Windows – njen vmesnik zrcali standardnega odjemalca WireGuard, vendar razume parametre zakrivanja. Prenesite namestitveni program iz uradnega repozitorija projekta:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Zgornja povezava je stran z izdajami vzdrževanega odjemalca za Windows – od tam prenesite najnovejšo datoteko .msi/.exe. To je stran, ki jo odprete v brskalniku, ne ukaz, ki ga prilepite v terminal.
Zaženite namestitveni program in sledite korakom čarovnika za nastavitev; privzetih nastavitev ni treba spreminjati.
Uvozi konfiguracijo
Kopirajte konfiguracijsko datoteko odjemalca s strežnika na računalnik – najlažji način je scp, ki jo zaženete v PowerShellu na računalniku in ne na strežniku:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
V aplikaciji AmneziaWG kliknite »Uvozi tunel(e) iz datoteke«, izberite laptop.conf in vklopite stikalo poleg novega tunela.
Povezovanje iz macOS-a
Obstajata dve podprti možnosti:
- AmneziaWG (Mac App Store): lahek odjemalec, deluje v sistemu macOS 12 in novejših različicah. V trgovini App Store poiščite »AmneziaWG«, namestite ga, nato uporabite »Uvozi tunel(e) iz datoteke« in izberite datoteko .conf – enak potek dela kot pri odjemalcu za Windows.
- AmneziaVPN (polna aplikacija, macOS 14+): prenesite datoteko .pkg z github.com/amnezia-vpn/amnezia-client/releases/latest, če raje uporabljate aplikacijo Amnezia s polnimi funkcijami namesto lahkega odjemalca, ki je na voljo samo za AmneziaWG.
Najprej po potrebi prekopirajte konfiguracijo odjemalca, enako kot v koraku 6.2:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Povezovanje iz Linuxa
Na namiznem ali prenosnem računalniku z Linuxom imate dve možnosti:
- Grafični uporabniški vmesnik: namestite celoten namizni odjemalec AmneziaVPN z github.com/amnezia-vpn/amnezia-client/releases, nato pa uvozite datoteko .conf na enak način kot v sistemu Windows/macOS.
- CLI z uporabo istih orodij amneziawg, ki se uporabljajo na strežniku (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Za prekinitev povezave zaženite to kodo.
awg-quick down awg0
Če želite, da se predor samodejno odpre ob prijavi, ga omogočite kot storitev:
systemctl enable --now awg-quick@awg0
Preverjanje povezave
Ko je tunel aktiven iz 6., 7. ali 8. razdelka, se vrnite na svojo napravo (ne v sejo SSH) in v brskalniku odprite poljubno orodje za preverjanje »kakšen je moj IP« – prikazani naslov se mora ujemati z naslovom IP vašega VPS-ja. Če želite namesto tega preveriti znotraj seje SSH, na strežniku zaženite ukaz awg show in potrdite, da odjemalčev vrstnik prikazuje nedavno rokovanje in promet, ki ni enak ničelni vrednosti.
Sklic:
|
Polje |
Vrednost |
|
Naslov |
VAŠ_IP_PREDORA (naslov odjemalca znotraj predora, npr. 10.10.8.2/32 — dodeljen samodejno, ko je bil odjemalec dodan v koraku 4.4) |
|
Končna točka |
YOUR_SERVER_IP:42666 (Zunanji IP naslov strežnika in vrata UDP, na katera se odjemalec poveže.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmin / Jmax |
število in velikost »neželenih« paketov, poslanih pred rokovanjem – se lahko razlikujeta med strežnikom in odjemalcem, ne da bi pri tem prekinili povezavo |
|
S1/S2 |
velikost polj za oblazinjenje rokovanja – mora se ujemati bajt za bajtom med strežnikom in vsakim odjemalcem |
|
H1 – H4 |
glave paketnega tipa, ki protokol maskirajo kot navaden promet – se morajo prav tako popolnoma ujemati in morajo biti drugačne od druge |
Samo S1/S2 in H1–H4 morata biti identična na obeh koncih tunela; Jc, Jmin in Jmax se nanašajo izključno na to, kako vsaka stran zapolni svoj odhodni neželeni promet, zato se lahko vrednosti odjemalca in strežnika upravičeno razlikujejo, kot v zgornjem primeru.
zaključek
Če sledite temu vodniku, vaš VPS deluje na lastnem strežniku AmneziaWG: protokolu, združljivem z WireGuardom, z obfuskacijo prometa, ki ga sistemi DPI opazno težje ločijo od običajnega prometa UDP kot pri navadnem WireGuardu. Storitev deluje kot sistemska enota awg-quick@awg0 in preživi ponovni zagon strežnika brez vašega posredovanja.
Nastale datoteke .conf in QR kode v mapi ~/awg ne delujejo samo z odjemalcem za Windows, temveč jih je mogoče uvoziti tudi v aplikacije AmneziaWG ali Amnezia za Android, iOS, macOS in Linux, pa tudi v usmerjevalnike Keenetic in OpenWrt.
Nove odjemalce lahko kadar koli dodate tako, da ponovite koraka 4.4–4.5 (python3 awgcfg.py -a "name", nato awgcfg.py -c -q) in ponovno zaženete vmesnik z ukazom systemctl restart [email protected].
Nekaj navad, ki jih je vredno ohraniti, ko strežnik deluje:
- Sistem naj bo posodobljen. Občasno znova zaženite ukaza apt update -y && apt upgrade -y in po nadgradnji jedra znova zaženite sistem, da DKMS ponovno zgradi modul amneziawg z novim jedrom.
- Varnostno kopirajte ~/awg. V datoteki awg0.conf hrani zasebni ključ vsakega odjemalca in par ključev strežnika; če ga izgubite, boste morali znova ustvariti konfiguracije za vsako napravo.
- Izgubljene naprave takoj prekličite. Odstranite ustrezni blok [Peer] iz datoteke /etc/amnezia/amneziawg/awg0.conf in zaženite ukaz systemctl restart. [e-pošta zaščitena].
Če se povezava ne vzpostavi, preverite po vrsti:
- stanje storitve (status systemctl [e-pošta zaščitena])
- pravila požarnega zidu (stanje ufw — vrata 42666/udp morajo biti odprta)
- stanje DKMS/modula, če se vmesnik sploh ne zažene (stanje dkms, lsmod | grep amnezia)
- seznam aktivnih vrstnikov na strežniku (awg show)
- da konfiguracija odjemalca kaže na pravilen IP-naslov zunanjega strežnika
Primerjava AmneziaWG z drugimi možnostmi pred odločitvijo? Glejte Nastavitev strežnika VPN v Linuxu: PPTP ali OpenVPN? in Kako nastaviti Wireguard VPN na vašem strežniku . Če potrebujete le preprost proxy in ne celotnega tunela VPN, je konfiguracija 3proxy v CentOS/ArchLinux lažja alternativa. Za splošno utrjevanje strežnika, ko je VPN aktiven, glejte Uporabniki Linuxa: Upravljanje in dovoljenja.