Amaliy qo‘llanma
Ubuntu’da skript yordamida WireGuard VPN serverini sozlash
Yangi Ubuntu serveridan shaxsiy VPN ulanishigacha: serverni sozlash, qurilma profillari va internet trafikining tunnel orqali o‘tishini tekshirish.
Server sozlamasi, Linux konteyneridagi ulanish va Windows tezligi tekshirildi. macOS, Ubuntu Desktop, iPhone va Android qurilmalaridagi tekshiruvlar hali yakunlanmagan.
Bu sozlama qachon mos keladi?
O‘zingiz tanlagan server orqali internetga chiqadigan shaxsiy VPN kerak bo‘lsa va tarmog‘ingiz WireGuard ulanishlariga ruxsat bersa, bu usul mos keladi. Provayder, server joylashuvi va ulanadigan qurilmalarni o‘zingiz tanlaysiz.
Tarmoq VPN’ni bloklasa, oddiy WireGuard mos kelmasligi mumkin. U ulanishni oddiy veb-trafik sifatida yashirmaydi. Hatto to‘g‘ri sozlangan serverga ham internet provayderingiz orqali ulana olmasligingiz mumkin. VPS uchun to‘lashdan oldin buni hisobga oling.
VPN bloklanadigan tarmoqlar uchun AmneziaWG yoki VLESS va REALITY bilan Xray’ni ko‘rib chiqing. AmneziaVPN ularni o‘z serveringizga sozlashni qo‘llaydi. Ular aniqlash va bloklashga qarshi yaratilgan, ammo har bir tarmoqdan ulanishni kafolatlamaydi.
1. Server tanlang va kirishni tayyorlang
Qo‘llanma Ubuntu 26.04 LTS VPS’da noldan o‘rnatish uchun. Ommaviy IPv4 manzili hamda root paroli yoki SSH kaliti kerak. Provayder va hududni ehtiyojingizga qarab tanlang.
Qo‘llanmada 1 vCPU va 1 GB RAM’li VPS ishlatiladi.
IPv6’siz tarmoqlardan ham ulanish uchun IPv4 server tanlang. Faqat IPv6 serverdan IPv4 saytlariga kirish qo‘shimcha sozlamalarni talab qiladi; bu yerda ko‘rilmaydi.
Server xavfsizligi: qo‘llanma VPN o‘rnatishni qamraydi, VPS’ning to‘liq himoyasi va xizmatini emas. Skript SSH va WireGuard uchun xavfsizlik devorini sozlaydi. Xavfsizlik yangilanishlari va kirishni himoyalash sizning mas’uliyatingiz. SSH kalitidan foydalaning, hosting hisobida ikki bosqichli tasdiqlashni yoqing va VPN profillarini parol kabi saqlang. Faqat kalit bilan kirish ishlashini tekshirgach SSH parol bilan kirishni o‘chiring.
2. SSH orqali kirishni tekshiring
Windows: Start’da PowerShell topib oching. Mac: Command+Space, Terminal deb yozing va Enter. Ubuntu Desktop: Ctrl+Alt+T.
Barcha buyruqlarda SERVER_IP o‘rniga server panelidagi ommaviy IPv4’ni yozing. ssh root@SERVER_IP serverga root sifatida kiradi.
Parolli buyruqni yoki mavjud SSH kaliti buyrug‘ini tanlang. Kalitning namuna yo‘lini o‘zingiznikiga almashtiring.
Birinchi ulanishda SSH ishonchni tasdiqlashni so‘rashi mumkin. VPS manzilini tekshiring, yes yozib Enter bosing. So‘ralganda root parolini kiriting; yozilgan belgilar ko‘rinmaydi.
Kirganingizdan so‘ng Ubuntu’ni tekshirish buyrug‘ini bajaring, exit bilan kompyuteringizga qayting.
ssh root@SERVER_IPssh -i ~/.ssh/id_ed25519 root@SERVER_IPcat /etc/os-release
exitssh buyrug‘i topilmasa
Windows’da PowerShell’ni Run as administrator bilan ochib quyidagi buyruqni bajaring. So‘ng yoping va oddiy PowerShell oching. Ubuntu’da Ubuntu buyrug‘idan foydalaning. macOS’da SSH mijozi bor.
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0Aynan nusxalang. OpenSSH.Client~~~~0.0.1.0 — Windows komponent identifikatori; tilda belgilari va raqamlarni o‘zgartirmang.
sudo apt update
sudo apt install openssh-client3. O‘rnatish to‘plamini yuklab oling va ko‘ring
ZIP’ni yuklab, oching. Barcha skriptni wireguard-guide papkasida birga saqlang. Quyidagi Windows, Mac yoki Ubuntu yo‘llaridan bittasini bajaring.
Skript VPS’ga WireGuard o‘rnatib, VPN profilini kompyuterga saqlaydi. Butun sozlash bitta SSH ulanishidan foydalanadi. Parol bilan kirishda har bir muvaffaqiyatli ishga tushirishda parol bir marta so‘raladi va skript uni saqlamaydi.
Profil nomi 1–15 ta katta yoki kichik lotin harfi, raqam va defisdan iborat bo‘lishi mumkin; harf bilan boshlansin. Bo‘sh joy mumkin emas. Misollar: my-wg-vpn, my-laptop, my-phone. Nom berilmasa, skript so‘raydi; Enter my-wg-vpn’ni tanlaydi. Noto‘g‘ri nom qayta so‘raladi. Har bir qo‘shimcha qurilmaga boshqa nom bering.
Mavjud profilni yuklab olish uchun skriptni ishga tushiring, 2 (Manage existing server) ni tanlab ulaning, keyin 9 (Download profile) ni tanlang. Ro‘yxatdan nom kiriting; bo‘sh holda Enter bekor qiladi. Yuklab olish bir xil SSH ulanishidan foydalanadi va server parolini qayta so‘ramaydi. Muvaffaqiyatli yuklab olish bir xil nomli mahalliy faylni almashtiradi.
4a. Windows’dan serverni sozlash
File Explorer’da wireguard-guide papkasini oching. Manzil satriga powershell yozib Enter bosing: kerakli papkada PowerShell ochiladi.
Quyidagi buyruqlardan birini bajaring. SERVER_IP va kerak bo‘lsa SSH kaliti yo‘lini almashtiring.
1 (Set up server) ni tanlang, server IP manzili va profil nomini kiriting, keyin SSH kaliti yo‘lini kiriting yoki Enter bosing. Enter tavsiya etilgan nomni saqlaydi. Xulosani tekshirib, davom etish uchun yes/y yozing; Bekor qilish uchun no yozing. 3 ta tushunarsiz javobdan so‘ng skript yopiladi. O‘rnatish jarayoni ko‘rsatiladi. Enter bosib ham davom etish mumkin.
Profil uy papkangizdagi WireGuard/SERVER_IP/my-wg-vpn.conf manziliga saqlanadi. Skript to‘liq yo‘lni ko‘rsatadi.
.\Connect-WireGuardServer.ps1.\Connect-WireGuardServer.ps1 -Server SERVER_IP -ProfileName my-wg-vpn.\Connect-WireGuardServer.ps1 -Server SERVER_IP -ProfileName my-wg-vpn -IdentityFile "$HOME\.ssh\id_ed25519"PowerShell skriptni bloklasa
Fayl raqamli imzolanmagan deyilsa, shu papkada ushbu buyruqni bajaring va o‘rnatishni qayta urinib ko‘ring.
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1, .\ManagementClient.ps1Skriptlar bajarilishi o‘chirilgan deyilsa, buyruqlarni bajarib so‘rovni tasdiqlang va qayta urining. O‘zgarish PowerShell oynasi yopilguncha amal qiladi.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1, .\ManagementClient.ps1Siyosat xatosi qolsa, to‘xtang va xabarni tashxis uchun saqlang.
4b. Mac’dan serverni sozlash
Terminal’ni oching. cd va bo‘sh joy yozib, wireguard-guide papkasini Finder’dan Terminal’ga torting va Enter bosing.
Boshlanishidagi bash bilan birga buyruqni bajaring. SERVER_IP va kalit yo‘lini almashtiring. my-wg-vpn — profil nomi; boshqa Mac uchun macbook kabi nom tanlang.
Profil uy papkangizdagi WireGuard/SERVER_IP/my-wg-vpn.conf manziliga saqlanadi. Skript to‘liq yo‘lni ko‘rsatadi.
1 (Set up server) ni tanlang, server IP manzili va profil nomini kiriting, keyin SSH kaliti yo‘lini kiriting yoki Enter bosing. Enter tavsiya etilgan nomni saqlaydi. Xulosani tekshirib, davom etish uchun yes/y yozing; Bekor qilish uchun no yozing. 3 ta tushunarsiz javobdan so‘ng skript yopiladi. O‘rnatish jarayoni ko‘rsatiladi. Enter bosib ham davom etish mumkin.
bash ./connect-wireguard-server.shbash ./connect-wireguard-server.sh SERVER_IP my-wg-vpnbash ./connect-wireguard-server.sh SERVER_IP my-wg-vpn 22 ~/.ssh/id_ed255194c. Ubuntu Desktop’dan serverni sozlash
Ctrl+Alt+T bosing. cd va bo‘sh joy yozing, wireguard-guide papkasini Terminal’ga tortib Enter bosing.
SERVER_IP’ni almashtirib buyruqni bajaring. my-wg-vpn — profil nomi. Ushbu ishga tushiruvchi skript yoki SSH uchun sudo kerak emas.
Profil uy papkangizdagi WireGuard/SERVER_IP/my-wg-vpn.conf manziliga saqlanadi. Skript to‘liq yo‘lni ko‘rsatadi.
1 (Set up server) ni tanlang, server IP manzili va profil nomini kiriting, keyin SSH kaliti yo‘lini kiriting yoki Enter bosing. Enter tavsiya etilgan nomni saqlaydi. Xulosani tekshirib, davom etish uchun yes/y yozing; Bekor qilish uchun no yozing. 3 ta tushunarsiz javobdan so‘ng skript yopiladi. O‘rnatish jarayoni ko‘rsatiladi. Enter bosib ham davom etish mumkin.
bash ./connect-wireguard-server.shbash ./connect-wireguard-server.sh SERVER_IP my-wg-vpnbash ./connect-wireguard-server.sh SERVER_IP my-wg-vpn 22 ~/.ssh/id_ed25519Ulanishdan oldin: VPN ishlamay qolsa nima bo‘ladi?
Full tunnel profil faol bo‘lganida odatiy internet trafikni VPN orqali yo‘naltiradi.
Kill switch VPN tashqarisidagi internet ulanishlarini bloklaydi. Uning ishlashi ilova va sozlamalarga bog‘liq: serverga yetib bo‘lmasligi, profilni qo‘lda o‘chirish va qurilmani qayta yoqish turli natijalar berishi mumkin. Qo‘llanma full-tunnel profil yaratadi, lekin barcha qurilmalarda bir xil doimiy blokni sozlamaydi. Qo‘shimcha himoyasiz profilni o‘chirish odatiy internetni qaytarishi mumkin.
Windows: rasmiy ilova skript yaratgan profil uchun kill switch’ni avtomatik yoqadi. Himoya tunnel faol paytda ishlaydi. Profilni qo‘lda o‘chirish odatiy internetni yana ochadi.
Android: telefon tizim sozlamalarida VPN va WireGuard sozlamalarini toping. VPN tashqarisidagi ulanishlarni bloklash uchun Always-on VPN hamda Block connections without VPN’ni yoqing; faqat Always-on yetarli emas. Nomlar va joylashuv telefonga qarab farqlanadi. Blok yoqilganida VPN ishlamasa, internet ham ishlamaydi.
Mac va iPhone: On-Demand belgilangan qoidalarga ko‘ra avtomatik ulanadi. Uni doimiy kill switch deb hisoblamang.
Ubuntu Desktop: quyidagi NetworkManager importi alohida kill switch yaratmaydi. Buning uchun kompyuterda qo‘shimcha xavfsizlik devori qoidalari kerak.
Serverga yetib bo‘lmasligi va VPN profil o‘chirilishi boshqa-boshqa holatlar. Profil faol qolib, server javob bermasa, trafik shunchaki to‘xtashi mumkin; bu qurilma albatta VPN tashqarisiga o‘tdi degani emas.
5a. Windows yoki macOS’ni ulash
Rasmiy WireGuard ilovasini o‘rnating. Yaratilgan .conf faylni import qiling, VPN ruxsatini tasdiqlab tunnelni yoqing. Import tugmasi nomi versiyaga qarab farqlanishi mumkin.
Profil IPv4’ni tunnelga yo‘naltiradi va IPv6 chetlab o‘tmasligi uchun standart IPv6 yo‘lini qo‘shadi. Server IPv6 internet bermaydi. Qurilmadagi natijani quyida tekshiring.
Profil maxfiy kalit saqlaydi. Nusxasi bor kishi qurilmaning VPN identifikatoridan foydalanishga urinishi mumkin. Uni yordam so‘rovlariga yoki onlayn QR yaratuvchilarga yuklamang, qurilmalar o‘rtasida ulashmang.
5b. Ubuntu Desktop’ni NetworkManager bilan ulash
NetworkManager profilni import qilib, DNS va yo‘llarni boshqaradi; grafik dialog versiyasiga bog‘liq emas. Buyruqlarni VPS SSH seansida emas, kompyuteringizda bajaring. Avval nmcli borligini va NetworkManager ishlayotganini tekshiring.
my-wg-vpn.conf my-wg-vpn nomli ulanish yaratadi. Nom band bo‘lsa, boshqa qurilma nomini tanlab buyruqlarni moslang. Bir marta import qiling; keyin up va down ishlating. Quyidagi sozlama kompyuter yoqilganda avtomatik VPN’ni o‘chiradi.
DNS sozlamasi VPN faol paytda barcha nomlar uchun uni ustun qiladi. Brauzerning xavfsiz DNS’i farqlanishi mumkin. 7-qadamdagi IP, DNS va IPv6’ni tekshiring. Bu usul haqiqiy Ubuntu Desktop’da hali tekshirilmagan; konteyner natijasi desktop DNS va IPv6’sini tasdiqlamaydi.
Shu profilni bir vaqtda wg-quick bilan yoqmang: yo‘llar to‘qnashishi mumkin. Grafik ko‘rinishdan qat’i nazar nmcli bilan tekshirib uzish mumkin.
nmcli --version
systemctl is-active NetworkManagersudo nmcli connection import type wireguard file "$HOME/WireGuard/SERVER_IP/my-wg-vpn.conf"
sudo nmcli connection modify my-wg-vpn connection.autoconnect no ipv4.dns-priority -50 ipv4.dns-search "~."sudo nmcli connection up my-wg-vpn
nmcli connection show --activesudo nmcli connection down my-wg-vpn6. iPhone yoki Android’ni QR orqali ulash
Quyidagi App Store yoki Google Play havolasidan rasmiy WireGuard ilovasini o‘rnating.
Kompyuterda ssh root@SERVER_IP yoki kalitli buyruq bilan VPS’ga qayta kiring. Telefon buyrug‘i profil yaratib QR’ni ko‘rsatadi.
Telefondagi WireGuard’da QR skanerlash orqali tunnel qo‘shishni tanlang. Kompyuterdagi kodni skanerlang, nom bering, VPN ruxsatini tasdiqlab yoqing.
Har telefonga alohida profil. QR’ni ulashmang: u VPN kirishini beradi. Kod satrlari buzilsa, Terminal oynasini kattalashtirib qayta ko‘rsating.
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.confpython3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf7. Internet VPN’dan o‘tishini tekshirish
VPN’ni yoqishdan oldin My IP havolasini ochib IP’ni yozib oling. WireGuard’ni yoqing, My IP’ni yangilang va VPS’ning ommaviy IPv4 manzili bilan solishtiring.
Sahifa ochilib VPS manzilini ko‘rsatsa, brauzer ulanishi VPN’dan o‘tmoqda. Eski manzil qolsa, muammolar bo‘limiga qarang.
Bu brauzerni tekshiradi, barcha ilovalar yoki VPN uzilgandagi himoyani emas. Qo‘shimcha tekshiruvlar DNS va IPv6 uchun.
Ixtiyoriy: IPv6 va DNS
IPv6: ulanishdan oldin Test IPv6’da manzil borligini tekshiring. VPN’ni yoqib takrorlang. Bu IPv4 sozlamasida IPv6 internet ishlamasligi kerak. Oddiy IPv6 manzilingiz ko‘rinsa, tunnelni chetlab o‘tmoqda. Avval IPv6 bo‘lmasa, test IPv6 tarmog‘idagi holatni ko‘rsatmaydi.
DNS: VPN faol paytda DNS Leak Test’da Standard test bajaring. Profil Cloudflare DNS ishlatadi. Uy provayderi ko‘rinsa, qurilma DNS’ini tekshiring. Boshqa provayder brauzer Secure DNS sozlamasidan kelishi mumkin; bu avtomatik sizib chiqish isboti emas. Natija barcha ilovalar himoyasini kafolatlamaydi.
8. Ulanish muammolarini hal qilish
My IP oddiy manzilni ko‘rsatsa, WireGuard profilini yoqilganini tekshiring. Bir marta o‘chirib yoqing va sahifani yangilang.
VPN yoqilganda saytlar ochilmasa, o‘chirib shu sahifani sinang. VPN’siz ham ochilmasa, avval oddiy internetni tuzating. Faqat VPN bilan ishlamasa, quyidagilarni tekshiring.
Solishtirish uchun kompyuterni telefon hotspot’iga ulang. Telefonda Wi-Fi’ni o‘chirib mobil internetni sinang; trafik haqi bo‘lishi mumkin. Bu vaqtinchalik test. Faqat mobil tarmoqda ishlasa, muammo shu Wi-Fi ulanishiga tegishli, lekin aniq sabab hali ma’lum emas.
O‘rnatish xato bilan to‘xtasa, oxirgi xabarni saqlang. Sababni tuzatib, o‘sha qurilma nomi bilan buyruqni takrorlang. Mavjud profil saqlanadi.
VPN server ishlayotganini tekshirish
2-qadamdagidek SSH’dan kirib buyruqni bajaring. Natija active bo‘lishi kerak. inactive yoki failed bo‘lsa, qayta ishga tushirish buyrug‘ini bajaring va tekshiring. Hali active bo‘lmasa, xatoni saqlang.
systemctl is-active wg-quick@wg0systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0Qayta ishga tushirish ulangan qurilmalarni qisqa muddatga uzadi.
Qurilma serverga yetib borishini tekshirish
VPN’ni yoqib My IP’ni oching, serverda wg show bajaring. Qurilma ostidagi latest handshake’ni toping. 10 seconds ago yaqinda shifrlangan aloqa o‘rnatilganini bildiradi. Satr yo‘q bo‘lsa, bu qurilmaning muvaffaqiyatli ulanishi qayd etilmagan.
Yangi aloqa ko‘rinmasa, profildagi Endpoint VPS manzili va :51820 ekanini tekshiring. VPS panelida Firewall yoki Security groups’ni oching. Firewall biriktirilgan bo‘lsa, kiruvchi UDP 51820’ga ruxsat kerak. Panel provayderga bog‘liq; Ubuntu firewall’ini skript sozlaydi.
Yangi handshake bor, saytlar ochilmasa, natija va ilova xatosi yoki jurnalini saqlang. Murakkab tarmoq sozlamalarini tasodifiy o‘zgartirish tashxisni qiyinlashtiradi.
wg show9. Qanday tezlik kutish mumkin?
Windows testimizda yuklab olish 450–500 Mbps, yuborish 450–500 Mbps atrofida bo‘ldi. Loyihadagi boshqa VPN’lar bilan bir xil usul ishlatildi. Yo‘l: San Diego’dagi foydalanuvchi → San Francisco Bay Area’dagi VPN → Seattle’dagi o‘lchov serveri.
Vultr Shared CPU (vc2-1c-1gb): 1 vCPU, 1 GB RAM, va oyiga 1 TB trafik; yaratilgan paytda oyiga 5 AQSH dollari.
Alohida testda oyiga 6 AQSH dollari turadigan Vultr Shared CPU Intel High Frequency (vhf-1c-1gb; 1 vCPU, 1 GB RAM) serverida yuklab olish ham, yuborish ham taxminan 550–750 Mbps bo‘ldi. Ikkala tarif ham Windows’da bir xil usul va yo‘nalishda sinovdan o‘tkazildi: San Diego → San Francisco Bay Area’dagi VPN serveri → Seattle’dagi o‘lchov serveri.
Sinovdan o‘tgan Intel High Frequency serverlarida natijalar farq qildi: ayrimlari muntazam ravishda diapazonning yuqori chegarasiga, boshqalari esa pastki chegarasiga yaqin tezlik berdi. Faqat shu tarifni tanlash 750 Mbps tezlikni kafolatlamadi.
Bu shu sozlamada kuzatilgan natija. Sizdagi tezlik internet, server va joylashuvga bog‘liq.
10. Xarajat, maxfiylik va provayder cheklovlari
Shaxsiy VPN sozlamalar va bitta chiqish hududini boshqarish imkonini beradi. Yangilanishlar, to‘lov, qurilma kirishi va tiklash sizning zimmangizda. Hosting provayderidan anonimlik bermaydi va HTTPS o‘rnini bosmaydi.
Sinov serverlari oyiga 5 va 6 AQSH dollari turdi. Narx, uskuna va trafik limiti provayder hamda hududga qarab farq qiladi. VPN obunasi bilan solishtirganda bitta VPS bitta tanlangan joyni berishini va serverni o‘zingiz saqlashingizni ham hisobga oling.
Saytlar, video, yuklab olish, yuborish va tezlik testlari VPS trafik limitini sarflaydi. Qoldiqni panelda kuzating. Limitdan oshish tarifga qarab qo‘shimcha haq yoki cheklov keltiradi.
P2P’dan oldin provayderning amaldagi shartlari va qonunlarni ko‘ring. Protokol va kontent huquqi alohida masalalar. Faqat olish va ulashishga huquqingiz bo‘lgan kontentdan foydalaning; hamma hosting barcha P2P ishlatishga ruxsat bermaydi.
Data-markaz IP’si CAPTCHA, xizmat yoki striming bloklariga uchrashi mumkin. Oddiy WireGuard barcha filtrlangan tarmoqlarda ishlashni kafolatlamaydi. Bitta VPS katta provayderning ko‘p hudud va zaxira serverlari o‘rniga bitta nosozlik nuqtasidir.
11. Qurilmalar qo‘shish, kirishni bekor qilish va xizmat ko‘rsatish
Har qurilmaga alohida profil bering. VPN profilining kirishini bekor qilish uchun VPS’ga SSH orqali kirib, quyidagi o‘chirish buyrug‘ini bajaring; iphone o‘rniga profil nomini yozing. So‘ng saqlangan fayl yoki QR nusxalarini o‘chiring. Profilni faqat qurilmadan o‘chirish serverdagi kirishni bekor qilmaydi.
Ubuntu xavfsizlik yangilanishlarini o‘rnating va qayta yuklash zaruratini tekshiring. Qulay paytda qayta yuklab VPN qaytganini ko‘ring. Hosting va SSH’ni himoyalang; SSH autentifikatsiyasini alohida, sinalgan muqobil kirish bilan o‘zgartiring.
O‘chirish skripti bu VPN’ni to‘xtatib, o‘zi boshqaradigan sozlamalar va firewall qoidalarini o‘chiradi. SSH, UFW va paketlar qoladi. Paket yo‘naltirish qayta yuklashda tizim siyosati qo‘llanguncha faol qoladi. VPN’ni o‘chirish VPS to‘lovini to‘xtatmaydi: kerakli ma’lumotni saqlab, kerakmas instansni provayder panelida o‘chiring.
python3 /root/internetspeed-wireguard/manage-client.py remove iphoneapt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-requiredBu buyruqlar yangilanishlar va qayta yuklash zaruratini ko‘rsatadi, yangilanishlarni o‘rnatmaydi. Xavfsizlik yangilanishlari va VPS himoyasini VPN o‘rnatishdan alohida sozlang.
bash /root/internetspeed-wireguard/remove-server.sh --confirm