Усё больш людзей выкарыстоўваюць уласныя VPN замест таго, каб спадзявацца на гатовыя платныя сэрвісы: гэта танней, лепш для прыватнасці і дае поўны кантроль над серверам. Адным з найбольш эфектыўных варыянтаў для рэгіёнаў з агрэсіўнай блакіроўкай сеткі з'яўляецца AmneziaWG, пратакол, распрацаваны праектам Amnezia на базе WireGuard.
Класічны WireGuard хуткі і надзейны, але мае фіксаваную структуру пакетаў і прадказальнае падпіску, якія сістэмы DPI (глыбокай праверкі пакетаў) могуць надзейна ідэнтыфікаваць і блакаваць. AmneziaWG вырашае гэтую праблему: ён дадае непатрэбныя пакеты да звычайнага падключэння WireGuard, рандомізуе загалоўкі і змяняе памер палёў падпіскі — такім чынам характэрная подпіс WireGuard знікае, і трафік больш не вылучаецца сярод звычайнага UDP-трафіку.
Ужо карыстаецеся класічным тунэлем і думаеце, ці варта яго пераключацца? Параўнайце гэта са звычайнай канфігурацыяй OpenVPN/PPTP у раздзеле « Налада VPN-сервера ў Linux: PPTP ці OpenVPN?» або з звычайнай канфігурацыяй WireGuard (без абфускацыі) у раздзеле « Як наладзіць Wireguard VPN на вашым серверы».
У гэтым кіраўніцтве паказана, як наладзіць сервер AmneziaWG уручную, без Docker або вэб-панэлі — мінімальна магчымы аб'ём на самым VPS, цалкам наладжваючыся з каманднага радка. Гэта самы лёгкі варыянт, які добра працуе на бюджэтным VPS, бо яму не патрэбны графічны інтэрфейс, база дадзеных і зваротны проксі. У прыведзеным ніжэй прыкладзе сервера выкарыстоўваецца IP-адрас-запаўняльнік — заменіце яго адрасам вашага ўласнага VPS, дзе б ён ні з'яўляўся.
Што вам спатрэбіцца: VPS з Ubuntu 22.04/24.04 або Debian 11/12, root-доступ і IP-адрас вашага VPS. Даменнае імя не патрабуецца — AmneziaWG не выкарыстоўвае сертыфікаты, таму няма чаго абнаўляць і DPI нічога не павінна пазначаць як TLS-рукапацісканне.
Яшчэ няма сервера? Глядзіце, як замовіць сервер
Падключэнне да сервера
Windows (PuTTY)
Адкрыйце PuTTY, увядзіце IP-адрас вашага VPS у поле «Імя хаста», усталюйце порт на 22 і ўвайдзіце ў сістэму як root, выкарыстоўваючы пароль, які вам даслаў пастаўшчык VPS па электроннай пошце.
IP-адрас сервера: ваш IP-адрас
увайсці як: root
Пароль: ваш пароль
1. Адкрыйце PuTTY, увядзіце IP-адрас вашага VPS у поле «Імя хаста».
2. Усталюйце порт на 22.
3. Увайдзіце ў сістэму як root.
4. Выкарыстоўваючы пароль, які вам даслаў пастаўшчык VPS па электроннай пошце.
Вынік павінен быць наступным:
Падрабязную інструкцыю па падключэнні праз PuTTY/SSH глядзіце ў раздзеле Як падключыцца да сервера Linux праз SSH.
Linux / macOS (тэрмінал)
ssh root@YOUR_SERVER_IP
Усе каманды ніжэй выконваюцца на серверы ў тым самым SSH-сеансе — гэта ахоплівае раздзелы з 2 па 5, а таксама праверкі на баку сервера ў раздзеле 9. Раздзелы 6–8 (устаноўка і наладжванне VPN-кліента) выконваюцца на вашай уласнай прыладзе Windows/macOS/Linux, бо менавіта на гэтай прыладзе павінен працаваць VPN; у кожным з гэтых раздзелаў выразна пазначана, якія радкі, калі такія маюцца, усё яшчэ тычацца сервера.
Падрыхтоўка сервера
Абнавіце сістэму
Перад усталёўкай чаго-небудзь абнавіце спіс пакетаў і абнавіце ўсталяваныя пакеты:
apt update -y && apt upgrade -y
Калі гэта абнаўляе ядро, перазагрузіце кампутар перад зборкай модуля ядра AmneziaWG у раздзеле 3, інакш DKMS можа сабраць яго з няправільнымі загалоўкамі ядра, і модуль не загрузіцца. (Каб даведацца больш пра apt і пра тое, як працуюць менеджэры пакетаў Linux, глядзіце раздзел Менеджэры пакетаў Linux .) Звярніцеся да:
cat /var/run/reboot-required
Уключыць пераадрасацыю IP-адраса
Гэты параметр дазваляе серверу перасылаць пакеты кліентаў у Інтэрнэт — без яго тунэль будзе працаваць, але трафік праз яго не будзе праходзіць.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Першая каманда стварае спецыяльны файл канфігурацыі; другая ўжывае яго без перазагрузкі сервера.
Наладзьце брандмаўэр (UFW)
Больш падрабязную інфармацыю пра правілы UFW глядзіце ў раздзеле Налада брандмаўэра ў Linux
Адкрыйце два патрэбныя вам парты: 22/tcp для SSH (калі прапусціць гэтае правіла, вы рызыкуеце страціць доступ да сервера) і 42666/udp — порт, на якім будзе праслухоўваць AmneziaWG.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Абодва правілы павінны адлюстроўвацца як ALLOW у вывадзе статусу ufw.
Усталёўка AmneziaWG
Debian не падтрымлівае PPA ў стылі Ubuntu напрамую, таму рэпазітар трэба дадаваць уручную, а не з дапамогай add-apt-repository. У Ubuntu гэта працуе гэтак жа.
Дадаць рэпазітар уручную
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Дадаць ключ падпісання GPG
Выкарыстоўвайце файл ключоў Dearmored замест састарэлай каманды apt-key і атрымайце сапраўдны ключ падпісання PPA (адбітак пальца 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
Абнавіць і ўсталяваць
apt update
apt install -y amneziawg
Праверце, ці загружаны модуль
modprobe amneziawg
lsmod | grep amnezia
Стварэнне канфігурацыі сервера і кліента
Усталюйце дапаможныя ўтыліты
Усталюйце залежнасць qrcode, затым стварыце асобны працоўны каталог і запампуйце ў яго скрыпт 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
Калі python3-qrcode недаступны ў рэпазіторыях вашага дыстрыбутыва, выкарыстоўвайце каманду pip3 install qrcode --break-system-packages (гэты сцяг неабходны ў Debian 12+/Ubuntu 24.04, якія па змаўчанні блакуюць некіраваныя ўсталёўкі pip). Не запускайце абедзве ўсталёўкі — выберыце адну.
Стварыць канфігурацыю сервера
Стварыце /etc/amnezia/amneziawg/awg0.conf. Вы можаце пакінуць унутраную падсетку тунэля і порт UDP па змаўчанні або задаць свае ўласныя:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
Сцяг -i ўстанаўлівае ўнутраны сеткавы адрас і маску тунэля; -p усталёўвае UDP-порт сервера (той самы, што быў адкрыты на этапе 2.3).
Стварыце шаблон канфігурацыі кліента
python3 awgcfg.py --create
Гэта захоўвае шаблон у той жа тэчцы, з якой ствараюцца асобныя канфігурацыі кліентаў — ён ужо ўключае адкрыты ключ сервера, яго IP-адрас і параметры абфускацыі (Jc, Jmin, Jmax, S1, S2, H1–H4), якія адрозніваюць AmneziaWG ад звычайнага WireGuard.
Дадаць кліентаў
Стварыце адзін запіс для кожнай прылады — назва можа быць любой, напрыклад, назва прылады:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Генерацыя кліенцкіх файлаў і QR-кодаў
python3 awgcfg.py -c -q
Папка ~/awg цяпер будзе ўтрымліваць такія файлы, як laptop.conf і phone.conf, а таксама адпаведныя QR-коды ў фармаце PNG, якія можна адсканаваць непасрэдна ў мабільную праграму.
Папка ~/awg цяпер будзе ўтрымліваць такія файлы, як laptop.conf і phone.conf, а таксама адпаведныя QR-коды ў фармаце PNG, якія можна адсканаваць непасрэдна ў мабільную праграму.
Запуск службы і ўключэнне аўтазапуску
Адкрыйце інтэрфейс awg0 і ўключыце яго аўтаматычны запуск пры перазагрузцы:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Пры загрузцы павінна паказвацца «Актыўны» (выйдзены), а прылада ўключана. Калі кансоль «завісае», паказваючы журналы, націсніце Q для выхаду.
Праверце спіс актыўных вузлоў і трафік для кожнага вузла з дапамогай:
awg show
Падключэнне з Windows
Усё, што апісана ў гэтым раздзеле, адбываецца на вашым ПК з Windows, а не праз SSH — VPN-кліент павінен быць усталяваны на прыладзе, якая будзе фактычна карыстацца тунэлем. Адзіны крок, які тычыцца сервера, — гэта загрузка scp у версіі 6.2, і нават гэтая каманда ўводзіцца на вашым ПК, спампоўваючы файл, які сервер ужо стварыў у раздзеле 4.
Усталюйце кліент
У AmneziaWG ёсць спецыяльнае прыкладанне для Windows — яго інтэрфейс адлюстроўвае стандартны кліент WireGuard, але ён разумее параметры абфускацыі. Спампуйце ўсталявальнік з афіцыйнага рэпазітара праекта:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Спасылка вышэй — гэта старонка выпускаў абслугоўванага кліента Windows. Спампуйце адтуль найноўшы рэсурс .msi/.exe. Гэта старонка, якую трэба адкрыць у браўзеры, а не каманда, якую трэба ўставіць у тэрмінал.
Запусціце праграму ўстаноўкі і выканайце дзеянні майстра налады; налады па змаўчанні мяняць не трэба.
Імпартаваць канфігурацыю
Скапіюйце файл канфігурацыі кліента з сервера на ваш камп'ютар — самы просты спосаб — scp, запусціце яго ў PowerShell на вашым камп'ютары, а не на серверы:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
У праграме AmneziaWG націсніце «Імпартаваць тунэлі з файла», выберыце laptop.conf і ўключыце пераключальнік побач з новым тунэлем.
Падключэнне з macOS
Існуюць два падтрымоўваныя варыянты:
- AmneziaWG (Mac App Store): лёгкі кліент, працуе на macOS 12 і больш позніх версій. Знайдзіце «AmneziaWG» у App Store, усталюйце яго, затым скарыстайцеся «Імпартаваць тунэлі з файла» і выберыце файл .conf — той жа працоўны працэс, што і ў кліента Windows.
- AmneziaVPN (поўная версія праграмы, macOS 14+): запампуйце .pkg-файл з github.com/amnezia-vpn/amnezia-client/releases/latest, калі вы аддаеце перавагу выкарыстоўваць паўнафункцыянальную праграму Amnezia замест лёгкага кліента, які працуе толькі з AmneziaWG.
Спачатку скапіюйце канфігурацыю кліента, калі гэта неабходна, гэтак жа, як у кроку 6.2:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Падключэнне з Linux
На настольным кампутары або ноўтбуку з Linux у вас ёсць два варыянты:
- Графічны інтэрфейс карыстальніка: усталюйце поўны кліент AmneziaVPN для працоўнага стала з github.com/amnezia-vpn/amnezia-client/releases, а затым імпартуйце файл .conf гэтак жа, як у Windows/macOS.
- CLI з выкарыстаннем тых жа інструментаў amneziawg, што і на серверы (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Выканайце гэты код, каб адключыцца.
awg-quick down awg0
Каб тунэль аўтаматычна запускаўся пры ўваходзе ў сістэму, уключыце яго як службу:
systemctl enable --now awg-quick@awg0
Праверка злучэння
Пасля таго, як тунэль актыўны з раздзелаў 6, 7 або 8, вярніцеся на сваю прыладу (не да сесіі SSH) і адкрыйце любую праграму праверкі «які мой IP-адрас» у браўзеры — паказаны адрас павінен супадаць з IP-адрасам вашага VPS. Каб праверыць знутры сесіі SSH, запусціце awg show на серверы і пераканайцеся, што вузел кліента паказвае нядаўняе падключэнне і ненулявы трафік.
Спасылка:
|
Поле |
значэнне |
|
Адрас |
YOUR_TUNNEL_IP (адрас кліента ўнутры тунэля, напрыклад, 10.10.8.2/32 — прысвойваецца аўтаматычна пры даданні кліента на этапе 4.4) |
|
канчатковая кропка |
YOUR_SERVER_IP:42666 (Знешні IP-адрас сервера і порт UDP, да якога падключаецца кліент.) |
|
DNS |
8.8.8.8 |
|
Jc / Jмін / Jмакс |
колькасць і памер «смеццевых» пакетаў, адпраўленых перад падтрыманнем сувязі — могуць адрознівацца паміж серверам і кліентам без разрыву злучэння |
|
S1 / S2 |
памер палёў дапаўнення для квитирования — павінен супадаць байт у байт паміж серверам і кожным кліентам |
|
H1–H4 |
загалоўкі тыпу пакетаў, якія маскіруюць пратакол пад звычайны трафік, — таксама павінны цалкам супадаць і быць унікальнымі адзін ад аднаго |
Толькі S1/S2 і H1–H4 павінны быць аднолькавымі на абодвух канцах тунэля; Jc, Jmin і Jmax тычацца выключна таго, як кожны бок запаўняе свой уласны выходны непажаданы трафік, таму значэнні кліента і сервера могуць цалкам адрознівацца, як у прыкладзе вышэй.
Conclusion
Пасля выканання гэтага кіраўніцтва ваш VPS будзе працаваць на ўласным серверы AmneziaWG: пратакол, сумяшчальны з WireGuard, з абфускацыяй трафіку, які сістэмам DPI значна цяжэй адрозніць ад звычайнага UDP-трафіку, чым звычайны WireGuard. Сэрвіс працуе як сістэмны блок awg-quick@awg0 і перазагружаецца пасля перазагрузкі сервера без якіх-небудзь дзеянняў з вашага боку.
Атрыманыя файлы .conf і QR-коды ў ~/awg працуюць не толькі з кліентам Windows, але і могуць быць імпартаваны ў праграмы AmneziaWG або Amnezia для Android, iOS, macOS і Linux, а таксама ў маршрутызатары Keenetic і OpenWrt.
Дадайце новых кліентаў у любы час, паўтарыўшы крокі 4.4–4.5 (python3 awgcfg.py -a "name", затым awgcfg.py -c -q) і перазапусціўшы інтэрфейс з дапамогай systemctl restart [email protected].
Некалькі звычак, якія варта прытрымлівацца пасля запуску сервера:
- Трымайце сістэму ў актуальным стане. Перыядычна перазапускайце apt update -y && apt upgrade -y і перазагружайцеся пасля абнаўлення ядра, каб DKMS перабудаваў модуль amneziawg для новага ядра.
- Зрабіце рэзервовую копію ~/awg. У ім захоўваюцца прыватныя ключы кожнага кліента і ўласная пара ключоў сервера ў awg0.conf; яго страта азначае перагенерацыю канфігурацый для кожнай прылады.
- Неадкладна адклікайце страчаныя прылады. Выдаліце адпаведны блок [Peer] з /etc/amnezia/amneziawg/awg0.conf і запусціце каманду systemctl restart. [электронная пошта абаронена].
Калі злучэнне не ўсталёўваецца, праверце па парадку:
- стан службы (стан systemctl [электронная пошта абаронена])
- правілы брандмаўэра (стан ufw — порт 42666/udp павінен быць адкрыты)
- стан DKMS/модуля, калі інтэрфейс нават не запускаецца (стан dkms, lsmod | grep amnezia)
- спіс актыўных вузлоў на серверы (awg show)
- што канфігурацыя кліента паказвае на правільны IP-адрас знешняга сервера
Параўноўваеце AmneziaWG з іншымі варыянтамі перад тым, як зрабіць выбар? Глядзіце раздзел «Налада VPN-сервера ў Linux: PPTP ці OpenVPN?» і «Як наладзіць Wireguard VPN на вашым серверы» . Калі вам патрэбен толькі просты проксі-сервер, а не поўны VPN-тунэль, канфігурацыя 3proxy ў CentOS/ArchLinux — гэта больш простая альтэрнатыва. Інфармацыю пра агульнае ўмацаванне сервера пасля запуску VPN глядзіце ў раздзеле « Карыстальнікі Linux: кіраванне і дазволы».