Tobora ko'proq odamlar pullik, tayyor xizmatlarga tayanish o'rniga o'zlarining VPN-laridan foydalanmoqdalar: bu arzonroq, maxfiylik uchun yaxshiroq va sizga serverni to'liq boshqarish imkonini beradi. Tarmoqni agressiv blokirovka qiladigan mintaqalar uchun eng samarali variantlardan biri bu AmneziaWG protokoli bo'lib, u WireGuard ustida Amnezia loyihasi tomonidan ishlab chiqilgan.
Classic WireGuard tezkor va ishonchli, ammo u qat'iy paket tuzilishiga va oldindan aytib bo'ladigan qo'l siqishiga ega, bu DPI (Deep Packet Inspection) tizimlari ishonchli tarzda barmoq izlari va blokirovkalarini amalga oshirishi mumkin. AmneziaWG bu muammoni hal qiladi: u oddiy WireGuard ulanishiga keraksiz paketlarni qo'shadi, sarlavhalarni tasodifiy tartibga soladi va qo'l siqish maydonlarining hajmini o'zgartiradi - shuning uchun WireGuardning xarakterli imzosi yo'qoladi va trafik endi oddiy UDP trafikidan ajralib turmaydi.
Klassik tunnelni allaqachon ishga tushirgansiz va uni almashtirishga arziydimi, deb o'ylaysizmi? Buni Linuxdagi VPN server sozlamalaridagi oddiy OpenVPN/PPTP sozlamalari bilan solishtiring: PPTP yoki OpenVPN? yoki serveringizda Wireguard VPN ni qanday sozlash bo'limidagi oddiy WireGuard (noaniqliksiz) bilan solishtiring.
Ushbu qo'llanma AmneziaWG serverini Docker yoki veb-panelsiz qo'lda o'rnatadi — bu VPSning o'zida mumkin bo'lgan eng kichik iz bo'lib, butunlay buyruq satridan sozlangan. Bu eng yengil variant va byudjetli VPSda yaxshi ishlaydi, chunki unga GUI, ma'lumotlar bazasi va teskari proksi kerak emas. Quyidagi misol serveri joy egallovchi IP-manzildan foydalanadi — uni paydo bo'lgan joyda o'zingizning VPS manzilingiz bilan almashtiring.
Sizga kerak bo'ladigan narsalar: Ubuntu 22.04/24.04 yoki Debian 11/12 da ishlaydigan VPS, root kirish huquqi va VPS IP-manzili. Domen nomi talab qilinmaydi — AmneziaWG sertifikatlardan foydalanmaydi, shuning uchun yangilash uchun hech narsa yo'q va DPI uchun TLS qo'l siqish sifatida belgilanishi uchun hech narsa yo'q.
Hali serveringiz yo'qmi? Serverga qanday buyurtma berishni ko'ring.
Serverga ulanish
Windows (PuTTY)
PuTTY-ni oching, Xost nomi maydoniga VPS IP-manzilingizni kiriting, portni 22 ga o'rnating va VPS provayderingiz sizga elektron pochta orqali yuborgan paroldan foydalanib root sifatida tizimga kiring.
Server IP-manzili: sizning IP-manzilingiz
root sifatida kirish
Parol: sizning parolingiz
1. PuTTY-ni oching, VPS IP-manzilingizni Xost nomi maydoniga kiriting.
2. Portni 22 ga o'rnating.
3. Root sifatida tizimga kirishni kiriting.
4. VPS provayderingiz sizga elektron pochta orqali yuborgan paroldan foydalanish.
Natija quyidagicha bo'lishi kerak:
PuTTY/SSH orqali ulanishning batafsil ko'rinishi uchun SSH orqali Linux serveriga qanday ulanish mumkinligiga qarang.
Linux / macOS (terminal)
ssh root@YOUR_SERVER_IP
Quyidagi barcha buyruqlar serverda, xuddi shu SSH sessiyasida bajariladi — bu 2 dan 5 gacha bo'limlarni, shuningdek, 9-bo'limdagi server tomonidagi tekshiruvlarni qamrab oladi. 6–8-bo'limlar (VPN mijozini o'rnatish va sozlash) sizning Windows/macOS/Linux qurilmangizda amalga oshiriladi, chunki VPN aynan shu qurilmada ishlashi kerak; ushbu bo'limlarning har biri serverga qaysi satrlar, agar mavjud bo'lsa, hali ham tegishli ekanligini aniq aytadi.
Serverni tayyorlash
Tizimni yangilang
Biror narsani o'rnatishdan oldin, paketlar ro'yxatini yangilang va o'rnatilgan paketlarni yangilang:
apt update -y && apt upgrade -y
Agar bu yadroni yangilasa, 3-bo'limda AmneziaWG yadro modulini yaratishdan oldin qayta ishga tushiring, aks holda DKMS noto'g'ri yadro sarlavhalariga qarshi tuzilishi mumkin va modul yuklanmaydi. (APT va Linux paket menejerlari qanday ishlashi haqida ma'lumot olish uchun Linux paket menejerlariga qarang .) Quyidagilar bilan tekshiring:
cat /var/run/reboot-required
IP yo'naltirishni yoqish
Ushbu sozlama serverga mijozlar paketlarini internetga yo'naltirish imkonini beradi — bu sozlamasiz tunnel paydo bo'ladi, lekin u orqali hech qanday trafik o'tmaydi.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Birinchi buyruq maxsus konfiguratsiya faylini yaratadi; ikkinchisi uni serverni qayta yoqmasdan qo'llaydi.
Xavfsizlik devorini (UFW) sozlash
UFW qoidalari haqida ko'proq ma'lumot olish uchun Linuxda xavfsizlik devorini sozlash bo'limiga qarang.
Sizga kerak bo'lgan ikkita portni oching: SSH uchun 22/tcp (ushbu qoidani o'tkazib yuboring, aks holda serverga kirishni yo'qotish xavfi tug'iladi) va 42666/udp, AmneziaWG porti tinglaydi.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Ikkala qoida ham ufw holati chiqishida ALLOW sifatida ko'rsatilishi kerak.
AmneziaWG ni o'rnatish
Debian Ubuntu uslubidagi PPAlarni to'g'ridan-to'g'ri qo'llab-quvvatlamaydi, shuning uchun omborni add-apt-repository yordamida emas, balki qo'lda qo'shish kerak. Bu Ubuntuda xuddi shunday ishlaydi.
Repozitoriyani qo'lda qo'shish
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
GPG imzo kalitini qo'shing
Eskirgan apt-key buyrug'i o'rniga dearmored keyring faylidan foydalaning va PPA ning haqiqiy imzo kalitini (barmoq izi 75C9DD72C799870E310542E24166F2C257290828) oling:
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
Yangilash va o'rnatish
apt update
apt install -y amneziawg
Modul yuklanganligini tekshiring
modprobe amneziawg
lsmod | grep amnezia
Server va mijoz konfiguratsiyasini yaratish
Yordamchi dasturlarni o'rnating
Qrcode qaramligini o'rnating, so'ngra maxsus ishchi katalog yarating va unga community config-generator skriptini yuklab oling:
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Agar python3-qrcode sizning distro omborlaringizda mavjud bo'lmasa, pip3 install qrcode --break-system-packages ga qayting (bayroq Debian 12+/Ubuntu 24.04 da talab qilinadi, u boshqarilmaydigan pip o'rnatmalarini sukut bo'yicha bloklaydi). Ikkala o'rnatishni ham ishga tushirmang - bittasini tanlang.
Server konfiguratsiyasini yarating
/etc/amnezia/amneziawg/awg0.conf faylini yarating. Siz tunnelning ichki tarmoq qismi va UDP portini standart sozlamalarida qoldirishingiz yoki o'zingiznikini o'rnatishingiz mumkin:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
-i bayrog'i tunnelning ichki tarmoq manzili va niqobini o'rnatadi; -p serverning UDP portini o'rnatadi (2.3-bosqichda ochilgani bilan bir xil).
Mijoz konfiguratsiyasi shablonini yarating
python3 awgcfg.py --create
Bu shablonni individual mijoz konfiguratsiyalari yaratilgan papkada saqlaydi — u allaqachon serverning ochiq kalitini, uning IP-manzilini va AmneziaWG ni oddiy WireGuard dan ajratib turadigan obfuskatsiya parametrlarini (Jc, Jmin, Jmax, S1, S2, H1–H4) o'z ichiga oladi.
Mijozlarni qo'shish
Har bir qurilma uchun bitta yozuv yarating — nom istalgan narsa bo'lishi mumkin, masalan, qurilma nomi:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Mijoz fayllari va QR kodlarini yarating
python3 awgcfg.py -c -q
~/awg papkasida endi laptop.conf va phone.conf kabi fayllar, shuningdek, to'g'ridan-to'g'ri mobil ilovaga skanerlashingiz mumkin bo'lgan mos keladigan PNG QR kodlari bo'ladi.
~/awg papkasida endi laptop.conf va phone.conf kabi fayllar, shuningdek, to'g'ridan-to'g'ri mobil ilovaga skanerlashingiz mumkin bo'lgan mos keladigan PNG QR kodlari bo'ladi.
Xizmatni ishga tushirish va avtomatik ishga tushirishni yoqish
awg0 interfeysini ishga tushiring va uni qayta ishga tushirishda avtomatik ravishda ishga tushirishni yoqing:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Qurilma yuklash paytida yoqilgan bo'lsa, holat faol (chiqilgan) ko'rinishi kerak. Agar konsol jurnallarni ko'rsatib "osilib" qolsa, chiqish uchun Q tugmasini bosing.
Faol tengdoshlar va tengdoshlar trafikining ro'yxatini quyidagilar bilan tekshiring:
awg show
Windows'dan ulanish
Ushbu bo'limdagi hamma narsa SSH orqali emas, balki Windows kompyuteringizda sodir bo'ladi — VPN mijozi tunneldan foydalanadigan qurilmaga o'rnatilishi kerak. Serverga ta'sir qiladigan yagona qadam 6.2 da scp yuklab olishdir va hatto bu buyruq ham kompyuteringizda yoziladi, server 4-bo'limda allaqachon yaratilgan faylni tortib oladi.
Mijozni o'rnating
AmneziaWG maxsus Windows ilovasiga ega — uning interfeysi standart WireGuard mijozini aks ettiradi, lekin u chalkashlik parametrlarini tushunadi. O'rnatuvchini loyihaning rasmiy omboridan yuklab oling:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Yuqoridagi havola saqlangan Windows mijozining versiyalari sahifasidir — u yerdan eng so'nggi .msi/.exe aktivini yuklab oling. Bu terminalga joylashtirish uchun buyruq emas, balki brauzeringizda ochish uchun sahifa.
O'rnatuvchini ishga tushiring va sozlash ustasini ko'rib chiqing; standart sozlamalarni o'zgartirish shart emas.
Konfiguratsiyani import qiling
Mijoz konfiguratsiya faylini serverdan kompyuteringizga nusxalash — eng oson yo'li scp, serverda emas, balki kompyuteringizda PowerShell da ishga tushirish:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
AmneziaWG ilovasida "Fayldan tunnel(lar)ni import qilish" tugmasini bosing, laptop.conf faylini tanlang va yangi tunnel yonidagi tugmani yoqing.
macOS dan ulanish
Qo'llab-quvvatlanadigan ikkita variant mavjud:
- AmneziaWG (Mac App Store): yengil mijoz, macOS 12 va undan keyingi versiyalarida ishlaydi. App Store’da "AmneziaWG" ni qidiring, uni o‘rnating, so‘ngra "Fayldan tunnel(lar)ni import qilish" funksiyasidan foydalaning va .conf faylingizni tanlang — Windows mijozi bilan bir xil ish jarayoni.
- AmneziaVPN (to'liq ilova, macOS 14+): agar siz faqat yengil AmneziaWG mijozi o'rniga to'liq funksiyali Amnezia ilovasidan foydalanishni istasangiz, github.com/amnezia-vpn/amnezia-client/releases/latest dan .pkg faylini yuklab oling.
Agar kerak bo'lsa, avval mijoz konfiguratsiyasini nusxalang, xuddi 6.2-bosqichdagi kabi:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Linuxdan ulanish
Linux ish stoli yoki noutbukida sizda ikkita variant mavjud:
- GUI: to'liq AmneziaVPN ish stoli mijozini github.com/amnezia-vpn/amnezia-client/releases dan o'rnating, keyin .conf faylini Windows/macOS da bo'lgani kabi import qiling.
- CLI, serverda ishlatiladigan amneziawg-vositalaridan (awg / awg-quick) foydalanib:
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Aloqani uzish uchun ushbu kodni ishga tushiring.
awg-quick down awg0
Kirish paytida tunnelni avtomatik ravishda ishga tushirish uchun uni xizmat sifatida yoqing:
systemctl enable --now awg-quick@awg0
Ulanishni tekshirish
6, 7 yoki 8-bo'limlardan boshlab tunnel faollashtirilgan holda, o'z qurilmangizga qayting (SSH sessiyasiga emas) va brauzerda "mening IP manzilim nima" tekshiruvchisini oching — ko'rsatilgan manzil VPS IP manzilingizga mos kelishi kerak. Buning o'rniga SSH sessiyasi ichidan tekshirish uchun serverda awg show buyrug'ini ishga tushiring va mijozning tengdoshi yaqinda qo'l siqish va nolga teng bo'lmagan trafikni ko'rsatganini tasdiqlang.
Reference:
|
dala |
qiymati |
|
Manzil |
YOUR_TUNNEL_IP (mijozning tunnel ichidagi manzili, masalan, 10.10.8.2/32 — 4.4-bosqichda mijoz qo'shilganda avtomatik ravishda tayinlanadi) |
|
Endpoint |
YOUR_SERVER_IP:42666 (Serverning tashqi IP-manzili va mijoz ulanadigan UDP porti.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmin / Jmax |
qo'l siqishdan oldin yuborilgan "keraksiz" paketlar soni va hajmi — ulanishni uzmasdan server va mijoz o'rtasida farq qilishi mumkin |
|
S1 / S2 |
qo'l berib ko'rishish maydonlarining hajmi — server va har bir mijoz o'rtasidagi bayt-baytga mos kelishi kerak |
|
H1-H4 |
protokolni oddiy trafik sifatida niqoblaydigan paket tipidagi sarlavhalar ham aniq mos kelishi va bir-biridan noyob bo'lishi kerak |
Faqat S1/S2 va H1–H4 tunnelning ikkala uchida ham bir xil bo'lishi kerak; Jc, Jmin va Jmax faqat har bir tomon o'zining chiquvchi trafikini qanday to'ldirishi bilan bog'liq, shuning uchun mijoz va server qiymatlari yuqoridagi misolda bo'lgani kabi, asosli ravishda farq qilishi mumkin.
Xulosa
Ushbu qo'llanmaga amal qilish VPS-ingizni o'zining AmneziaWG serverida ishlaydi: trafikni chalkashtirib yuboradigan WireGuard bilan mos keladigan protokol, uni DPI tizimlari uchun oddiy UDP trafikidan oddiy WireGuard-ga qaraganda ajratish ancha qiyin. Xizmat systemd birligi awg-quick@awg0 sifatida ishlaydi va serverni qayta ishga tushirgandan so'ng siz tomondan hech qanday harakatsiz omon qoladi.
Olingan .conf fayllari va ~/awg faylidagi QR kodlari nafaqat Windows mijozi bilan ishlaydi, balki ularni Android, iOS, macOS va Linux uchun AmneziaWG yoki Amnezia ilovalariga, shuningdek, Keenetic va OpenWrt routerlariga ham import qilish mumkin.
4.4–4.5-bosqichlarni takrorlash (python3 awgcfg.py -a "name", keyin awgcfg.py -c -q) va interfeysni systemctl restart [email protected] buyrug'i bilan qayta ishga tushirish orqali istalgan vaqtda yangi mijozlarni qo'shing.
Server ishlayotganda bir nechta odatlarga rioya qilish kerak:
- Tizimni yangilangan holda saqlang. Vaqti-vaqti bilan apt update -y va apt upgrade -y buyruqlarini qayta ishga tushiring va yadro yangilanishlaridan so'ng DKMS amneziawg modulini yangi yadroga qarshi qayta tiklashi uchun uni qayta ishga tushiring.
- Zaxira nusxasi ~/awg. U har bir mijozning shaxsiy kalitini va serverning o'z kalit juftligini awg0.conf faylida saqlaydi; uni yo'qotish har bir qurilma uchun konfiguratsiyalarni qayta yaratishni anglatadi.
- Yo'qolgan qurilmalarni tezda qaytarib oling. /etc/amnezia/amneziawg/awg0.conf faylidan mos keladigan [Peer] blokini olib tashlang va systemctl restart ni ishga tushiring. [elektron pochta bilan himoyalangan].
Agar ulanish o'rnatilmasa, tartibni tekshiring:
- xizmat holati (systemctl holati [elektron pochta bilan himoyalangan])
- xavfsizlik devori qoidalari (ufw holati — 42666/udp porti ochiq bo'lishi kerak)
- Agar interfeys ishga tushmasa ham, DKMS/modul holati (dkms holati, lsmod | grep amnezia)
- serverdagi faol tengdoshlar ro'yxati (awg shousi)
- mijoz konfiguratsiyasi to'g'ri tashqi server IP-manziliga ishora qiladi
AmneziaWG ni ishga tushirishdan oldin boshqa variantlar bilan taqqoslash? Linuxda VPN serverini sozlash: PPTP yoki OpenVPN? va serveringizda Wireguard VPN ni qanday sozlash haqida ma'lumot oling . Agar sizga to'liq VPN tunneli o'rniga oddiy proksi kerak bo'lsa, CentOS/ArchLinux da 3proxy konfiguratsiyasi yengilroq alternativa hisoblanadi. VPN ishga tushirilgandan so'ng serverni umumiy mustahkamlash uchun Linux foydalanuvchilari: boshqaruv va ruxsatnomalar bo'limiga qarang.