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.
ssh root@SERVER_IPssh -i ~/.ssh/id_ed25519 root@SERVER_IPcat /etc/os-release
exitJika 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.
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0Salin persis. OpenSSH.Client~~~~0.0.1.0 adalah pengenal komponen Windows; jangan mengubah tanda tilde atau angkanya.
sudo apt update
sudo apt install openssh-client3. 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.
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.
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows.\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.
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1Jika pesan menyebut eksekusi skrip dinonaktifkan, jalankan perintah berikut, setujui konfirmasi, lalu coba lagi. Perubahan berakhir saat jendela PowerShell ditutup.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1Jika 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.
bash ./connect-wireguard-server.sh SERVER_IP macbash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed255194c. 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.
bash ./connect-wireguard-server.sh SERVER_IP ubuntubash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed255195a. 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.
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.
nmcli --version
systemctl is-active NetworkManagersudo 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 "~."sudo nmcli connection up ubuntu
nmcli connection show --activesudo nmcli connection down ubuntu6. 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.
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. 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.
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.
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.
systemctl is-active wg-quick@wg0systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0Mulai 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.
wg show9. 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.
python3 /root/internetspeed-wireguard/manage-client.py remove iphoneapt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-requiredbash /root/internetspeed-wireguard/remove-server.sh --confirm