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 wireguardCek apakah WireGuard sudah terpasang dengan benar:
wg u002du002dversionJika 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.keyUntuk melihat public key server:
cat ~/server_public.keyCek permission file:
ls -l ~/server_private.key ~/server_public.keyPastikan 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/wireguardLalu 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.conf4. 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 -wVerifikasi:
sysctl net.ipv4.ip_forwardOutput yang benar:
net.ipv4.ip_forward = 15. Cari interface internet utama VPS
Sebelum menambahkan NAT, kita perlu tahu interface publik VPS:
ip routeContoh 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.111Dari sini terlihat bahwa interface internet utama adalah:
eth06. 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 ACCEPTCek hasilnya:
sudo iptables -t nat -Snsudo iptables -S FORWARDJika 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.conf8. Buka port WireGuard di UFW
Jika UFW aktif, buka port UDP WireGuard:
sudo ufw allow 51820/udpLalu cek status UFW:
sudo ufw status numberedPastikan 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.keyLihat public key baru:
cat ~/server_public_new.keyGanti 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.conf10. Jalankan WireGuard
Aktifkan WireGuard agar otomatis start saat boot, lalu jalankan sekarang juga:
sudo systemctl enable wg-quick@wg0nsudo systemctl start wg-quick@wg0Cek status service:
sudo systemctl status wg-quick@wg0 u002du002dno-pager -lCek interface WireGuard:
sudo wg showJika 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.keyLihat public key client:
cat ~/client1_public.keyCek file-nya:
ls -l ~/client1_private.key ~/client1_public.keySekali 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 wg0Ganti CLIENT1_PUBLIC_KEY dengan isi file client1_public.key.
Cek hasilnya:
sudo wg shownsudo cat /etc/wireguard/wg0.confJika 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 = 25nEOFGanti:
REPLACE_WITH_CLIENT1_PRIVATE_KEYdengan private key clientREPLACE_WITH_SERVER_PUBLIC_KEYdengan public key serverYOUR_SERVER_PUBLIC_IPdengan IP publik VPS
Contoh cek file:
cat ~/client1.conf14. Import client ke Windows, Android, atau iPhone
Windows
- Install aplikasi WireGuard
- Klik Add Tunnel
- Pilih Import tunnel from file atau paste isi
client1.conf - Simpan
- Klik Activate
Android / iPhone
Install qrencode di server:
sudo apt install -y qrencodeTampilkan QR code dari file config:
qrencode -t ansiutf8 u003c ~/client1.confLalu di aplikasi WireGuard pada ponsel:
- Tap tombol +
- Pilih Scan from QR code
- Scan QR dari terminal
- Aktifkan tunnel
15. Uji handshake
Setelah client aktif, kembali ke server dan jalankan:
sudo wg showJika koneksi berhasil, Anda akan melihat informasi seperti:
latest handshake: 5 seconds ago
transfer: 1.12 MiB received, 1.48 MiB sentItu 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.confclient1.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/udpbelum 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 statusHandshake tidak muncul
Periksa:
Endpointpada 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 PostUpdanPostDown- interface publik yang dipakai, misalnya
eth0
Kesimpulan
Menginstall WireGuard di Ubuntu VPS 24.04 sebenarnya cukup sederhana jika dilakukan secara berurutan. Langkah intinya adalah:
- install paket WireGuard
- generate key server
- buat konfigurasi
wg0.conf - aktifkan IP forwarding
- tambahkan NAT dan aturan firewall
- jalankan service
wg-quick@wg0 - buat client dan tambahkan sebagai peer
- import konfigurasi client dan uji handshake
Setelah semua langkah ini selesai, kalian sudah memiliki server WireGuard yang aktif dan siap dipakai sebagai VPN pribadi.
