WireGuard telah menjadi protokol VPN modern yang mengalahkan OpenVPN dalam hampir semua aspek — kecepatan, keamanan, dan kemudahan konfigurasi. Artikel ini akan memandu Anda setup WireGuard server dan client di Linux.
Apa itu WireGuard?
WireGuard adalah protokol VPN open-source yang dirancang dengan filosofi minimalis. Tidak seperti OpenVPN yang kompleks, WireGuard hanya memiliki ~4000 baris kode — sangat sedikit dibandingkan OpenVPN yang ratusan ribu baris. Ini berarti attack surface yang lebih kecil dan audit keamanan yang lebih mudah.
Keunggulan WireGuard
- Performa Tinggi — Kecepatan koneksi hingga 2-3x lebih cepat dari OpenVPN
- Kode Minimal — ~4.000 baris kode (OpenVPN: >500.000)
- Simple Config — Satu file konfigurasi per peer
- Crypto Agility — Menggunakan Curve25519, ChaCha20, Poly1305
- Built-in in Linux Kernel — Tersedia langsung di kernel 5.6+
Instalasi WireGuard
# Ubuntu/Debian
sudo apt update
sudo apt install wireguard
# CentOS/RHEL/Fedora
sudo dnf install wireguard-tools
# Cek apakah modul kernel tersedia
sudo modprobe wireguard
lsmod | grep wireguard
Setup Server WireGuard
1. Generate Key Pair
cd /etc/wireguard
umask 077 # Pastikan private key hanya readable oleh root
# Generate private & public key
wg genkey | tee server_private.key | wg pubkey > server_public.key
cat server_private.key
cat server_public.key
2. Buat Konfigurasi Server
Buat file /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = [isi private key server]
Address = 10.0.0.1/24
ListenPort = 51820
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
# Client 1 — Laptop
[Peer]
PublicKey = [public key client 1]
AllowedIPs = 10.0.0.2/32
# Client 2 — HP
[Peer]
PublicKey = [public key client 2]
AllowedIPs = 10.0.0.3/32
Aktifkan IP forwarding di server:
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
Setup Client WireGuard
1. Generate Key Client
cd /etc/wireguard
umask 077
wg genkey | tee client_private.key | wg pubkey > client_public.key
2. Konfigurasi Client
Buat file /etc/wireguard/wg0.conf di client:
[Interface]
PrivateKey = [isi private key client]
Address = 10.0.0.2/24
DNS = 1.1.1.1, 8.8.8.8
[Peer]
PublicKey = [public key server]
Endpoint = [IP_PUBLIK_SERVER]:51820
AllowedIPs = 0.0.0.0/0 # Route semua traffic via VPN
PersistentKeepalive = 25
Menyalakan WireGuard
# Start service
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
# Cek status
sudo wg show
# Test koneksi
ping 10.0.0.1 # Ping server dari client
Monitoring & Troubleshooting
# Cek traffic
sudo wg show
sudo wg show wg0 transfer
# Log
sudo journalctl -u wg-quick@wg0 -f
# Restart dengan konfigurasi baru
sudo systemctl restart wg-quick@wg0
Troubleshooting
1. "Handshake did not complete"
Sebab: Firewall memblokir port UDP 51820.
Solusi: Buka port di firewall server: sudo ufw allow 51820/udp. Pastikan juga port forwarding di router/Cloudflare Tunnel sudah dikonfigurasi.
2. Koneksi sangat lambat
Sebab: MTU tidak sesuai atau ada routing issue.
Solusi: Turunkan MTU di konfigurasi client dengan menambahkan MTU = 1280 di bagian [Interface].
Baca Juga
Kesimpulan
WireGuard adalah solusi VPN modern yang sempurna untuk kebutuhan remote server, privasi online, dan koneksi aman antar perangkat. Dengan performa tinggi, konfigurasi sederhana, dan keamanan kelas dunia, WireGuard adalah standar baru VPN di 2026.






