InternetSpeed.online

Bahasa

Artikel

Panduan praktis

Cara Menyiapkan Server VPN WireGuard di Ubuntu dengan Skrip

Mulai dari server Ubuntu baru hingga koneksi VPN pribadi. Panduan ini menjelaskan penyiapan server, profil perangkat, dan pemeriksaan jalur lalu lintas internet.

Sudah diuji: penyiapan server, koneksi kontainer Linux, dan kecepatan Windows. Pengujian langsung di macOS, Ubuntu Desktop, iPhone, dan Android masih menunggu.

1. Pilih server dan siapkan akses

Panduan ini memasang WireGuard dari awal pada VPS Ubuntu 26.04 LTS. Siapkan alamat IPv4 publik serta kata sandi root atau kunci SSH. Pilih penyedia dan wilayah sesuai kebutuhan.

Kami menggunakan VPS Vultr Shared CPU dengan 1 vCPU, RAM 1 GB, SSD 25 GB, dan kuota lalu lintas 1 TB per bulan.

Pilih server IPv4 agar bisa terhubung dari jaringan tanpa IPv6. Server khusus IPv6 memerlukan pengaturan tambahan untuk mengakses situs khusus IPv4 dan tidak dibahas di sini.

2. Periksa akses masuk melalui SSH

Windows: buka Start, cari PowerShell, lalu buka. Mac: tekan Command+Space, ketik Terminal, lalu Enter. Ubuntu Desktop: tekan Ctrl+Alt+T.

Pada semua perintah berikut, ganti SERVER_IP dengan IPv4 publik dari panel server. Contohnya, ssh root@SERVER_IP menghubungkan Anda sebagai root.

Pilih perintah kata sandi, atau perintah kunci jika sudah memiliki kunci SSH. Ganti contoh lokasi kunci dengan lokasi milik Anda.

Saat pertama terhubung, SSH mungkin meminta persetujuan untuk mempercayai server. Pastikan alamatnya sesuai VPS yang dibuat, ketik yes, lalu Enter. Masukkan kata sandi root saat diminta; karakter tidak tampil saat diketik.

Setelah masuk, jalankan perintah server berikut untuk memeriksa Ubuntu, lalu exit untuk kembali ke komputer Anda.

PowerShell atau Terminal di komputer Anda — masuk dengan kata sandi
ssh root@SERVER_IP
PowerShell atau Terminal di komputer Anda — kunci SSH yang sudah ada
ssh -i ~/.ssh/id_ed25519 root@SERVER_IP
Di server
cat /etc/os-release
exit
Jika perintah ssh tidak ditemukan

Di Windows, buka PowerShell baru dengan Run as administrator dan jalankan perintah berikut. Setelah selesai, tutup lalu buka PowerShell biasa. Di Ubuntu, gunakan perintah Ubuntu. macOS sudah memiliki klien SSH.

Windows — pasang klien SSH melalui PowerShell administrator
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Salin persis. OpenSSH.Client~~~~0.0.1.0 adalah pengenal komponen Windows; jangan mengubah tanda tilde atau angkanya.

Ubuntu Desktop — pasang klien SSH
sudo apt update
sudo apt install openssh-client

3. Unduh dan periksa paket instalasi

Unduh dan ekstrak ZIP. Simpan kelima skrip bersama di folder wireguard-guide. Ikuti salah satu bagian Windows, Mac, atau Ubuntu di bawah.

Skrip memasang WireGuard di VPS dan membuat profil koneksi perangkat. Kata sandi server mungkin diminta beberapa kali.

Unduh skrip penyiapan (.zip)

4a. Siapkan server dari Windows

Buka folder wireguard-guide hasil ekstraksi di File Explorer. Klik bilah alamat, ketik powershell, lalu Enter untuk membuka PowerShell di folder tersebut.

Jalankan salah satu perintah berikut. Ganti SERVER_IP dengan alamat VPS. Jika memakai kunci SSH, ganti juga lokasinya.

Kata windows setelah -Device adalah nama profil perangkat. Untuk komputer Windows lain, gunakan nama berbeda, misalnya laptop. Setiap perangkat memerlukan profil sendiri agar aksesnya bisa dicabut tanpa memutus perangkat lain.

Setelah selesai, buka folder WireGuard di folder pengguna. Ketik %USERPROFILE%\WireGuard di bilah alamat File Explorer, lalu buka folder bernama server dan perangkat untuk menemukan windows.conf. Skrip juga menampilkan lokasi lengkap. Aktifkan VPN pada langkah 5.

PowerShell — autentikasi kata sandi
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows
PowerShell — autentikasi kunci SSH
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"
Jika PowerShell memblokir skrip

Jika pesan menyebut berkas unduhan tidak ditandatangani secara digital, jalankan perintah ini di folder yang sama, lalu ulangi perintah penyiapan.

PowerShell — buka blokir berkas unduhan
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1

Jika pesan menyebut eksekusi skrip dinonaktifkan, jalankan perintah berikut, setujui konfirmasi, lalu coba lagi. Perubahan berakhir saat jendela PowerShell ditutup.

PowerShell — izinkan skrip hanya di jendela ini
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1

Jika kebijakan masih menghalangi eksekusi, berhenti dan simpan pesan kesalahan untuk diagnosis.

4b. Siapkan server dari Mac

Buka Terminal. Ketik cd diikuti spasi, seret folder wireguard-guide dari Finder ke Terminal, lalu Enter.

Jalankan salah satu perintah berikut, termasuk bash di awal. Ganti SERVER_IP dan lokasi kunci jika digunakan. mac adalah nama profil; gunakan nama lain, misalnya macbook, untuk Mac berikutnya.

Setelah selesai, buka Finder dan tekan Command+Shift+H untuk membuka folder pengguna. Buka WireGuard, lalu folder server dan perangkat. Profilnya mac.conf. Skrip juga menampilkan lokasi lengkap.

Terminal macOS — autentikasi kata sandi
bash ./connect-wireguard-server.sh SERVER_IP mac
Terminal macOS — autentikasi kunci SSH
bash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed25519

4c. Siapkan server dari Ubuntu Desktop

Tekan Ctrl+Alt+T. Ketik cd diikuti spasi, seret folder wireguard-guide ke Terminal, lalu Enter.

Jalankan salah satu perintah dengan mengganti SERVER_IP. ubuntu adalah nama profil perangkat. Peluncur ini dan akses SSH tidak memerlukan sudo.

Setelah selesai, buka Home di pengelola berkas, lalu WireGuard dan folder server-perangkat. Profil ubuntu.conf tersimpan di ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf dengan alamat server sebenarnya. Panduan ini memakai NetworkManager untuk koneksi Ubuntu Desktop.

Di Ubuntu Desktop — autentikasi kata sandi
bash ./connect-wireguard-server.sh SERVER_IP ubuntu
Di Ubuntu Desktop — autentikasi kunci SSH
bash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed25519

5a. Hubungkan Windows atau macOS

Pasang aplikasi WireGuard resmi untuk sistem Anda. Impor berkas .conf buatan skrip, setujui izin VPN, lalu aktifkan koneksi. Nama pilihan impor dapat berbeda antarversi aplikasi.

Profil mengarahkan IPv4 ke VPN dan menyertakan rute bawaan IPv6 agar IPv6 tidak melewati VPN. Server ini tidak menyediakan internet IPv6. Periksa perilaku perangkat dengan langkah di bawah.

Profil berisi kunci privat. Orang yang memiliki salinannya dapat mencoba memakai identitas VPN perangkat tersebut. Jangan mengirimnya ke tiket dukungan, penghasil QR daring, atau perangkat lain.

Unduhan resmi WireGuard

5b. Hubungkan Ubuntu Desktop dengan NetworkManager

NetworkManager mengimpor profil serta mengelola DNS dan rute tanpa bergantung pada versi dialog grafis. Jalankan perintah di komputer desktop, bukan sesi SSH VPS. Pastikan nmcli tersedia dan NetworkManager berjalan.

Gunakan ubuntu.conf agar nama koneksinya ubuntu. Jika nama itu sudah ada, pilih nama perangkat lain dan sesuaikan perintah. Impor sekali saja; berikutnya gunakan up dan down. Perintah berikut mematikan koneksi otomatis saat komputer menyala.

Pengaturan DNS memprioritaskan koneksi ini untuk semua nama selama VPN aktif. DNS aman milik browser bisa berbeda. Lakukan pemeriksaan IP, DNS, dan IPv6 pada langkah 7. Cara NetworkManager ini belum diuji langsung di Ubuntu Desktop; hasil kontainer Linux tidak membuktikan perilaku DNS atau IPv6 desktop.

Jangan sekaligus mengaktifkan profil yang sama dengan wg-quick karena rutenya bisa bertabrakan. Gunakan nmcli untuk memeriksa dan memutus koneksi meskipun antarmuka desktop menampilkannya berbeda.

Di Ubuntu Desktop — periksa NetworkManager
nmcli --version
systemctl is-active NetworkManager
Di Ubuntu Desktop — impor sekali dan atur DNS
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 "~."
Di Ubuntu Desktop — hubungkan
sudo nmcli connection up ubuntu
nmcli connection show --active
Di Ubuntu Desktop — putuskan
sudo nmcli connection down ubuntu

6. Hubungkan iPhone atau Android melalui kode QR

Pasang aplikasi WireGuard resmi melalui tautan App Store atau Google Play berikut.

Di komputer, masuk lagi ke VPS dengan ssh root@SERVER_IP atau perintah kunci SSH Anda. Jalankan perintah untuk ponsel berikut untuk membuat profil dan menampilkan kode QR.

Di aplikasi WireGuard ponsel, pilih penambahan koneksi dengan pemindaian QR. Pindai kode di komputer, beri nama koneksi, setujui izin VPN, lalu aktifkan.

Gunakan profil terpisah untuk setiap ponsel. Jangan bagikan kode QR karena memberi akses ke VPN. Jika baris kode terpotong, perbesar jendela Terminal lalu tampilkan kembali.

Di server — buat profil iPhone
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.conf
Di server — buat profil Android terpisah
python3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf

WireGuard untuk iPhone — App Store

WireGuard untuk Android — Google Play

7. Periksa apakah internet melewati VPN

Sebelum mengaktifkan VPN, buka halaman My IP melalui tautan berikut dan catat alamat IP. Aktifkan WireGuard, muat ulang My IP, lalu bandingkan dengan IPv4 publik VPS.

Jika halaman terbuka dan menunjukkan alamat VPS, koneksi browser tersebut melewati VPN. Jika alamat lama tetap muncul, lihat pemecahan masalah di bawah.

Ini memeriksa koneksi browser, bukan semua aplikasi atau perlindungan ketika VPN terputus. Pemeriksaan tambahan berikut mencakup DNS dan IPv6.

Periksa IP publik Anda

Opsional: periksa IPv6 dan DNS

IPv6: buka Test IPv6 sebelum terhubung dan catat apakah ada alamat IPv6. Aktifkan VPN dan ulangi. Konfigurasi IPv4 ini seharusnya tidak memiliki internet IPv6 aktif. Jika IPv6 biasa masih terlihat, lalu lintas itu melewati luar VPN. Jika sejak awal tidak ada IPv6, pengujian ini tidak menunjukkan perilaku pada jaringan yang mendukung IPv6.

DNS: saat VPN aktif, buka DNS Leak Test dan jalankan Standard test. Profil memakai DNS Cloudflare. Jika penyedia internet rumah muncul, periksa DNS perangkat. Penyedia lain juga dapat berasal dari pengaturan Secure DNS browser; itu perlu diperiksa, bukan bukti kebocoran otomatis. Hasil ini tidak menjamin perlindungan semua aplikasi.

Buka Test IPv6

Buka DNS Leak Test

8. Atasi koneksi yang tidak berfungsi

Jika My IP masih menunjukkan alamat biasa, pastikan koneksi profil di WireGuard aktif. Matikan dan nyalakan sekali, lalu muat ulang My IP.

Jika situs tidak terbuka saat VPN aktif, matikan VPN dan coba halaman yang sama. Jika tetap gagal, pulihkan internet biasa dahulu. Jika berhasil tanpa VPN, lakukan pemeriksaan berikut.

Untuk membandingkan jaringan, hubungkan komputer ke hotspot ponsel dan coba VPN. Di ponsel, matikan Wi-Fi dan gunakan data seluler. Ini perbandingan sementara; biaya seluler mungkin berlaku. Jika hanya berhasil lewat hotspot atau seluler, masalah terkait koneksi Wi-Fi itu, tetapi penyebab pastinya belum diketahui.

Jika penyiapan berhenti dengan kesalahan, simpan pesan terakhir. Setelah penyebab diperbaiki, jalankan kembali perintah dengan nama perangkat yang sama. Skrip mempertahankan profil yang ada.

Periksa apakah server VPN berjalan

Masuk melalui SSH seperti langkah 2 dan jalankan perintah berikut. Hasilnya seharusnya active. Jika inactive atau failed, jalankan perintah mulai ulang dan periksa lagi. Jika belum active, simpan pesan kesalahan.

Di server — periksa WireGuard
systemctl is-active wg-quick@wg0
Di server — mulai ulang WireGuard jika tidak aktif
systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0

Mulai ulang akan memutus perangkat yang terhubung untuk sementara.

Periksa apakah perangkat mencapai server

Aktifkan VPN dan coba My IP. Jalankan wg show di server. Cari latest handshake pada perangkat: 10 seconds ago berarti koneksi terenkripsi terbentuk baru-baru ini. Jika baris itu tidak ada, belum tercatat koneksi berhasil untuk perangkat tersebut.

Jika koneksi terbaru tidak muncul, periksa Endpoint di profil WireGuard: alamat VPS diikuti :51820. Buka Firewall atau Security groups di panel VPS. Jika ada aturan firewall untuk VPS ini, izinkan UDP masuk pada port 51820. Tampilan bergantung penyedia; firewall di dalam Ubuntu sudah diatur skrip.

Jika handshake terbaru ada tetapi situs masih gagal, simpan hasil dan log atau kesalahan aplikasi untuk diagnosis. Mengubah pengaturan jaringan lanjutan secara acak bisa menyulitkan pemeriksaan.

Di server — tampilkan status koneksi VPN
wg show

9. Berapa kecepatan yang bisa diharapkan?

Dalam pengujian Windows, unduhan sekitar 350–400 Mbps dan unggahan 450–500 Mbps, dengan metode yang sama seperti VPN lain dalam proyek. Jalurnya: pengguna di San Diego → server VPN di San Francisco Bay Area → server pengukuran di Seattle.

VPN memakai Vultr Shared CPU vc2-1c-1gb: 1 vCPU, RAM 1 GB, SSD 25 GB, lalu lintas 1 TB per bulan, seharga US$5 per bulan saat dipesan.

Ini hasil konfigurasi tersebut. Kecepatan Anda bergantung pada koneksi internet, server, dan lokasi. Paket VPS atau penyedia lain belum dibandingkan.

10. Biaya, privasi, dan batas penyedia

VPN pribadi memberi kendali konfigurasi dan satu lokasi keluar pilihan. Anda bertanggung jawab atas pembaruan keamanan, tagihan, akses perangkat, dan pemulihan. Aktivitas tidak menjadi anonim bagi penyedia hosting; HTTPS tetap diperlukan.

Pemakaian VPN menghabiskan kuota VPS: menjelajah, video, unduh, unggah, dan tes kecepatan. Periksa sisa kuota di panel hosting. Kelebihan dapat menimbulkan biaya atau pembatasan sesuai paket.

Sebelum memakai P2P, baca ketentuan penyedia dan hukum yang berlaku. Protokol dan hak atas konten adalah hal berbeda. Unduh dan bagikan hanya konten yang Anda berhak gunakan; tidak semua host mengizinkan semua penggunaan P2P.

IP pusat data bisa menghadapi CAPTCHA, pembatasan layanan, atau blokir streaming. WireGuard biasa tidak menjamin akses dari semua jaringan yang disaring. Satu VPS juga berarti satu titik kegagalan tanpa kumpulan lokasi dan server pengganti penyedia besar.

11. Tambah perangkat, cabut akses, dan rawat server

Gunakan satu profil per perangkat. Untuk ponsel hilang, hapus peer bernama tersebut di server dan salinan profil yang masih ada. Buat profil baru untuk penggantinya. Menghapus berkas di ponsel saja tidak mencabut akses di server.

Perbarui keamanan Ubuntu dan periksa kebutuhan mulai ulang. Mulai ulang pada waktu yang sesuai dan pastikan VPN kembali berfungsi. Lindungi akun hosting dan SSH; ubah autentikasi SSH secara terpisah dengan cara masuk alternatif yang telah diuji.

Skrip penghapusan menghentikan VPN ini dan menghapus konfigurasi serta aturan firewall yang dikelolanya. SSH, UFW, dan paket terpasang tetap ada. Penerusan lalu lintas tetap aktif sampai kebijakan sistem diterapkan saat mulai ulang. Penghapusan VPN tidak menghentikan tagihan VPS: simpan data yang diperlukan, lalu hapus instance melalui penyedia jika tidak digunakan lagi.

Di server — cabut profil iPhone
python3 /root/internetspeed-wireguard/manage-client.py remove iphone
Di server — periksa pembaruan dan kebutuhan mulai ulang
apt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-required
Di server — hapus konfigurasi VPN ini (semua klien terputus)
bash /root/internetspeed-wireguard/remove-server.sh --confirm