Arvien vairāk cilvēku paši izmanto savu VPN, nevis paļaujas uz maksas, gataviem pakalpojumiem: tas ir lētāk, labāk nodrošina privātumu un sniedz pilnīgu servera kontroli. Viena no efektīvākajām iespējām reģioniem ar agresīvu tīkla bloķēšanu ir AmneziaWG — protokols, ko Amnezia projekts izstrādājis uz WireGuard bāzes.
Klasiskais WireGuard ir ātrs un uzticams, taču tam ir fiksēta pakešu struktūra un paredzams saziņas signāls, ko DPI (dziļās pakešu pārbaudes) sistēmas var droši atpazīt un bloķēt. AmneziaWG atrisina šo problēmu: tas pievieno nevēlamas paketes parastajam WireGuard savienojumam, nejauši sadala galvenes un maina saziņas signāla lauku lielumu, tāpēc WireGuard raksturīgais paraksts pazūd un datplūsma vairs neizceļas no parastās UDP datplūsmas.
Vai jau izmantojat klasisko tuneli un domājat, vai ir vērts to pārslēgt? Salīdziniet to ar vienkāršu OpenVPN/PPTP iestatījumu sadaļā VPN servera iestatīšana operētājsistēmā Linux: PPTP vai OpenVPN? vai ar parasto WireGuard (bez maskēšanas) sadaļā Kā iestatīt Wireguard VPN savā serverī.
Šajā rokasgrāmatā AmneziaWG serveris tiek iestatīts manuāli, bez Docker vai tīmekļa paneļa — pēc iespējas mazāks aizņemamais resurss uz paša VPS, pilnībā konfigurēts no komandrindas. Tā ir visvieglākā opcija un labi darbojas budžeta VPS, jo tai nav nepieciešama grafiskā lietotāja saskarne, datubāze un reversais starpniekserveris. Zemāk redzamajā servera piemērā tiek izmantota viettura IP adrese — nomainiet to ar sava VPS adresi visur, kur tā parādās.
Kas jums būs nepieciešams: VPS ar Ubuntu 22.04/24.04 vai Debian 11/12, root piekļuve un jūsu VPS IP adrese. Domēna vārds nav nepieciešams — AmneziaWG neizmanto sertifikātus, tāpēc nav nekā, kas jāatjauno, un DPI nav ko atzīmēt kā TLS rokasspiedienu.
Vēl nav servera? Skatiet sadaļu Kā pasūtīt serveri.
Izveido savienojumu ar serveri
Windows (PuTTY)
Atveriet PuTTY, ievadiet savu VPS IP adresi laukā Host Name, iestatiet portu uz 22 un piesakieties kā root, izmantojot paroli, ko VPS pakalpojumu sniedzējs jums nosūtīja pa e-pastu.
Servera IP adrese: jūsu IP adrese
piesakieties kā: root
Parole: jūsu parole
1. Atveriet PuTTY un ievadiet savu VPS IP adresi laukā Host Name.
2. Iestatiet portu uz 22.
3. Ievadiet pieteikšanos kā root.
4. Izmantojot paroli, ko VPS pakalpojumu sniedzējs jums nosūtīja pa e-pastu.
Rezultātam jābūt šādam:
Detalizētu informāciju par savienojuma izveidi, izmantojot PuTTY/SSH, skatiet sadaļā Kā izveidot savienojumu ar Linux serveri, izmantojot SSH.
Linux/macOS (terminālis)
ssh root@YOUR_SERVER_IP
Visas tālāk norādītās komandas tiek palaistas serverī, šajā pašā SSH sesijā, kas aptver 2.–5. sadaļu, kā arī servera puses pārbaudes 9. sadaļā. 6.–8. sadaļa (VPN klienta instalēšana un konfigurēšana) notiek jūsu pašu Windows/macOS/Linux ierīcē, jo tā ir ierīce, kurā VPN ir jādarbojas; katrā no šīm sadaļām ir skaidri norādīts, kuras rindas, ja tādas ir, joprojām saskaras ar serveri.
Servera sagatavošana
Atjauniniet sistēmu
Pirms jebkādu pakotņu instalēšanas atsvaidziniet pakotņu sarakstu un jauniniet instalētās pakotnes:
apt update -y && apt upgrade -y
Ja tas jaunina kodolu, pirms AmneziaWG kodola moduļa veidošanas 3. sadaļā restartējiet datoru, pretējā gadījumā DKMS var veidot, izmantojot nepareizas kodola galvenes, un modulis neizdosies ielādēt. (Lai atsvaidzinātu zināšanas par apt un to, kā darbojas Linux pakotņu pārvaldnieki, skatiet Linux pakotņu pārvaldnieki .) Pārbaudiet:
cat /var/run/reboot-required
Iespējot IP pāradresāciju
Šis iestatījums ļauj serverim pārsūtīt klientu paketes uz internetu — bez tā tunelis tiks izveidots, bet caur to netiks plūstoša datplūsma.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Pirmā komanda izveido īpašu konfigurācijas failu; otrā to lieto, nepārstartējot serveri.
Ugunsmūra (UFW) konfigurēšana
Lai uzzinātu vairāk par UFW noteikumiem, skatiet sadaļu Ugunsmūra konfigurēšana operētājsistēmā Linux.
Atveriet divus nepieciešamos portus: 22/tcp SSH (izlaidiet šo noteikumu, un jūs riskējat zaudēt piekļuvi serverim) un 42666/udp, portu, kuru klausīsies AmneziaWG.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Abiem noteikumiem ufw statusa izvadē vajadzētu parādīties kā ALLOW.
AmneziaWG instalēšana
Debian tieši neatbalsta Ubuntu stila PPA, tāpēc repozitorijs ir jāpievieno manuāli, nevis ar add-apt-repository. Tas darbojas tāpat arī Ubuntu.
Pievienojiet repozitoriju manuāli
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Pievienojiet GPG parakstīšanas atslēgu
Izmantojiet dearmored atslēgu saišķa failu novecojušās apt-key komandas vietā un iegūstiet PPA īsto parakstīšanas atslēgu (pirkstu nospiedumu 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
Atjaunināt un instalēt
apt update
apt install -y amneziawg
Pārbaudiet, vai modulis ir ielādēts
modprobe amneziawg
lsmod | grep amnezia
Servera un klienta konfigurācijas ģenerēšana
Instalējiet palīgprogrammas
Instalējiet qrcode atkarību, pēc tam izveidojiet īpašu darba direktoriju un lejupielādējiet tajā kopienas konfigurācijas ģeneratora skriptu:
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Ja python3-qrcode nav pieejams jūsu distribūcijas repozitorijos, atgriezieties pie pip3 install qrcode --break-system-packages (šis karodziņš ir obligāts Debian 12+/Ubuntu 24.04, kas pēc noklusējuma bloķē nepārvaldītas pip instalācijas). Nepalaidiet abas instalācijas — izvēlieties vienu.
Ģenerēt servera konfigurāciju
Izveidojiet /etc/amnezia/amneziawg/awg0.conf. Varat atstāt tuneļa iekšējo apakštīklu un UDP portu noklusējuma vērtībās vai iestatīt savus:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
Karodziņš -i iestata tuneļa iekšējo tīkla adresi un masku; -p iestata servera UDP portu (to pašu, kas tika atvērts 2.3. darbībā).
Izveidojiet klienta konfigurācijas veidni
python3 awgcfg.py --create
Tas saglabā veidni tajā pašā mapē, no kuras tiek veidotas atsevišķas klienta konfigurācijas — tajā jau ir iekļauta servera publiskā atslēga, tā IP adrese un obfuskācijas parametri (Jc, Jmin, Jmax, S1, S2, H1–H4), kas atšķir AmneziaWG no vienkārša WireGuard.
Pievienot klientus
Izveidojiet vienu ierakstu katrai ierīcei — nosaukums var būt jebkurš, piemēram, ierīces nosaukums:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Ģenerēt klienta failus un QR kodus
python3 awgcfg.py -c -q
Mapē ~/awg tagad būs tādi faili kā laptop.conf un phone.conf, kā arī atbilstoši PNG QR kodi, kurus var skenēt tieši mobilajā lietotnē.
Mapē ~/awg tagad būs tādi faili kā laptop.conf un phone.conf, kā arī atbilstoši PNG QR kodi, kurus var skenēt tieši mobilajā lietotnē.
Pakalpojuma palaišana un automātiskās palaišanas iespējošana
Atveriet awg0 saskarni un iespējojiet to automātiskai palaišanai pēc pārstartēšanas:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Statusam vajadzētu rādīt aktīvu (izietu), un ierīcei startēšanas laikā jābūt iespējotai. Ja konsole, šķiet, “uzkaras”, rādot žurnālus, nospiediet Q, lai izietu.
Pārbaudiet aktīvo līdzinieku sarakstu un viena līdzinieka datplūsmu, izmantojot:
awg show
Savienojuma izveide no Windows
Viss šajā sadaļā notiek jūsu Windows datorā, nevis caur SSH — VPN klients ir jāinstalē ierīcē, kas faktiski izmantos tuneli. Vienīgais solis, kas skar serveri, ir scp lejupielāde 6.2. versijā, un pat šī komanda tiek ierakstīta jūsu datorā, izvelkot failu, ko serveris jau ir ģenerējis 4. sadaļā.
Instalējiet klientu
AmneziaWG ir īpaša Windows lietotne — tās saskarne atspoguļo standarta WireGuard klientu, taču tā saprot maskēšanas parametrus. Lejupielādējiet instalētāju no projekta oficiālās krātuves:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Iepriekš minētā saite ir uzturētā Windows klienta laidienu lapa — lejupielādējiet jaunāko .msi/.exe failu no turienes. Šī ir lapa, kas jāatver pārlūkprogrammā, nevis komanda, kas jāielīmē terminālī.
Palaidiet instalētāju un soli pa solim izpildiet iestatīšanas vedņa norādījumus; noklusējuma iestatījumi nav jāmaina.
Importēt konfigurāciju
Kopējiet klienta konfigurācijas failu no servera uz datoru — vienkāršākais veids ir scp, palaidiet to PowerShell savā datorā, nevis serverī:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
AmneziaWG lietotnē noklikšķiniet uz "Importēt tuneli(-us) no faila", atlasiet laptop.conf un ieslēdziet slēdzi blakus jaunajam tunelim.
Savienojuma izveide no macOS
Pastāv divas atbalstītas iespējas:
- AmneziaWG (Mac App Store): viegls klients, kas darbojas operētājsistēmā macOS 12 un jaunākās versijās. App Store meklējiet “AmneziaWG”, instalējiet to, pēc tam izmantojiet “Importēt tuneli(-us) no faila” un atlasiet savu .conf failu — tā pati darbplūsma kā Windows klientam.
- AmneziaVPN (pilna lietotne, macOS 14+): lejupielādējiet .pkg failu no github.com/amnezia-vpn/amnezia-client/releases/latest, ja vēlaties izmantot pilnvērtīgo Amnezia lietotni, nevis vieglo AmneziaWG klientu.
Ja nepieciešams, vispirms nokopējiet klienta konfigurāciju, tāpat kā 6.2. darbībā:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Savienojuma izveide no Linux
Linux galddatorā vai klēpjdatorā ir divas iespējas:
- GUI: instalējiet pilno AmneziaVPN darbvirsmas klientu no github.com/amnezia-vpn/amnezia-client/releases un pēc tam importējiet .conf failu tāpat kā operētājsistēmās Windows/macOS.
- CLI, izmantojot tos pašus amneziawg rīkus, kas tiek izmantoti serverī (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Palaidiet šo kodu, lai pārtrauktu savienojumu.
awg-quick down awg0
Lai tunelis tiktu atvērts automātiski pieteikšanās laikā, iespējojiet to kā pakalpojumu:
systemctl enable --now awg-quick@awg0
Savienojuma pārbaude
Kad tunelis ir aktīvs no 6., 7. vai 8. sadaļas, atgriezieties savā ierīcē (nevis SSH sesijā) un pārlūkprogrammā atveriet jebkuru pārbaudītāju “kāda ir mana IP adrese” — parādītajai adresei ir jāatbilst jūsu VPS IP adresei. Lai pārbaudītu no SSH sesijas, serverī palaidiet komandu awg show un pārliecinieties, vai klienta partneris rāda nesenu saziņas savienojumu un datplūsmu, kas nav nulle.
Atsauce:
|
Lauks |
Vērtība |
|
Adrese |
JŪSU_TUNEĻA_IP (klienta adrese tuneļa iekšpusē, piemēram, 10.10.8.2/32 — piešķirta automātiski, pievienojot klientu 4.4. darbībā) |
|
Beigu punkts |
YOUR_SERVER_IP:42666 (Servera ārējā IP adrese un UDP ports, ar kuru klients izveido savienojumu.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmin / Jmax |
pirms rokasspiediena nosūtīto “nevēlamo” pakešu skaits un lielums — var atšķirties starp serveri un klientu, nepārtraucot savienojumu |
|
S1/S2 |
Rokasspiediena papildināšanas lauku izmērs — tam jāatbilst baits pa baitam starp serveri un katru klientu |
|
H1 – H4 |
pakešu tipa galvenes, kas maskē protokolu kā parastu datplūsmu, arī precīzi jāsakrīt un jābūt unikālām vienai no otras |
Tikai S1/S2 un H1–H4 ir jābūt identiskiem abos tuneļa galos; Jc, Jmin un Jmax nosaka tikai to, kā katra puse papildina savu izejošo nevēlamo datplūsmu, tāpēc klienta un servera vērtības var pamatoti atšķirties, kā tas ir iepriekš minētajā piemērā.
Secinājumi
Ievērojot šo rokasgrāmatu, jūsu VPS darbojas savs AmneziaWG serveris: ar WireGuard saderīgs protokols ar datplūsmas slēpšanu, ko DPI sistēmām ir ievērojami grūtāk atšķirt no parastās UDP datplūsmas nekā parasto WireGuard datplūsmu. Pakalpojums darbojas kā systemd vienība awg-quick@awg0 un izdzīvo servera pārstartēšanu bez jebkādas jūsu darbības.
Iegūtie .conf faili un QR kodi failā ~/awg darbojas ne tikai ar Windows klientu, bet tos var importēt arī AmneziaWG vai Amnezia lietotnēs operētājsistēmām Android, iOS, macOS un Linux, kā arī Keenetic un OpenWrt maršrutētājos.
Pievienojiet jaunus klientus jebkurā laikā, atkārtojot 4.4.–4.5. darbību (python3 awgcfg.py -a "name", pēc tam awgcfg.py -c -q) un restartējot saskarni ar systemctl restart [email protected].
Daži ieradumi, kas ir vērts ievērot, kad serveris darbojas:
- Regulāri atjauniniet sistēmas ielāpus. Periodiski atkārtoti palaidiet apt update -y un apt upgrade -y un pēc kodola jaunināšanas pārstartējiet sistēmu, lai DKMS atjaunotu amneziawg moduli atbilstoši jaunajam kodolam.
- Izveidojiet ~/awg dublējumu. Tajā ir katra klienta privātā atslēga un servera atslēgu pāris failā awg0.conf; tā zaudēšana nozīmē konfigurāciju atkārtotu ģenerēšanu katrai ierīcei.
- Nekavējoties atsauciet pazaudētās ierīces. Noņemiet atbilstošo [Peer] bloku no /etc/amnezia/amneziawg/awg0.conf un palaidiet systemctl restart. [e-pasts aizsargāts].
Ja savienojums nedarbojas, pārbaudiet darbības šādā secībā:
- pakalpojuma statuss (systemctl status [e-pasts aizsargāts])
- ugunsmūra noteikumi (ufw statuss — 42666/udp portam jābūt atvērtam)
- DKMS/moduļa statuss, ja saskarne pat neieslēdzas (dkms status, lsmod | grep amnezia)
- Aktīvo līdzinieku saraksts serverī (awg show)
- ka klienta konfigurācija norāda uz pareizo ārējā servera IP adresi
Vai salīdzināt AmneziaWG ar citām iespējām pirms ieviešanas? Skatiet sadaļu VPN servera iestatīšana operētājsistēmā Linux: PPTP vai OpenVPN? un Kā iestatīt Wireguard VPN savā serverī . Ja jums ir nepieciešams tikai vienkāršs starpniekserveris, nevis pilns VPN tunelis, 3proxy konfigurācija operētājsistēmās CentOS/ArchLinux ir vieglāka alternatīva. Lai iegūtu vispārīgu informāciju par servera aizsardzības nostiprināšanu, kad VPN ir aktivizēts, skatiet sadaļu Linux lietotāji: pārvaldība un atļaujas.