WireGuard adalah protokol VPN modern yang masuk ke kernel Linux sejak versi 5.6 pada 29 Maret 2020 dan kini menjadi cara paling sederhana untuk punya VPN pribadi sendiri. Implementasi Linux-nya kurang dari 4.000 baris kode, jauh lebih ringkas daripada OpenVPN atau IPsec, dan memakai kriptografi modern Curve25519 serta ChaCha20-Poly1305 tanpa negosiasi cipher yang rumit. Di Ubuntu 24.04 LTS, modul WireGuard sudah menempel di kernel bawaan, jadi kamu tidak perlu mengompilasi apa pun. Panduan ini menjelaskan cara install WireGuard di VPS Ubuntu langkah demi langkah, dari instalasi paket sampai menghubungkan HP Android dan laptop, lengkap dengan aturan firewall dan cara memeriksa koneksinya.
Yang kamu butuhkan hanya satu VPS Ubuntu 24.04 LTS dengan akses root atau sudo, alamat IPv4 publik, dan sekitar 30 menit waktu luang. Panduan WireGuard Ubuntu ini memakai Ubuntu 24.04 LTS dan semua langkahnya sudah dicek terhadap dokumentasi resmi WireGuard serta tutorial WireGuard Ubuntu 24.04 yang diperbarui pada Oktober dan November 2026.
WireGuard adalah protokol VPN open source yang dirancang oleh peneliti keamanan Jason A. Donenfeld. Makalahnya, WireGuard: Next Generation Kernel Network Tunnel, dipresentasikan di konferensi NDSS 2017, lalu kode Linux-nya resmi masuk kernel utama pada versi 5.6 yang rilis 29 Maret 2020. Sejak saat itu, WireGuard tersedia di setiap sistem Linux modern tanpa modul tambahan. Secara teknis, WireGuard membuat tunnel VPN terenkripsi di level kernel antara perangkat kamu dan server, sehingga paket data melintas lewat jalur yang aman dan tidak bisa dibaca pihak di tengah jalan.
Yang membuat WireGuard istimewa adalah filosofi minimalnya. Protokol ini hanya memakai satu paket kriptografi tetap: Curve25519 untuk pertukaran kunci, ChaCha20-Poly1305 untuk enkripsi data, BLAKE2s untuk hashing, dan SipHash24 untuk perlindungan tabel hash. Tidak ada daftar cipher untuk dinegosiasikan, tidak ada sertifikat X.509, dan tidak ada username atau password. Identitas setiap peer hanyalah sepasang kunci publik sepanjang 32 byte. Karena kodenya sangat kecil, WireGuard lebih mudah diaudit dan lebih sedikit celah konfigurasinya dibanding protokol VPN lama.
Untuk pemilik VPS, WireGuard Ubuntu adalah pasangan yang ideal. Ia hanya berjalan di atas UDP, secara bawaan memakai port 51820, dan diam saat tidak ada trafik, sehingga hemat sumber daya. VPS termurah dengan RAM 1 GB dan penyimpanan 4 GB, yang merupakan syarat minimum image cloud Ubuntu, sudah cukup untuk menjalankan server VPN ini. Berbeda dengan layanan VPN komersial yang berlangganan bulanan, server VPN Ubuntu 24.04 yang kamu bangun sendiri ini tidak punya batas perangkat, tidak mencatat aktivitasmu di server orang lain, dan biayanya sudah termasuk dalam sewa VPS yang memang kamu bayar.
Sebelum mulai, pastikan VPS kamu sudah diamankan dulu. Kalau belum, baca dulu panduan amankan VPS Ubuntu baru dalam 30 menit supaya SSH dan firewall sudah beres sebelum kamu membuka satu port lagi untuk VPN.
Siapkan tiga hal berikut sebelum mengetik perintah pertama. Pertama, VPS Ubuntu 24.04 LTS dengan alamat IP publik. Ubuntu 24.04 membawa wireguard-tools versi 1.0.20210914 dan kernel 6.8 yang sudah berisi modul WireGuard, jadi tidak ada paket kernel tambahan yang perlu dipasang. Kedua, akses SSH sebagai pengguna sudo. Ketiga, satu perangkat klien untuk diuji, misalnya HP Android atau laptop, yang nantinya dipasangi aplikasi WireGuard resmi.
Kamu juga perlu tahu nama interface jaringan publik VPS kamu, karena aturan NAT di konfigurasi nanti harus menyebutkannya. Di kebanyakan image cloud, namanya eth0, tapi ada juga yang memakai ens3 atau enp1s0. Cek dengan perintah berikut:
ip route show default
Perintah itu menampilkan baris seperti default via 172.67.x.x dev eth0. Catat nama setelah kata dev, karena nama itu akan kamu pakai di langkah konfigurasi. Selama tutorial ini, contoh memakai eth0; ganti dengan nama interface VPS kamu bila berbeda.
Terakhir, tentukan alamat jaringan privat untuk VPN kamu. Panduan ini memakai 10.8.0.0/24: server mendapat 10.8.0.1, klien pertama mendapat 10.8.0.2, dan seterusnya sampai 10.8.0.254. Rentang ini tidak bertabrakan dengan jaringan rumah kebanyakan, dan dipakai juga di panduan resmi WireGuard.
Langkah pertama dalam tutorial WireGuard Ubuntu ini adalah memasang paketnya dari repositori resmi Ubuntu. Perbarui dulu daftar paket, lalu pasang wireguard dan qrencode. Paket qrencode berguna nanti untuk menampilkan kode QR konfigurasi klien di terminal, supaya HP bisa dipindai langsung tanpa menyalin teks panjang.
sudo apt update
sudo apt install -y wireguard qrencode
Paket wireguard di Ubuntu berisi wireguard-tools, yaitu utilitas wg dan wg-quick yang mengatur interface VPN. Modul kernelnya sendiri sudah ada di dalam kernel Ubuntu 24.04, jadi tidak ada modul yang perlu dikompilasi. Periksa versi yang terpasang dengan perintah:
wg --version
Di server VPN Ubuntu 24.04, perintah itu menampilkan wireguard-tools v1.0.20210914. Versi ini sama dengan yang dipakai tutorial Ubuntu 24.04 yang dicek ulang pada Oktober 2026, dan perintah-perintahnya identik dengan versi yang lebih baru di Ubuntu 26.04. Kalau perintah wg tidak ditemukan, ulangi instalasi dan pastikan sudo apt update berjalan tanpa error.
WireGuard tidak memakai password. Setiap peer dikenali dari kunci publik Curve25519 miliknya, dan kunci privat adalah satu-satunya rahasia yang harus kamu jaga. Buat pasangan kunci WireGuard untuk server dengan perintah berikut:
umask 077
wg genkey | sudo tee /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
sudo chmod 600 /etc/wireguard/server.key
Perintah umask 077 memastikan file kunci yang dibuat hanya bisa dibaca pemiliknya. Perintah kedua membuat kunci privat, menyimpannya ke /etc/wireguard/server.key, lalu menurunkan kunci publiknya ke /etc/wireguard/server.pub. Perintah ketiga mengunci izin file kunci privat ke 600, artinya hanya root yang bisa membacanya.
Lihat isi kedua kunci WireGuard itu dan simpan di tempat aman di luar server, misalnya di password manager kamu:
sudo cat /etc/wireguard/server.key
sudo cat /etc/wireguard/server.pub
Kunci privat server tidak boleh dibagikan ke siapa pun dan tidak boleh dikirim lewat chat atau email. Kunci publik, sebaliknya, aman dibagikan, karena klien membutuhkannya untuk mengenali server. Inilah satu-satunya rahasia di seluruh instalasi WireGuard ini, jadi perlakukan dengan serius.
Semua pengaturan server ada dalam satu file konfigurasi WireGuard, /etc/wireguard/wg0.conf. Nama wg0 adalah nama interface VPN yang akan dibuat. Buat file itu dengan editor teks, misalnya nano:
sudo nano /etc/wireguard/wg0.conf
Isi file dengan konfigurasi berikut. Ganti <KUNCI_PRIVAT_SERVER> dengan isi file server.key yang kamu buat di langkah sebelumnya, dan ganti eth0 dengan nama interface publik VPS kamu bila berbeda.
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <KUNCI_PRIVAT_SERVER>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Penjelasan tiap barisnya: Address memberi alamat privat 10.8.0.1 pada interface VPN server. ListenPort menentukan port UDP yang didengarkan server, yaitu 51820, port bawaan di contoh-contoh resmi WireGuard. PrivateKey adalah kunci privat server. Baris PostUp dan PostDown adalah aturan NAT: saat interface naik, trafik dari klien VPN diteruskan keluar lewat interface publik dengan teknik MASQUERADE, dan saat interface turun, aturan itu dihapus lagi supaya tidak ada aturan yatim yang tertinggal.
Simpan file dengan menekan Ctrl+O, Enter, lalu Ctrl+X. Setelah itu, kunci izin file konfigurasi ini sama seperti kunci privat, karena file ini berisi kunci privat di dalamnya:
sudo chmod 600 /etc/wireguard/wg0.conf
Server VPN harus meneruskan paket dari klien ke internet, dan Linux secara bawaan mematikan kemampuan itu. Aktifkan IP forwarding dengan menambahkan baris berikut ke /etc/sysctl.conf:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Perintah sysctl -p menerapkan perubahan tanpa reboot. Periksa hasilnya dengan sysctl net.ipv4.ip_forward; nilainya harus 1. Tanpa langkah ini, klien bisa terhubung ke server tapi tidak bisa mengakses internet lewat VPN.
Selanjutnya, atur firewall UFW WireGuard dengan membuka port UDP 51820. Port ini hanya memakai UDP, bukan TCP, jadi aturannya harus menyebut /udp secara eksplisit:
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0 out on eth0
Aturan pertama membuka port 51820 UDP dari internet. Aturan kedua mengizinkan paket yang masuk lewat interface VPN wg0 untuk diteruskan keluar lewat eth0. Aturan kedua ini penting karena kebijakan default UFW menolak forwarding; tanpa aturan ini, aturan NAT di wg0.conf tidak akan pernah dilewati paket. Ganti eth0 dengan nama interface VPS kamu bila berbeda.
Pastikan juga SSH tetap diizinkan sebelum firewall aktif, supaya kamu tidak terkunci dari VPS sendiri. Kalau UFW belum aktif, jalankan sudo ufw allow OpenSSH lalu sudo ufw enable. Periksa status firewall dengan sudo ufw status verbose dan pastikan port 51820/udp serta OpenSSH tampil di daftar.
WireGuard di Ubuntu dijalankan sebagai layanan systemd dengan nama wg-quick@wg0. Perintah wg-quick membaca file /etc/wireguard/wg0.conf dan membuat interface wg0 beserta semua aturannya. Aktifkan layanan ini supaya otomatis berjalan setiap kali VPS reboot, lalu jalankan sekarang juga:
sudo systemctl enable --now wg-quick@wg0
Periksa statusnya dengan perintah:
sudo wg show
sudo systemctl status wg-quick@wg0
Pada tahap ini, sudo wg show menampilkan interface wg0 dengan port 51820 dan kunci publik server, tapi belum ada peer karena belum ada klien yang ditambahkan. Selama perintah itu tidak menampilkan error dan layanan berstatus active (exited), server VPN Ubuntu kamu sudah berjalan. Kalau layanan gagal, jalankan sudo journalctl -u wg-quick@wg0 -n 20 untuk melihat pesan errornya; penyebab paling umum adalah salah ketik di wg0.conf atau nama interface yang keliru di aturan NAT.
Sekarang buat kunci untuk klien pertama dan daftarkan sebagai peer di server. Buat dulu pasangan kunci WireGuard klien di server, lalu tampilkan kunci publiknya:
wg genkey | tee /tmp/client.key | wg pubkey > /tmp/client.pub
cat /tmp/client.pub
Salin kunci publik klien itu, lalu daftarkan ke server dengan perintah wg set. Ganti <KUNCI_PUBLIK_KLIEN> dengan isi file /tmp/client.pub:
sudo wg set wg0 peer <KUNCI_PUBLIK_KLIEN> allowed-ips 10.8.0.2/32
Perintah di atas mendaftarkan peer secara langsung, tapi pendaftarannya hilang saat layanan di-restart. Supaya permanen, tambahkan juga blok peer ke /etc/wireguard/wg0.conf di bawah bagian [Interface]:
[Peer]
PublicKey = <KUNCI_PUBLIK_KLIEN>
AllowedIPs = 10.8.0.2/32
Kolom AllowedIPs di sisi server berarti alamat VPN yang boleh dipakai peer itu, yaitu 10.8.0.2 saja. Kalau kamu menambah klien kedua nanti, beri ia 10.8.0.3/32, klien ketiga 10.8.0.4/32, dan seterusnya. Setelah mengedit file, muat ulang layanan dengan sudo systemctl restart wg-quick@wg0.
Sekarang buat file konfigurasi klien. Ganti <KUNCI_PRIVAT_KLIEN> dengan isi /tmp/client.key, <KUNCI_PUBLIK_SERVER> dengan isi /etc/wireguard/server.pub, dan IP_VPS_KAMU dengan alamat IP publik VPS kamu.
[Interface]
PrivateKey = <KUNCI_PRIVAT_KLIEN>
Address = 10.8.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <KUNCI_PUBLIK_SERVER>
Endpoint = IP_VPS_KAMU:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Perhatikan arti tiap baris di sisi klien: AllowedIPs = 0.0.0.0/0 berarti semua trafik internet klien dialihkan lewat VPN, alias full tunnel. DNS = 1.1.1.1 memakai DNS Cloudflare supaya permintaan DNS ikut lewat terowongan dan tidak bocor ke ISP. PersistentKeepalive = 25 mengirim paket keepalive tiap 25 detik, angka yang disarankan dokumentasi resmi WireGuard, supaya koneksi tetap hidup saat klien berada di balik NAT atau firewall rumah.
Pasang aplikasi WireGuard resmi dari Google Play Store. Di server, tampilkan konfigurasi klien sebagai kode QR dengan perintah:
qrencode -t ansiutf8 < /tmp/client.conf
Perintah itu menampilkan kode QR langsung di terminal SSH. Di aplikasi WireGuard Android, ketuk tanda tambah, pilih “Scan from QR code”, dan arahkan kamera ke kode QR di layar. Setelah profil muncul, ketuk tombol aktifkan. Untuk memakai file konfigurasi yang sama di laptop, kirim file client.conf lewat cara yang aman dan impor di aplikasi WireGuard desktop, atau jalankan sudo wg-quick up client.conf di laptop Linux.
Setelah mengikuti cara install WireGuard di VPS Ubuntu di atas dan klien aktif, verifikasi koneksi dari dua sisi. Di server, jalankan sudo wg show dan perhatikan kolom latest handshake pada peer klien. Kalau ada waktu handshake yang baru, misalnya “1 minute, 12 seconds ago”, berarti klien dan server sudah saling mengenali. Kolom transfer menunjukkan jumlah data yang sudah lewat terowongan.
Di sisi klien, buka peramban dan kunjungi situs pengecek IP, misalnya ifconfig.me. Alamat IP yang tampil harus alamat IP publik VPS kamu, bukan alamat IP ISP rumah atau operator seluler. Kalau IP yang tampil masih IP asal, berarti trafik belum masuk ke terowongan; periksa lagi nilai AllowedIPs di konfigurasi klien, pastikan nilainya 0.0.0.0/0.
Uji juga DNS dengan membuka situs yang biasa kamu kunjungi dan pastikan halaman termuat normal. Kalau halaman gagal dimuat tapi IP sudah benar, kemungkinan masalah ada di DNS. Coba ganti baris DNS di konfigurasi klien menjadi 8.8.8.8 dan hubungkan ulang.
WireGuard terkenal minim masalah, tapi tiga gejala ini paling sering ditemui pemula. Gejala pertama: latest handshake tidak pernah muncul di wg show. Penyebabnya hampir selalu jaringan, bukan kriptografi. Periksa apakah aturan UFW WireGuard untuk port 51820/udp benar-benar aktif dengan sudo ufw status, periksa lagi konfigurasi WireGuard di sisi klien dan pastikan alamat Endpoint adalah IP publik VPS yang benar, serta pastikan tidak ada firewall lain di panel penyedia VPS yang memblokir UDP. Ingat, WireGuard hanya memakai UDP; membuka port 51820 TCP tidak ada gunanya.
Gejala kedua: handshake berhasil tapi klien tidak bisa membuka situs apa pun. Ini tanda IP forwarding atau NAT belum beres. Jalankan sysctl net.ipv4.ip_forward dan pastikan nilainya 1. Periksa aturan NAT dengan sudo iptables -t nat -L POSTROUTING -n -v dan pastikan ada baris MASQUERADE ke interface publik. Terakhir, pastikan aturan ufw route allow in on wg0 out on eth0 sudah ditambahkan.
Gejala ketiga: koneksi putus setiap beberapa menit saat klien memakai WiFi rumah atau hotspot HP. Ini biasanya karena NAT di sisi klien menutup pemetaan port yang diam. Solusinya adalah PersistentKeepalive = 25 di konfigurasi klien, seperti yang sudah dipasang di langkah 6. Kalau masih putus, turunkan nilainya menjadi 15 dan uji lagi.
Server VPN hasil cara install WireGuard di VPS Ubuntu ini tetap perlu dirawat. Pertama, jangan pernah membagikan kunci privat server atau klien. Kalau satu kunci klien bocor, hapus peer itu dari wg0.conf dengan perintah sudo wg set wg0 peer <KUNCI_PUBLIK> remove, lalu buat kunci baru. Kedua, batasi siapa yang bisa terhubung dengan memberi setiap perangkat kunci dan alamat IP sendiri, jangan memakai satu kunci untuk semua perangkat. Dengan begitu, kamu bisa mencabut akses satu perangkat tanpa mengganggu yang lain.
Ketiga, jaga VPS tetap diperbarui dengan sudo apt update && sudo apt upgrade -y secara berkala, dan pertimbangkan memasang update keamanan otomatis supaya patch kernel dan paket WireGuard tidak tertunda. Keempat, kalau kamu memakai VPS ini juga untuk layanan lain, pastikan aturan UFW WireGuard kamu hanya membuka port yang memang dibutuhkan. Port 51820 UDP adalah satu-satunya port tambahan yang dibutuhkan server VPN ini.
Kelima, simpan salinan wg0.conf dan kunci-kunci di tempat yang terenkripsi, bukan di catatan biasa. File-file itu adalah kunci kerajaan VPN kamu; siapa pun yang memegang kunci privat server bisa menyamar sebagai server kamu.
Dalam enam langkah cara install WireGuard di VPS Ubuntu ini, kamu memasang paket WireGuard, membuat kunci Curve25519, menulis satu file konfigurasi wg0.conf, mengaktifkan IP forwarding, membuka port 51820 UDP di UFW, dan menghubungkan klien pertama lewat kode QR. Hasilnya adalah VPN Ubuntu 24.04 pribadi yang berjalan di atas server kamu sendiri, memakai kriptografi modern yang sama dengan yang dipakai jutaan server di seluruh dunia sejak WireGuard masuk kernel Linux 5.6 pada Maret 2020.
Keuntungan terbesar punya VPN pribadi sendiri bukan cuma hemat biaya langganan. Kamu yang memegang kunci, kamu yang menentukan perangkat mana yang boleh terhubung, dan trafikmu tidak melewati server pihak ketiga. Kalau nanti butuh menambah perangkat, tinggal ulangi langkah 6 dengan alamat IP berikutnya, misalnya 10.8.0.3 untuk laptop dan 10.8.0.4 untuk tablet. Server VPN Ubuntu kamu sudah siap dipakai setiap hari, dari WiFi kafe sampai hotspot bandara.
Ya. WireGuard adalah software open source gratis dan sudah termasuk di kernel Ubuntu 24.04. Satu-satunya biaya adalah sewa VPS yang memang sudah kamu bayar, tanpa biaya lisensi atau langganan tambahan per perangkat.
Sebanyak alamat yang tersedia di jaringan 10.8.0.0/24, yaitu sampai 253 klien. Setiap perangkat harus punya kunci dan alamat IP sendiri, misalnya klien pertama 10.8.0.2, klien kedua 10.8.0.3, dan seterusnya.
Pada umumnya ya. WireGuard berjalan di dalam kernel dan kodenya kurang dari 4.000 baris, sehingga overhead-nya kecil. OpenVPN berjalan di userspace dan kodenya jauh lebih besar. Kecepatan akhirnya tetap bergantung pada CPU VPS dan kecepatan jaringan, tapi WireGuard hampir selalu menang dalam pengujian throughput pada perangkat keras yang sama.
Tidak. WireGuard hanya memakai UDP. Cukup buka port 51820/udp di firewall UFW dan di firewall panel penyedia VPS bila ada. Membuka port TCP 51820 tidak berpengaruh apa-apa.
Tidak sepenuhnya. Enkripsi VPN melindungi trafik antara perangkat kamu dan VPS, serta menyembunyikan alamat IP asal dari situs yang kamu kunjungi. Namun situs tetap bisa mengenalimu lewat cookie dan akun login, dan penyedia VPS tetap bisa melihat trafik keluar dari server kamu. VPN adalah alat privasi, bukan alat anonimitas total.