Lewati ke konten utama
diskon 50% semua paket, waktu terbatas. Mulai dari $2.48/mo
12 min left
Keamanan dan Jaringan

Cara Menyiapkan WireGuard VPN di VPS

Pius Bodenmann Oleh Pius Bodenmann 12 menit baca Diperbarui oleh Mir 12d ago
WireGuard VPN tunnel active on an Ubuntu VPS terminal and a phone client

WireGuard VPN yang di-host sendiri memberi laptop dan ponsel Anda jalur terenkripsi ke server yang Anda kendalikan. Ini berguna saat Anda menginginkan IP keluar yang stabil, akses aman di Wi-Fi yang tidak tepercaya, atau rute privat ke jaringan lain. Ini tidak membuat Anda anonim: situs web tetap melihat satu alamat VPS, dan penyedia hosting tetap mengoperasikan jaringan yang mendasarinya.

Panduan ini membangun VPN full-tunnel IPv4 di Ubuntu Server. Anda akan memasang WireGuard, membuat kunci dengan izin ketat, mengaktifkan perutean, menambahkan aturan firewall dan NAT, menghubungkan klien desktop dan seluler, lalu memverifikasi terowongan. Desain yang sama dapat mendukung IPv6, tetapi hanya setelah VPS memiliki ruang IPv6 yang dirutekan dan Anda mengatur penerusan serta aturan firewall IPv6 secara terpisah.

Apa Itu WireGuard?

WireGuard adalah protokol VPN modern lintas platform beserta implementasinya yang membawa paket IP terenkripsi melalui UDP. spesifikasi protokol WireGuard Spesifikasi ini mendefinisikan sekumpulan primitif kriptografi yang tetap, termasuk ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24, dan HKDF. Desain yang sengaja dibuat ringkas itu membuat konfigurasi dan audit lebih sederhana dibandingkan protokol dengan banyak cipher suite yang bisa ditukar-tukar.

WireGuard tidak punya sistem akun terpusat maupun direktori pengguna bawaan. Setiap perangkat adalah peer dengan pasangan kunci, alamat terowongan, dan aturan AllowedIPs miliknya sendiri. Di VPS, biasanya satu peer bertindak sebagai gerbang yang menghadap internet, sementara laptop dan ponsel yang memulai koneksi ke sana.

Mengapa Menggunakan WireGuard di VPS?

  • Model peer yang sederhana: Setiap perangkat mendapat satu pasangan kunci dan satu entri peer.
  • Permukaan serangan kecil: WireGuard memakai protokol yang ringkas dan suite kriptografi tetap, bukan menyodorkan daftar panjang opsi warisan.
  • Performa bagus: Integrasi kernel di Linux dan kriptografi yang efisien bisa memberi throughput tinggi, meski hasilnya tetap bergantung pada CPU, kapasitas jaringan, latensi, dan ukuran paket.
  • Klien lintas platform: Klien resmi tersedia untuk Windows 10 dan 11, macOS, Android, serta iOS, sementara Linux dan beberapa sistem BSD menyediakan alat atau paket bawaan.
  • Roaming: Sebuah peer bisa berpindah jaringan dan berganti alamat IP sumber tanpa mendapat identitas WireGuard baru; server mempelajari endpoint terautentikasi terakhir.
  • Kontrol perutean yang jelas: AllowedIPs menentukan tujuan mana yang melewati terowongan sekaligus alamat terowongan mana yang menjadi milik tiap peer.

Bacaan terkait: panduan Cloudzy tentang VPS untuk VPN. Untuk penerapan yang lebih lama, lihat panduan penyiapan PPTP dari Cloudzy; jangan pilih PPTP untuk VPN baru yang mementingkan keamanan.

Lewati Penyiapan Manual: WireGuard Sekali Klik

Jika Anda tidak punya latar belakang teknis, atau lebih suka tidak menangani penyiapannya sendiri, Cloudzy menyediakan penerapan WireGuard VPN sekali klik. Sisa panduan ini membahas pembangunan manual; bagian ini membahas jalan pintasnya.

  1. Masuk ke panel kontrol Cloudzy.
  2. Pilih WireGuard dari daftar aplikasi.
  3. Buat VPS di lokasi yang Anda inginkan dengan paket pilihan Anda. Mesin Ubuntu dengan spesifikasi dasar sudah cukup.

Setelah VPS Anda siap, masuk dan jalankan perintah berikut untuk menampilkan konfigurasi Anda:

cat client.conf

Anda akan melihat tampilan seperti ini:

Terminal output of cat client.conf on a one-click WireGuard VPS, showing the Interface and Peer blocks with the keys and endpoint redacted

Gunakan konfigurasi itu untuk membuat terowongan baru di klien WireGuard pada PC Anda, dan koneksinya siap. Kalau Anda lebih suka memahami tiap bagiannya, atau butuh susunan yang tidak dicakup image sekali klik, lanjutkan dengan pembangunan manual di bawah.

Cara Menyiapkan WireGuard di Ubuntu

Six-step WireGuard setup cycle around a VPS: install, generate keys, configure wg0 with 10.8.0.1/24, enable forwarding between wg0 and eth0, add firewall and NAT rules on UDP 51820, then start and verify the interface

Perintah di bawah ini ditujukan untuk rilis Ubuntu Server terkini. Jalankan lewat SSH sebagai pengguna dengan akses sudo. Biarkan sesi SSH tetap terbuka sampai firewall dipastikan benar, dan buat snapshot VPS lebih dulu jika penyedia Anda mendukungnya.

Prasyarat

  • Satu VPS Ubuntu dengan alamat IPv4 publik
  • Akun non-root dengan akses sudo
  • Akses SSH dan detail konsol pemulihan dari penyedia VPS
  • Satu perangkat klien dengan aplikasi resmi WireGuard atau perkakas baris perintah

Anda tidak butuh server Ubuntu kedua. Kliennya bisa berupa PC Windows, Mac, laptop Linux, ponsel Android, atau iPhone.

Langkah 1: Pasang WireGuard

sudo apt update
sudo apt install wireguard -y

Pastikan perkakasnya tersedia:

wg --version

Langkah 2: Buat Kunci Server dengan Aman

Buat direktori WireGuard dan hasilkan pasangan kunci dengan umask yang ketat. Kunci privat tidak boleh disalin ke klien atau muncul di log.

sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'

Tampilkan kuncinya saat Anda perlu menempelkannya ke berkas konfigurasi:

sudo cat /etc/wireguard/server.key
sudo cat /etc/wireguard/server.pub

Langkah 3: Buat Konfigurasi Server

Buka konfigurasi antarmuka:

sudo nano /etc/wireguard/wg0.conf

Tempelkan blok berikut dan ganti SERVER_PRIVATE_KEY dengan kunci privat dari langkah sebelumnya:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY

Jaringan terowongan 10.8.0.0/24 hanyalah contoh. Pilih rentang privat lain jika bertabrakan dengan jaringan rumah, kantor, atau cloud yang perlu Anda jangkau. Jangan tambahkan SaveConfig = true: itu bisa menulis ulang berkasnya saat antarmuka dimatikan dan menghapus perubahan yang Anda ketik sendiri.

sudo chmod 600 /etc/wireguard/wg0.conf

Langkah 4: Aktifkan Penerusan IPv4

VPS harus merutekan paket antara wg0 dan antarmuka jaringan publiknya. Taruh pengaturan ini di berkas sysctl tersendiri:

sudo nano /etc/sysctl.d/70-wireguard-routing.conf
net.ipv4.ip_forward = 1

Terapkan lalu verifikasi:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf
sysctl net.ipv4.ip_forward

Ini mengikuti model perutean dalam panduan gateway WireGuard dari Ubuntu. IPv6 membutuhkan prefiks IPv6 yang dirutekan, alamat terowongan terpisah, penerusan IPv6, dan aturan firewall IPv6; jangan kirim lalu lintas klien ke ::/0 sebelum jalur itu lengkap.

Langkah 5: Tambahkan Aturan Firewall dan NAT

Cari nama antarmuka publik VPS. Pada keluaran di bawah, perhatikan nilai setelah dev; nama yang umum antara lain eth0, ens3, dan enp1s0.

ip route show default

Buka lagi wg0.conf dan tambahkan baris berikut di bawah [Interface]. Ganti eth0 di semua tempat jika antarmuka publik Anda bernama lain:

PostUp = iptables -I FORWARD 1 -i %i -o eth0 -j ACCEPT; iptables -I FORWARD 1 -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PreDown = iptables -D FORWARD -i %i -o eth0 -j ACCEPT; iptables -D FORWARD -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Jika UFW aktif, izinkan SSH sebelum mengubah statusnya, lalu buka port UDP WireGuard:

sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw status

Jika UFW saat ini nonaktif dan Anda ingin mengaktifkannya, pastikan dulu aturan OpenSSH sudah ada. Jangan menonaktifkan lalu mengaktifkan kembali UFW lewat SSH hanya untuk menerapkan aturan ini; itu menambah risiko terkunci yang sebenarnya bisa dihindari.

Langkah 6: Jalankan Antarmuka WireGuard

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0 --no-pager
sudo wg show

Jika layanannya gagal, jalankan journalctl sebelum mengubah hal lain:

sudo journalctl -u wg-quick@wg0 -n 50 --no-pager

Menambahkan Klien WireGuard

A VPS at 10.8.0.1/32 holding separate peer entries for a laptop, tablet, and phone, each with its own keypair and /32 tunnel address, its private key staying on the device, and a QR code marked as containing a private key

Setiap perangkat butuh pasangan kunci dan IP terowongan yang unik. Jangan pernah memakai satu konfigurasi klien di dua perangkat: kunci dan alamat ganda membuat perutean tak terduga serta mencegah pencabutan akses yang bersih.

Langkah 1: Buat Kunci Klien

Aplikasi resmi untuk desktop dan seluler bisa membuat kunci saat Anda membuat terowongan kosong. Di klien Linux, gunakan:

umask 077
wg genkey | tee client.key | wg pubkey > client.pub

Simpan client.key di perangkat itu. Salin hanya client.pub ke server.

Langkah 2: Tambahkan Peer di Server

sudo nano /etc/wireguard/wg0.conf

Tambahkan satu blok peer. Ganti CLIENT_PUBLIC_KEY dengan kunci publik klien:

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Baris Address = 10.8.0.2/32 menetapkan alamat terowongan di sisi klien. Pada blok [Peer] di server, AllowedIPs = 10.8.0.2/32 mengaitkan alamat itu dengan peer ini untuk perutean dan validasi sumber. Pakai 10.8.0.3/32 untuk perangkat berikutnya, lalu lanjutkan naik tanpa duplikat.

sudo systemctl restart wg-quick@wg0

Langkah 3: Susun Konfigurasi Klien

Buat client.conf di klien lalu ganti semua placeholder:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = VPS_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0 menjadikannya terowongan penuh IPv4. Untuk akses ke jaringan VPN saja, pakai AllowedIPs = 10.8.0.0/24. PersistentKeepalive berguna bagi klien di balik NAT yang pemetaannya harus tetap bisa dijangkau saat menganggur; panduan mulai cepat WireGuard panduan mulai cepat mencatat bahwa sebagian besar peer tidak membutuhkannya.

Langkah 4: Impor Konfigurasi

Gunakan panduan pemasangan klien WireGuard untuk mendapatkan klien yang didukung bagi platform Anda.

  • Windows: Pilih Add Tunnel, lalu impor client.conf.
  • macOS: Pilih Import tunnel(s) from file lalu pilih client.conf.
  • Android atau iOS: Impor berkasnya atau pindai kode QR yang dibuat dari berkas itu.

Di klien Ubuntu atau Debian yang menyimpan client.conf, pasang qrencode dan tampilkan berkas itu di terminal klien tersebut:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client.conf

Kode QR itu memuat kunci privat klien. Tampilkan hanya di terminal yang tepercaya, jangan simpan tangkapan layar, dan bersihkan terminal setelah ponsel selesai mengimpornya.

Langkah 5: Verifikasi Terowongan

Aktifkan terowongan, hasilkan lalu lintas dari klien, lalu jalankan pemeriksaan berikut di VPS:

sudo wg show
ip -brief address show wg0

Handshake yang baru terjadi dan penghitung transfer yang terus naik memastikan WireGuard benar-benar bertukar paket. Setelah itu, verifikasi jalur keluar full-tunnel dari sisi klien:

curl -4 https://api.ipify.org; echo

Perintah ini seharusnya mengembalikan alamat IPv4 publik VPS. Kalau tidak ada handshake, periksa alamat endpoint, port UDP, firewall cloud, aturan UFW, dan kuncinya. Kalau handshake berhasil tetapi tidak ada akses internet, periksa penerusan IP, nama antarmuka publik, aturan NAT, dan DNS.

Bisakah WireGuard Ditaruh di Belakang Nginx?

Pengguna dokumentasi modul stream NGINX menjelaskan bagaimana NGINX bisa merelai UDP dari satu port ke port lain, sehingga dapat meneruskan UDP/80 atau UDP/443 ke WireGuard di UDP/51820. Itu relai UDP, bukan reverse proxy HTTP. Ini tidak mengubah WireGuard menjadi TCP atau HTTPS, dan tidak membuat protokolnya tampak seperti lalu lintas web biasa.

Untuk sebagian besar penerapan, mengubah ListenPort WireGuard dan membuka port UDP yang sesuai lebih sederhana daripada menambahkan NGINX. Jika sebuah jaringan memblokir UDP sepenuhnya atau memakai inspeksi paket mendalam, relai UDP lewat NGINX tidak akan menyelesaikan masalahnya. dokumentasi keterbatasan WireGuard dokumentasi keterbatasan WireGuard menyatakan bahwa obfuskasi berada di luar cakupan protokol ini.

Menghubungkan VPS ke Jaringan Rumah

A VPS hub relaying a roaming laptop and phone to a home gateway over WireGuard, with full-tunnel 0.0.0.0/0 and split-tunnel 192.168.1.0/24 paths, PersistentKeepalive on the home peer, and a warning that two overlapping 192.168.1.0/24 networks cannot route cleanly

Sebuah VPS bisa berperan sebagai hub antara klien yang berpindah-pindah dan perangkat di dalam rumah Anda. Peer di sisi rumah yang memulai koneksi WireGuard keluar menuju VPS, sehingga Anda tidak perlu IP publik di rumah. Atur PersistentKeepalive pada peer rumah itu bila ia berada di balik NAT.

Menjangkau seluruh LAN rumah butuh lebih dari sekadar menambah peer. Entri peer di VPS untuk gerbang rumah harus mencantumkan subnet rumah pada AllowedIPs, misalnya 192.168.1.0/24. Klien jarak jauh yang memakai terowongan penuh (AllowedIPs = 0.0.0.0/0) sudah mengirim lalu lintas subnet rumah itu lewat VPS; tambahkan 192.168.1.0/24 di klien hanya bila Anda memakai split tunneling. Gerbang rumah juga harus meneruskan lalu lintas antara WireGuard dan LAN. Tambahkan rute di router rumah, atau aturan NAT yang cakupannya dibatasi dengan hati-hati di gerbang rumah. Periksa dulu apakah ada tumpang tindih: klien yang terhubung ke jaringan 192.168.1.0/24 lain tidak bisa merutekan kedua jaringan dengan rapi tanpa penomoran ulang atau policy routing yang lebih rumit.

WireGuard Swakelola vs. VPN Komersial

Menjalankan sendiri hanya mengubah siapa yang mengoperasikan VPN, bukan otomatis meningkatkan anonimitas. VPS pribadi memberi Anda satu IP keluar yang stabil dan mudah dikaitkan dengan jaringan hosting. Layanan komersial biasanya memberi alamat keluar bersama dan pergantian lokasi yang gampang, tetapi Anda harus bersandar pada kebijakan, operasional, serta audit independen yang mereka publikasikan.

WireGuard sendiri ringan, dan VPS kecil sering kali jadi titik awal yang masuk akal untuk satu orang dengan beberapa perangkat. Jangan anggap angka RAM atau vCPU tertentu sebagai jaminan throughput. Uji dengan jumlah perangkat, wilayah, ukuran paket, dan bandwidth yang sebenarnya Anda pakai, lalu naikkan ukurannya bila CPU jenuh, paket hilang, atau latensi mulai jadi batasnya.

Pilih swakelola bila IP keluar pribadi yang stabil, akses jarak jauh, atau kendali atas server lebih penting daripada pilihan lokasi dan kepraktisan. Pilih VPN komersial bila Anda ingin banyak negara, jalur keluar bersama, dukungan luas untuk perangkat konsumen, dan ada pihak lain yang menangani gangguan.

Faktor KeputusanWireGuard SwakelolaVPN komersial
Model biayaSatu server ditambah waktu Anda untuk mengelolanyaBerlangganan, sering diskon untuk jangka lebih panjang
Lokasi keluarSatu lokasi per serverBanyak lokasi tersedia di aplikasi
PemasanganAnda yang mengatur kunci, perutean, aturan firewall, dan klienPasang aplikasinya lalu masuk
PemeliharaanAnda yang menambal, memantau, mencadangkan, dan menangani masalahPenyedia yang mengoperasikan layanannya
Model privasiAnda mengendalikan server, tetapi penyedia hosting tetap bisa melihat metadataAnda bersandar pada kebijakan penyedia dan audit independen yang mereka publikasikan
Paling CocokIP keluar pribadi yang stabil, akses jarak jauh, dan kendali atas infrastrukturBisa berpindah lokasi, minim perawatan, dan dukungan perangkat yang luas

Kesimpulan

Penerapan WireGuard yang andal bermuara pada lima hal: kunci privat yang terlindungi, alamat peer yang unik, AllowedIPs yang benar, penerusan dan NAT yang berfungsi, serta aturan firewall untuk port UDP yang didengarkan. Verifikasi handshake sekaligus alamat keluar publik sebelum Anda mengandalkan terowongan itu, dan tetap tambal VPS setelah penerapan.

Jika Anda ingin membangun servernya secara manual, mulailah dari Solusi Cloudzy Ubuntu VPS. Kalau Anda lebih suka melewati langkah pemasangan, gunakan penerapan WireGuard sekali klik dari Cloudzy lalu langsung lanjut ke konfigurasi dan verifikasi klien.

Pertanyaan yang Sering Diajukan

Mengapa WireGuard Menampilkan Peer tetapi Tanpa Handshake?

Adanya entri peer hanya membuktikan bahwa konfigurasinya termuat. Tidak adanya handshake biasanya berarti klien tidak sampai ke server atau kuncinya tidak cocok. Periksa Endpoint di klien, IP publik server, port UDP/51820 baik di firewall penyedia maupun di UFW, serta kunci publik di kedua sisi. Hasilkan lalu lintas dari klien sebelum memeriksa, karena WireGuard diam saja saat menganggur.

Mengapa Terowongan Terhubung tetapi Akses Internet Terputus?

Handshake tanpa akses internet biasanya menunjuk ke perutean, bukan enkripsi. Verifikasi net.ipv4.ip_forward, pastikan nama antarmuka publik pada aturan NAT sudah benar, periksa aturan FORWARD, dan uji DNS terpisah dari konektivitas IP mentah. Pastikan juga AllowedIPs di klien sesuai dengan rancangan full-tunnel atau split-tunnel yang Anda inginkan.

Bisakah Dua Perangkat Memakai Satu Konfigurasi WireGuard?

Tidak. Beri setiap perangkat kunci privat, kunci publik, dan alamat terowongan /32 miliknya sendiri. Memakai ulang satu konfigurasi menimbulkan konflik endpoint dan rute, sekaligus membuat Anda tak bisa mencabut akses satu perangkat yang hilang tanpa memutus perangkat lainnya.

Apakah Setiap Klien Butuh PersistentKeepalive?

Tidak. Tambahkan bila peer di balik NAT perlu menjaga pemetaannya tetap terbuka selama menganggur, yang lazim terjadi pada ponsel, gerbang rumah, dan sebagian jaringan yang ketat. Lewatkan saja bila peer itu sering berkomunikasi atau tidak perlu dihubungi dari sisi seberang saat sedang diam.

Bagikan

Lebih banyak dari blog

Lanjutkan membaca.

Siap deploy? Mulai $2,48/bln.

Cloud independen, sejak 2008. AMD EPYC, NVMe, 40 Gbps. Garansi uang kembali 14 hari.