Знания Прости инструкции за работа с услугата Profitserver
основен Знания Ръководство за внедряване на сървъра AmneziaWG

Ръководство за внедряване на сървъра AmneziaWG


Все повече хора използват собствена VPN, вместо да разчитат на платени, готови услуги: това е по-евтино, по-добро за поверителност и ви дава пълен контрол над сървъра. Една от най-ефективните опции за региони с агресивно блокиране на мрежата е AmneziaWG, протокол, разработен от проекта Amnezia на базата на WireGuard.

Класическият WireGuard е бърз и надежден, но има фиксирана структура на пакетите и предвидимо ръкостискане, което DPI (Deep Packet Inspection) системите могат надеждно да отпечатат и блокират. 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 в полето Host Name (Име на хост), задайте порт на 22 и влезте като root, използвайки паролата, която вашият VPS доставчик ви е изпратил по имейл.

IP адрес на сървъра: вашият IP адрес

влезте като: root

Парола: вашата парола

1. Отворете PuTTY, въведете IP адреса на вашия VPS в полето „Име на хост“.  

Прозорец за конфигурация на PuTTY по подразбиране, преди да бъдат въведени каквито и да е данни за връзката.

2. Задайте порта на 22. 

Сесията се попълни с IP адреса на VPS и порт 22, като запазената сесия „Моят VPS“ е избрана и готова за натискане на „Отваряне“.

3. Влезте като root. 

Нов прозорец на PuTTY терминал, отварящ SSH сесията и подканващ за потребителско име за вход.

4. Използвайки паролата, която вашият VPS доставчик ви е изпратил по имейл.

След като въведете root, PuTTY ще ви поиска паролата за акаунта.

Резултатът трябва да бъде както следва:

Успешно влизане: банерът със съобщението на деня в Debian, последван от root shell prompt-а (root@copywr:~#).

За подробно ръководство за свързване чрез 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
Apt upgrade изтегля нов пакет с ядрото (linux-image-6.1.0-52-amd64) по време на системната актуализация. Завършване на надстройката на Apt: initramfs се регенерира и засегнатите услуги се рестартират.

Активиране на пренасочване на IP

Тази настройка позволява на сървъра да препраща пакетите на клиентите към интернет - без нея тунелът ще се появи, но трафикът няма да преминава през него.

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system

Първата команда създава специален конфигурационен файл; втората го прилага без рестартиране на сървъра.

sysctl --система прилага всеки конфигурационен файл sysctl.d, потвърждавайки, че net.ipv4.ip_forward = 1 вече е активен.

Конфигуриране на защитната стена (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.

Състояние на Ufw, потвърждаващо, че 22/tcp и 42666/udp са разрешени както за IPv4, така и за IPv6, с активна защитна стена.

Инсталиране на 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
Изход от командата Apt install -y amneziawg: DKMS изгражда модула на ядрото amneziawg спрямо работещото ядро ​​и завършва инсталирането.

Проверете заредения модул

modprobe amneziawg
lsmod | grep amnezia
Изпълнете командата Modprobe amneziawg, последвана от lsmod, потвърждавайки, че модулът amneziawg и неговите зависимости (curve25519, chacha20poly1305 и др.) са заредени.

Генериране на конфигурация на сървър и клиент

Инсталиране на помощни програми

Инсталирайте зависимостта 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 по подразбиране). Не стартирайте и двете инсталации — изберете една.

Awgcfg.py е неофициален скрипт на общността на трета страна (от потребителя на GitHub „remittor“), а не официален инструмент на проекта Amnezia. URL адресът по-горе сочи към суровото съдържание на gist без хеш на редакция, така че винаги изтегля това, което авторът е публикувал последно — тиха актуализация (или изтриването на gist) може да наруши вашата система без предупреждение. Където е възможно, закачете го към конкретна редакция: отворете историята на редакциите на gist, копирайте хеша на commit-а за версията, която сте тествали, и използвайте URL от формата на това ръководство. 

Генериране на конфигурацията на сървъра

Създайте /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).

Awgcfg.py --make създаване на /etc/amnezia/amneziawg/awg0.conf и откриване на основния мрежов интерфейс на сървъра (ens3).

Създаване на шаблона за конфигурация на клиента

python3 awgcfg.py --create

Това запазва шаблон в същата папка, от която се изграждат отделните клиентски конфигурации — той вече включва публичния ключ на сървъра, неговия IP адрес и параметрите за обфускация (Jc, Jmin, Jmax, S1, S2, H1–H4), които отличават AmneziaWG от обикновения WireGuard.

Awgcfg.py --create записва _defclient.config, шаблонът, от който ще се генерират новите клиентски конфигурации.

Добавяне на клиенти

Създайте по един запис за всяко устройство — името може да бъде всяко, например името на устройството:

python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Awgcfg.py - регистрира клиентите „лаптоп“ и „телефон“, като всеки от тях има свой собствен IP адрес на тунела (10.10.8.2/32 и 10.10.8.3/32).

Генериране на клиентски файлове и QR кодове

python3 awgcfg.py -c -q

Папката ~/awg вече ще съдържа файлове като laptop.conf и phone.conf, както и съответстващи PNG QR кодове, които можете да сканирате директно в мобилно приложение.

Този скрипт от общността има известна особеност: изпълнението му може да изтрие други .init/state файлове, които може да сте поставили в същата папка. Дръжте ~/awg посветено само на файловете на AmneziaWG и архивирайте сървърните ключове ([Interface] PrivateKey в awg0.conf) другаде, преди да генерирате отново конфигурациите.
Съдържание на генерирания laptop.conf: адресът на клиента, DNS, параметрите за обфускация и секцията [Peer], сочеща обратно към сървъра.

Папката ~/awg вече ще съдържа файлове като laptop.conf и phone.conf, както и съответстващи PNG QR кодове, които можете да сканирате директно в мобилно приложение.

Този скрипт на общността има известна особеност: изпълнението му може да изтрие други .init/state файлове, които може да сте поставили в същата папка. Дръжте ~/awg посветена само на файловете на AmneziaWG и архивирайте сървърните ключове ([Interface] PrivateKey в awg0.conf) другаде, преди да генерирате отново конфигурациите.

Стартиране на услугата и активиране на автоматичното стартиране

Отворете интерфейса awg0 и го активирайте да се стартира автоматично при рестартиране:

systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]

Състоянието трябва да показва „активен“ (излязъл), като устройството е активирано при зареждане. Ако конзолата изглежда „зависва“, показвайки лог файлове, натиснете Q, за да излезете.

Състояние на Systemctl, потвърждаващо, че awg-quick@awg0.service е активен (излязъл) и активиран, с командите за настройка на ip/iptables на интерфейса в лога.

Проверете списъка с активни пиъри и трафика на пиър с:

awg show
Awg показва списък с параметрите за обфускация на интерфейса awg0 и неговите два конфигурирани пиъра (лаптоп и телефон), всеки със свой разрешен IP адрес.

Свързване от 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 на вашия компютър, а не на сървъра:

Празен команден ред на Windows PowerShell на клиентския компютър, готов за изпълнение на командата scp по-долу.
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

В приложението AmneziaWG щракнете върху „Импортиране на тунели от файл“, изберете laptop.conf и включете превключвателя до новия тунел.

Свързване от macOS

Всичко тук се случва на вашия Mac, не през SSH. Редът scp по-долу се въвежда в собствения терминал на Mac, като се изтегля конфигурацията, която сървърът вече е генерирал в Раздел 4 — тя не се изпълнява във вашата root SSH сесия на VPS.

Съществуват две поддържани опции:

  • 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, т.е. отделна SSH сесия (или локална обвивка) на тази машина — не root SSH сесията на VPS от Раздел 1. Командите изглеждат идентични с тези от страна на сървъра, защото един и същ пакет amneziawg-tools се използва и от двата края, но изпълнението им тук инсталира и стартира клиентски тунел на вашата собствена машина, а не на сървъра.

На настолен компютър или лаптоп с Linux имате две възможности:

  • GUI: инсталирайте пълния десктоп клиент на 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 на сървъра и потвърдете, че партньорската връзка на клиента показва скорошно ръкостискане и ненулев трафик.

справка:

Област

Стойност

Адрес

ВАШИЯТ_IP_НА_ТУНЕЛА (адресът на клиента в тунела, например 10.10.8.2/32 — задава се автоматично при добавяне на клиента в стъпка 4.4)

Endpoint

ВАШИЯТ_IP_АДРЕС_НА_СЪРВЪРА:42666 (Външният IP адрес на сървъра и UDP портът, към който се свързва клиентът.)

DNS

8.8.8.8

Jc / Jmin / Jmax

брой и размер на „нежелани“ пакети, изпратени преди ръкостискането — може да се различава между сървъра и клиента, без да се прекъсва връзката

S1 / S2

размерът на полетата за допълване при ръкостискане — трябва да съвпада байт по байт между сървъра и всеки клиент

H1 – H4

заглавките от тип пакети, които маскират протокола като обикновен трафик — също трябва да съвпадат точно и да са уникални един от друг

Само S1/S2 и H1–H4 трябва да са идентични в двата края на тунела; Jc, Jmin и Jmax са чисто и просто за това как всяка страна добавя собствен изходящ нежелан трафик, така че стойностите на клиента и сървъра могат легитимно да се различават, както е в горния пример.

Заключение

Следването на това ръководство оставя вашия 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 status [имейл защитен])
  • правилата на защитната стена (състояние на ufw — порт 42666/udp трябва да е отворен)
  • състоянието на DKMS/модула, ако интерфейсът дори не стартира (dkms status, lsmod | grep amnezia)
  • списъкът с активни пиъри на сървъра (awg show)
  • че конфигурацията на клиента сочи към правилния IP адрес на външен сървър

Сравнявате AmneziaWG с други опции, преди да се ангажирате? Вижте Настройка на VPN сървър на Linux: PPTP или OpenVPN? и Как да настроите Wireguard VPN на вашия сървър . Ако имате нужда само от обикновен прокси, а не от пълен VPN тунел, конфигурацията на 3proxy на CentOS/ArchLinux е по-лека алтернатива. За общо втвърдяване на сървъра, след като VPN е активен, вижте Потребители на Linux: Управление и разрешения.

❮ Предишна статия Настройка на Hysteria2 и TUIC
Следваща статия ❯ Ръководство за Xray VLESS Reality: VPS, Windows, Mac, Android, iPhone

Попитайте ни за VPS

Винаги сме готови да отговорим на вашите въпроси по всяко време на деня и нощта.