NoctisNode
← PanduanJaringan2026-10-238 menit

WireGuard PersistentKeepalive 25 dan PresharedKey di VPS

PersistentKeepalive = 25 mengirim keepalive setiap 25 detik agar NAT menjaga tunnel tetap terbuka; atur di klien yang berada di balik NAT. PresharedKey menambahkan lapisan simetris sebagai lindung nilai pasca-kuantum.

Singkatnya: `PersistentKeepalive = 25` memerintahkan WireGuard mengirim paket terautentikasi berukuran sangat kecil ke peer setiap 25 detik, yang menjaga pemetaan NAT dan stateful firewall tetap hidup sehingga sisi lain masih bisa menjangkau Anda. Biasanya Anda mengaturnya hanya di peer yang berada di balik NAT (laptop, ponsel, atau router rumah), bukan di VPS dengan IP publik. `PresharedKey` adalah rahasia simetris 256 bit opsional per pasangan peer, dibuat dengan `wg genpsk`, yang dicampurkan ke handshake sebagai lindung nilai terhadap serangan kuantum di masa depan pada Curve25519.

Panduan ini menjelaskan kedua opsi tersebut dan memberikan konfigurasi server dan klien yang berfungsi untuk VPS WireGuard. Untuk setup VPN lengkap dengan NAT dan DNS, lihat panduan VPN WireGuard.

Apa yang sebenarnya dilakukan PersistentKeepalive = 25

WireGuard memang dirancang senyap: saat tidak ada data yang mengalir, ia tidak mengirim apa pun. Itu baik untuk privasi dan baterai, tetapi router yang melakukan NAT dan connection tracking membuang pemetaan UDP yang idle, sering setelah 30 detik dan kadang setelah beberapa menit. Begitu pemetaan hilang, paket dari server tidak bisa lagi menjangkau klien di balik NAT sampai klien mengirim sesuatu lagi.

`PersistentKeepalive` adalah interval dalam detik. Dengan `25`, peer mengirim keepalive kosong yang terenkripsi setiap kali tidak mengirim apa pun selama 25 detik. Nilai 25 adalah yang direkomendasikan dokumentasi WireGuard karena aman di bawah timeout UDP umum yang paling pendek. Pengaturan ini mati secara default (`0`), dan overhead-nya hanya satu paket kecil kira-kira setiap 25 detik per peer.

NilaiEfekKapan dipakai
0 atau tidak diaturTanpa keepalive; tunnel senyap saat idleKedua peer punya IP publik, atau klien selalu yang memulai trafik
25Keepalive setiap 25 detik waktu idleKlien di balik NAT atau CGNAT yang harus tetap dapat dijangkau
15–20Keepalive lebih seringJaringan dengan timeout UDP yang luar biasa agresif
60+Paket lebih sedikit, risiko kehilangan pemetaan lebih besarJarang berguna; sebagian besar perangkat NAT timeout lebih cepat

Sisi mana yang butuh PersistentKeepalive

Atur keepalive di peer yang tidak bisa dijangkau secara langsung, yaitu yang berada di balik NAT. Peer itu mengirim paket keluar, sehingga menyegarkan pemetaan NAT-nya sendiri. VPS dengan alamat IPv4 publik tidak memiliki NAT di depannya, sehingga tidak butuh opsi ini agar tetap dapat dijangkau, dan tidak bisa menjaga NAT jarak jauh tetap terbuka sendirian karena ia hanya mengetahui endpoint klien dari paket yang dikirim klien.

Jika klien hanya menjelajah web melalui tunnel, ia langsung tersambung kembali setiap kali mengirim trafik, jadi keepalive bersifat opsional. Anda membutuhkannya saat server atau peer lain harus memulai koneksi ke klien, misalnya SSH ke mesin di rumah, monitoring, atau tautan site-to-site.

  • ▹Laptop atau ponsel di balik NAT ke VPS: atur `PersistentKeepalive = 25` hanya di klien.
  • ▹VPS ke VPS, keduanya dengan IP publik: biasanya biarkan tidak diatur; lihat [panduan mesh WireGuard](/guides/wireguard-mesh-vps-cluster).
  • ▹Server rumah di balik CGNAT yang diekspos melalui VPS: atur di server rumah, jika tidak VPS kehilangan jalurnya dalam hitungan menit.
  • ▹Klien seluler: keepalive memakan sedikit baterai; aktifkan hanya jika perangkat harus dapat dijangkau.

PresharedKey: lapisan simetris opsional

Handshake WireGuard memakai pertukaran kunci Curve25519. Komputer kuantum yang cukup besar secara teori dapat memecahkan pertukaran itu, dan musuh bisa merekam trafik hari ini lalu mendekripsinya nanti. `PresharedKey` mencampurkan kunci simetris 256 bit tambahan ke dalam handshake. Kunci simetris sebesar itu tidak dianggap dapat dipecahkan secara praktis oleh algoritma kuantum yang dikenal, sehingga selama PSK tetap rahasia, trafik yang direkam tetap terlindungi bahkan jika bagian kunci publiknya terpecahkan.

PSK berlaku per pasangan peer, harus identik di bagian `[Peer]` kedua peer, dan sebaiknya unik untuk setiap pasangan. PSK tidak menggantikan private key; ini lapisan tambahan. Jika PSK tidak cocok, handshake gagal diam-diam dan Anda tidak melihat `latest handshake` di `wg show`.

  • ▹Buat dengan `wg genpsk`, yang menghasilkan kunci acak 32 byte berenkode base64.
  • ▹Kirimkan melalui saluran yang sudah Anda percayai, seperti SSH, jangan pernah lewat chat atau email.
  • ▹Gunakan satu PSK per pasangan: di mesh lima node, berarti sepuluh PSK berbeda.
  • ▹Ganti PSK seperti rahasia lainnya saat perangkat hilang atau dipensiunkan.

Membuat kunci dan PresharedKey

Pasang tool di Debian 12/13 atau Ubuntu 24.04 dengan `apt install wireguard`, lalu buat kunci di mesin tempat masing-masing private key akan berada. PSK dapat dibuat di sisi mana pun lalu disalin ke sisi lainnya. `umask 077` memastikan file hanya dapat dibaca oleh root.

umask 077
cd /etc/wireguard

# on the VPS
wg genkey | tee server.key | wg pubkey > server.pub

# on the client
wg genkey | tee client.key | wg pubkey > client.pub

# once, on either side; copy to the other over SSH
wg genpsk > client.psk

Konfigurasi server di VPS: /etc/wireguard/wg0.conf

Server memiliki listen port tetap, tanpa keepalive dan tanpa `Endpoint` untuk klien, karena ia mengetahui alamat klien saat ini dari paket yang terautentikasi.

[Interface]
Address = 10.8.0.1/24, fd08::1/64
ListenPort = 51820
PrivateKey = <contents of server.key>

[Peer]
# laptop
PublicKey = <contents of client.pub>
PresharedKey = <contents of client.psk>
AllowedIPs = 10.8.0.2/32, fd08::2/128

Note · Buka UDP 51820 di firewall VPS dan jalankan tunnel dengan `systemctl enable --now wg-quick@wg0`. Amankan SSH seperti dijelaskan di panduan hardening SSH, dan periksa izin kunci dengan panduan StrictModes, sebelum mengekspos hal lain.

Konfigurasi klien di balik NAT

Klien mengarah ke alamat publik VPS dan membawa keepalive. Gunakan `AllowedIPs = 10.8.0.0/24, fd08::/64` hanya untuk tunnel privat, atau `0.0.0.0/0, ::/0` untuk mengirim semua trafik melalui VPS.

[Interface]
Address = 10.8.0.2/32, fd08::2/128
PrivateKey = <contents of client.key>

[Peer]
PublicKey = <contents of server.pub>
PresharedKey = <contents of client.psk>
Endpoint = 203.0.113.10:51820
AllowedIPs = 10.8.0.0/24, fd08::/64
PersistentKeepalive = 25

Note · VPS Wisp NoctisNode (1 vCPU, RAM 1 GB, $6 per siklus 28 hari) dengan IPv4 dedicated sudah cukup untuk endpoint WireGuard pribadi, dan bisa dibayar dengan Monero atau kripto lain hanya dengan email dan kata sandi saat mendaftar.

Verifikasi dan pemecahan masalah

Jalankan `wg show` di kedua sisi. Klien yang sehat menampilkan `latest handshake` yang baru, `persistent keepalive: every 25 seconds`, dan `preshared key: (hidden)` untuk peer.

  1. 01.Tidak ada handshake sama sekali: periksa bahwa UDP 51820 terbuka di VPS dan `Endpoint` memakai IP dan port yang benar.
  2. 02.Handshake berhasil tanpa PSK tetapi gagal dengannya: PresharedKey berbeda di kedua konfigurasi; salin ulang.
  3. 03.Tunnel berfungsi, lalu server tidak bisa menjangkau klien setelah satu menit: tambahkan `PersistentKeepalive = 25` di klien.
  4. 04.Ubah keepalive tanpa restart: `wg set wg0 peer <server-public-key> persistent-keepalive 25`.
  5. 05.Tambahkan PSK dari file saat runtime: `wg set wg0 peer <public-key> preshared-key /etc/wireguard/client.psk`.

FAQ

QApa arti PersistentKeepalive 25 di WireGuard?

AOpsi ini membuat peer mengirim paket keepalive terenkripsi setelah 25 detik tanpa trafik lain. Ini menjaga pemetaan NAT dan firewall tetap terbuka sehingga tunnel tetap dapat dijangkau dari sisi lain.

QApakah PersistentKeepalive dipasang di server atau di klien?

ADi peer yang berada di balik NAT, yang hampir selalu adalah klien. VPS dengan IP publik tidak membutuhkannya dan tidak bisa menjaga pemetaan NAT klien tetap terbuka sendirian.

QApakah PresharedKey WireGuard wajib?

ATidak, sifatnya opsional. PresharedKey menambahkan rahasia simetris ke handshake sebagai lindung nilai terhadap serangan kuantum di masa depan pada Curve25519, sehingga menjadi default yang baik untuk tunnel berumur panjang.

QBagaimana cara membuat PresharedKey WireGuard?

AJalankan `wg genpsk > peer.psk` dan masukkan nilai yang sama di baris `PresharedKey` pada bagian `[Peer]` kedua peer. Gunakan PSK berbeda untuk setiap pasangan peer.

QApakah PersistentKeepalive memakan banyak bandwidth?

ATidak. Opsi ini mengirim satu paket kecil kira-kira setiap 25 detik waktu idle, yang tidak berarti di VPS, meskipun bisa sedikit mengurangi daya tahan baterai ponsel.

WireGuard PersistentKeepalive 25 dan PresharedKey di VPS · NoctisNode