WireGuard adalah salah satu solusi VPN modern yang ringan, cepat, dan relatif mudah dikonfigurasi di Linux. Pada panduan ini, aku akan membahas cara menginstall WireGuard di Ubuntu VPS 24.04 secara bertahap, mulai dari instalasi dasar sampai server aktif dan siap dipakai oleh client pertama.

Tutorial ini cocok untuk kalian yang ingin:

  • membuat VPN pribadi di VPS
  • mengakses server secara lebih aman
  • menghubungkan device pribadi ke jaringan privat
  • menggunakan VPS sebagai gateway VPN

Pada contoh ini, digunakan:

  • OS server: Ubuntu 24.04
  • Interface publik VPS: eth0
  • Port WireGuard: 51820/udp
  • Subnet VPN: 10.66.66.0/24
  • IP server WireGuard: 10.66.66.1/24
  • IP client pertama: 10.66.66.2/32

1. Install WireGuard di Ubuntu 24.04

Pertama, update paket lalu install WireGuard:

sudo apt updatensudo apt install -y wireguard

Cek apakah WireGuard sudah terpasang dengan benar:

wg u002du002dversion

Jika berhasil, output akan menampilkan versi wireguard-tools.


2. Generate key server

WireGuard menggunakan pasangan private key dan public key untuk autentikasi. Buat key server dengan permission yang aman:

umask 077nwg genkey | tee ~/server_private.key | wg pubkey u003e ~/server_public.key

Untuk melihat public key server:

cat ~/server_public.key

Cek permission file:

ls -l ~/server_private.key ~/server_public.key

Pastikan file key hanya bisa dibaca oleh user pemilik.

Penting: jangan pernah membagikan isi server_private.key.


3. Buat file konfigurasi WireGuard

Buat direktori konfigurasi WireGuard jika belum ada:

sudo mkdir -p /etc/wireguardnsudo chmod 700 /etc/wireguard

Lalu buat file /etc/wireguard/wg0.conf:

sudo bash -c 'cat u003e /etc/wireguard/wg0.conf u003cu003cEOFn[Interface]nAddress = 10.66.66.1/24nListenPort = 51820nPrivateKey = REPLACE_WITH_SERVER_PRIVATE_KEYnSaveConfig = truenEOF'

Ganti REPLACE_WITH_SERVER_PRIVATE_KEY dengan isi private key servermu.

Contoh cek isi file:

sudo cat /etc/wireguard/wg0.conf

4. Aktifkan IP forwarding

Agar server bisa meneruskan trafik dari interface WireGuard ke jaringan luar, aktifkan IPv4 forwarding.

Buat file sysctl khusus:

sudo bash -c 'cat u003e /etc/sysctl.d/70-wireguard-routing.conf u003cu003cEOFnnet.ipv4.ip_forward = 1nEOF'

Terapkan konfigurasi:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf -w

Verifikasi:

sysctl net.ipv4.ip_forward

Output yang benar:

net.ipv4.ip_forward = 1

5. Cari interface internet utama VPS

Sebelum menambahkan NAT, kita perlu tahu interface publik VPS:

ip route

Contoh output:

default via 77.90.4.1 dev eth0 proto staticn77.90.4.0/24 dev eth0 proto kernel scope link src 77.90.4.111

Dari sini terlihat bahwa interface internet utama adalah:

eth0

6. Tambahkan aturan NAT dan forwarding

Agar client VPN bisa mengakses internet melalui VPS, tambahkan rule iptables berikut:

sudo iptables -t nat -A POSTROUTING -s 10.66.66.0/24 -o eth0 -j MASQUERADEnsudo iptables -A FORWARD -i wg0 -j ACCEPTnsudo iptables -A FORWARD -o wg0 -m conntrack u002du002dctstate RELATED,ESTABLISHED -j ACCEPT

Cek hasilnya:

sudo iptables -t nat -Snsudo iptables -S FORWARD

Jika server menggunakan UFW, rule ini tetap bisa bekerja, tetapi sebaiknya dimasukkan juga ke konfigurasi WireGuard agar otomatis aktif saat interface wg0 dijalankan.


7. Tambahkan PostUp dan PostDown ke wg0.conf

Edit file konfigurasi agar rule iptables aktif otomatis:

sudo bash -c 'cat u003e /etc/wireguard/wg0.conf u003cu003cEOFn[Interface]nAddress = 10.66.66.1/24nListenPort = 51820nPrivateKey = REPLACE_WITH_SERVER_PRIVATE_KEYnSaveConfig = truenPostUp = iptables -t nat -A POSTROUTING -s 10.66.66.0/24 -o eth0 -j MASQUERADE; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -m conntrack u002du002dctstate RELATED,ESTABLISHED -j ACCEPTnPostDown = iptables -t nat -D POSTROUTING -s 10.66.66.0/24 -o eth0 -j MASQUERADE; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -m conntrack u002du002dctstate RELATED,ESTABLISHED -j ACCEPTnEOF'

Sesudah itu, cek kembali:

sudo cat /etc/wireguard/wg0.conf

8. Buka port WireGuard di UFW

Jika UFW aktif, buka port UDP WireGuard:

sudo ufw allow 51820/udp

Lalu cek status UFW:

sudo ufw status numbered

Pastikan ada rule seperti ini:

51820/udp                  ALLOW IN    Anywheren51820/udp (v6)             ALLOW IN    Anywhere (v6)

9. Rotasi key server jika sempat terekspos

Dalam praktik nyata, jika private key server pernah tercopy ke tempat yang tidak aman, tampil di screenshot, atau terkirim ke chat, anggap key tersebut bocor dan segera ganti.

Generate key server baru:

umask 077nwg genkey | tee ~/server_private_new.key | wg pubkey u003e ~/server_public_new.key

Lihat public key baru:

cat ~/server_public_new.key

Ganti isi PrivateKey pada /etc/wireguard/wg0.conf dengan private key baru.

Contoh dengan sed:

sudo sed -i u0022s|^PrivateKey = .*|PrivateKey = $(cat ~/server_private_new.key)|u0022 /etc/wireguard/wg0.conf

10. Jalankan WireGuard

Aktifkan WireGuard agar otomatis start saat boot, lalu jalankan sekarang juga:

sudo systemctl enable wg-quick@wg0nsudo systemctl start wg-quick@wg0

Cek status service:

sudo systemctl status wg-quick@wg0 u002du002dno-pager -l

Cek interface WireGuard:

sudo wg show

Jika sukses, akan terlihat interface wg0, public key server, dan listening port 51820.


11. Buat key untuk client pertama

Sekarang kita buat key untuk client pertama:

umask 077nwg genkey | tee ~/client1_private.key | wg pubkey u003e ~/client1_public.key

Lihat public key client:

cat ~/client1_public.key

Cek file-nya:

ls -l ~/client1_private.key ~/client1_public.key

Sekali lagi, jangan bagikan private key client.


12. Tambahkan client sebagai peer di server

Tambahkan peer client ke server dengan IP VPN 10.66.66.2/32:

sudo wg set wg0 peer CLIENT1_PUBLIC_KEY allowed-ips 10.66.66.2/32nsudo wg-quick save wg0

Ganti CLIENT1_PUBLIC_KEY dengan isi file client1_public.key.

Cek hasilnya:

sudo wg shownsudo cat /etc/wireguard/wg0.conf

Jika berhasil, akan muncul blok [Peer] untuk client pertama.


13. Buat file konfigurasi client

Selanjutnya buat file config untuk client pertama:

cat u003e ~/client1.conf u003cu003cEOFn[Interface]nPrivateKey = REPLACE_WITH_CLIENT1_PRIVATE_KEYnAddress = 10.66.66.2/24nDNS = 1.1.1.1nn[Peer]nPublicKey = REPLACE_WITH_SERVER_PUBLIC_KEYnEndpoint = YOUR_SERVER_PUBLIC_IP:51820nAllowedIPs = 0.0.0.0/0nPersistentKeepalive = 25nEOF

Ganti:

  • REPLACE_WITH_CLIENT1_PRIVATE_KEY dengan private key client
  • REPLACE_WITH_SERVER_PUBLIC_KEY dengan public key server
  • YOUR_SERVER_PUBLIC_IP dengan IP publik VPS

Contoh cek file:

cat ~/client1.conf

14. Import client ke Windows, Android, atau iPhone

Windows

  1. Install aplikasi WireGuard
  2. Klik Add Tunnel
  3. Pilih Import tunnel from file atau paste isi client1.conf
  4. Simpan
  5. Klik Activate

Android / iPhone

Install qrencode di server:

sudo apt install -y qrencode

Tampilkan QR code dari file config:

qrencode -t ansiutf8 u003c ~/client1.conf

Lalu di aplikasi WireGuard pada ponsel:

  1. Tap tombol +
  2. Pilih Scan from QR code
  3. Scan QR dari terminal
  4. Aktifkan tunnel

15. Uji handshake

Setelah client aktif, kembali ke server dan jalankan:

sudo wg show

Jika koneksi berhasil, Anda akan melihat informasi seperti:

latest handshake: 5 seconds ago
transfer: 1.12 MiB received, 1.48 MiB sent

Itu menandakan server dan client sudah saling terhubung.


Catatan penting keamanan

Ada beberapa hal yang sangat penting saat mengelola WireGuard:

1. Jangan tampilkan private key

Private key server dan client harus dianggap seperti password. Jika private key pernah bocor, segera rotasi.

2. Simpan backup konfigurasi

Minimal simpan:

  • /etc/wireguard/wg0.conf
  • client1.conf
  • public key masing-masing peer

3. Gunakan subnet yang konsisten

Pastikan Address di server dan AllowedIPs di peer tidak saling bentrok.

4. Periksa firewall

Jika handshake gagal, biasanya masalah ada di:

  • port 51820/udp belum dibuka
  • NAT belum benar
  • IP forwarding belum aktif
  • endpoint IP salah
  • key salah pasang

Troubleshooting singkat

WireGuard aktif tapi client tidak bisa connect

Cek:

sudo systemctl status wg-quick@wg0nsudo wg shownsudo ufw status

Handshake tidak muncul

Periksa:

  • Endpoint pada client
  • public key server
  • public key client
  • port UDP terbuka
  • VPS memakai IP publik yang benar

Client terhubung tapi tidak bisa internetan

Periksa:

  • net.ipv4.ip_forward = 1
  • rule NAT MASQUERADE
  • PostUp dan PostDown
  • interface publik yang dipakai, misalnya eth0

Kesimpulan

Menginstall WireGuard di Ubuntu VPS 24.04 sebenarnya cukup sederhana jika dilakukan secara berurutan. Langkah intinya adalah:

  1. install paket WireGuard
  2. generate key server
  3. buat konfigurasi wg0.conf
  4. aktifkan IP forwarding
  5. tambahkan NAT dan aturan firewall
  6. jalankan service wg-quick@wg0
  7. buat client dan tambahkan sebagai peer
  8. import konfigurasi client dan uji handshake

Setelah semua langkah ini selesai, kalian sudah memiliki server WireGuard yang aktif dan siap dipakai sebagai VPN pribadi.

You may also like