InternetSpeed.online

Til

Maqolalar

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.

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.

Biz Vultr Shared CPU ishlatamiz: 1 vCPU, 1 GB RAM, 25 GB SSD va oyiga 1 TB trafik.

IPv6’siz tarmoqlardan ham ulanish uchun IPv4 server tanlang. Faqat IPv6 serverdan IPv4 saytlariga kirish qo‘shimcha sozlamalarni talab qiladi; bu yerda ko‘rilmaydi.

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.

Kompyuteringizdagi PowerShell yoki Terminal — parol bilan kirish
ssh root@SERVER_IP
Kompyuteringizdagi PowerShell yoki Terminal — mavjud SSH kaliti
ssh -i ~/.ssh/id_ed25519 root@SERVER_IP
Serverda
cat /etc/os-release
exit
ssh 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.

Windows — administrator PowerShell’da SSH mijozini o‘rnatish
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Aynan nusxalang. OpenSSH.Client~~~~0.0.1.0 — Windows komponent identifikatori; tilda belgilari va raqamlarni o‘zgartirmang.

Ubuntu Desktop — SSH mijozini o‘rnatish
sudo apt update
sudo apt install openssh-client

3. O‘rnatish to‘plamini yuklab oling va ko‘ring

ZIP’ni yuklab, oching. Besh skriptni wireguard-guide papkasida birga saqlang. Quyidagi Windows, Mac yoki Ubuntu yo‘llaridan bittasini bajaring.

Skript VPS’ga WireGuard o‘rnatib, qurilma profilini yaratadi. Server paroli bir necha marta so‘ralishi mumkin.

Sozlash skriptlarini yuklab olish (.zip)

4a. Windows’dan serverni sozlash

File Explorer’da wireguard-guide papkasini oching. Manzil satriga powershell yozib Enter bosing: kerakli papkada PowerShell ochiladi.

Ikki buyruqdan birini bajaring. SERVER_IP va kerak bo‘lsa SSH kaliti yo‘lini almashtiring.

-Device’dan keyingi windows — profil nomi. Ikkinchi kompyuterga laptop kabi boshqa nom bering. Har qurilmaning alohida profili birining kirishini boshqalarni uzmasdan bekor qilish imkonini beradi.

Tugagach, File Explorer manzil satriga %USERPROFILE%\WireGuard kiriting. Server va qurilma nomli papkada windows.conf bor. Skript to‘liq yo‘lni ham chiqaradi. VPN’ni 5-qadamda yoqasiz.

PowerShell — parol orqali autentifikatsiya
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows
PowerShell — SSH kaliti orqali autentifikatsiya
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"
PowerShell skriptni bloklasa

Fayl raqamli imzolanmagan deyilsa, shu papkada ushbu buyruqni bajaring va o‘rnatishni qayta urinib ko‘ring.

PowerShell — yuklangan fayl blokini ochish
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1

Skriptlar bajarilishi o‘chirilgan deyilsa, buyruqlarni bajarib so‘rovni tasdiqlang va qayta urining. O‘zgarish PowerShell oynasi yopilguncha amal qiladi.

PowerShell — faqat shu oynada skriptlarga ruxsat
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1

Siyosat 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. mac — profil nomi; boshqa Mac uchun macbook kabi nom tanlang.

Finder’da Command+Shift+H bilan uy papkangizni oching. WireGuard va server-qurilma papkasida mac.conf bo‘ladi. Skript to‘liq yo‘lni ham ko‘rsatadi.

macOS Terminal — parol
bash ./connect-wireguard-server.sh SERVER_IP mac
macOS Terminal — SSH kaliti
bash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed25519

4c. 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. ubuntu — profil nomi. Ushbu ishga tushiruvchi skript yoki SSH uchun sudo kerak emas.

Fayl menejerida Home, WireGuard va server-qurilma papkasini oching. ubuntu.conf haqiqiy server manzili bilan ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf’da saqlanadi. Ulanish uchun NetworkManager ishlatiladi.

Ubuntu Desktop’da — parol
bash ./connect-wireguard-server.sh SERVER_IP ubuntu
Ubuntu Desktop’da — SSH kaliti
bash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed25519

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.

Rasmiy WireGuard yuklamalari

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.

ubuntu.conf ubuntu 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.

Ubuntu Desktop’da — NetworkManager’ni tekshirish
nmcli --version
systemctl is-active NetworkManager
Ubuntu Desktop’da — bir marta import va DNS sozlash
sudo nmcli connection import type wireguard file "$HOME/WireGuard/SERVER_IP-ubuntu/ubuntu.conf"
sudo nmcli connection modify ubuntu connection.autoconnect no ipv4.dns-priority -50 ipv4.dns-search "~."
Ubuntu Desktop’da — ulanish
sudo nmcli connection up ubuntu
nmcli connection show --active
Ubuntu Desktop’da — uzish
sudo nmcli connection down ubuntu

6. 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.

Serverda — iPhone profilini yaratish
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.conf
Serverda — alohida Android profilini yaratish
python3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf

iPhone uchun WireGuard — App Store

Android uchun WireGuard — Google Play

7. 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.

Ommaviy IP’ni tekshirish

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.

Test IPv6’ni ochish

DNS Leak Test’ni ochish

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.

Serverda — WireGuard’ni tekshirish
systemctl is-active wg-quick@wg0
Serverda — faol bo‘lmasa WireGuard’ni qayta ishga tushirish
systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0

Qayta 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.

Serverda — VPN ulanish holati
wg show

9. Qanday tezlik kutish mumkin?

Windows testimizda yuklab olish 350–400 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, 25 GB SSD va oyiga 1 TB trafik; yaratilgan paytda oyiga 5 AQSH dollari.

Bu shu sozlamada kuzatilgan natija. Sizdagi tezlik internet, server va joylashuvga bog‘liq. Boshqa VPS tariflari yoki provayderlar hali solishtirilmagan.

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.

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 bitta profil. Yo‘qolgan telefonning nomli peer yozuvini serverdan va qolgan profil nusxalarini o‘chiring, keyin yangi profil yarating. Faqat telefondagi faylni o‘chirish server kirishini 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.

Serverda — iPhone profilini bekor qilish
python3 /root/internetspeed-wireguard/manage-client.py remove iphone
Serverda — yangilanishlar va qayta yuklash zarurati
apt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-required
Serverda — VPN sozlamasini o‘chirish (barcha mijozlar uziladi)
bash /root/internetspeed-wireguard/remove-server.sh --confirm