WireGuard sudah menjadi salah satu protokol VPN yang paling banyak dipakai karena ringan, cepat, dan konfigurasinya relatif sederhana. Banyak pengguna mencari cara membuat tunnel WireGuard untuk menghubungkan server, perangkat kantor, atau ponsel ke jaringan privat tanpa harus berlangganan layanan VPN komersial. Sayangnya, istilah tunnel, peer, AllowedIPs, dan DNS sering muncul bersamaan tanpa penjelasan yang runtut, sehingga pemula mudah tersesat di tengah proses.
Artikel ini membahas topik tersebut secara lengkap: mulai dari konsep tunnel, langkah config di sisi server dan client, sampai pengaturan DNS agar koneksi tidak bocor. Semua contoh memakai konfigurasi standar wg-quick yang bisa dijalankan di VPS Linux, lalu diuji dari perangkat client.
Apa Itu Tunnel WireGuard dan Kenapa Banyak Dipilih
Tunnel WireGuard adalah jalur komunikasi terenkripsi antara dua perangkat atau lebih yang membentuk jaringan privat di atas jaringan publik. WireGuard tidak membuat aplikasi baru di atas koneksi Anda; ia bekerja di lapisan jaringan dengan membungkus paket IP ke dalam paket UDP terenkripsi. Dari sudut pandang aplikasi, perangkat seolah berada di jaringan lokal yang sama meskipun lokasinya berjauhan.
Protokol ini dirancang dengan basis kode kecil, memakai kriptografi modern seperti Curve25519, ChaCha20, dan Poly1305, serta tidak menyimpan state koneksi yang rumit. Hasilnya, handshake berlangsung cepat, konsumsi CPU rendah, dan tunnel tetap nyaman dipakai di perangkat dengan baterai terbatas. Itulah sebabnya WireGuard sering dipilih untuk akses jarak jauh, menghubungkan kantor cabang, maupun kebutuhan latensi rendah seperti bermain game.
Cara Kerja Handshake dan Kunci
Setiap peer memiliki sepasang kunci: private key yang disimpan rahasia dan public key yang dibagikan ke peer lain. Saat tunnel dibuka, kedua pihak melakukan handshake untuk menyepakati kunci sesi sementara. Setelah sesi terbentuk, data mengalir dengan enkripsi simetris yang efisien. Karena public key bersifat unik, setiap peer harus didaftarkan secara eksplisit di konfigurasi peer lawannya.
Konsep Dasar yang Perlu Dipahami Sebelum Config
Sebelum menyalin contoh konfigurasi, pahami tiga komponen berikut agar tidak salah menempatkan nilai.
- Interface adalah antarmuka virtual, biasanya bernama
wg0, yang menyimpan alamat IP privat tunnel dan port listen. - Peer adalah perangkat lain yang terhubung ke interface tersebut, masing-masing dengan public key dan alamat IP tunnel sendiri.
- AllowedIPs menentukan paket tujuan mana yang dikirim melalui peer. Di sisi server, isinya biasanya alamat tunnel client; di sisi client, isinya bisa
0.0.0.0/0untuk mengarahkan seluruh trafik.
Kesalahan paling umum adalah menukar private key dengan public key atau menulis AllowedIPs yang terlalu luas di sisi server. Di server, batasi AllowedIPs ke alamat tunnel client agar routing tetap rapi.
Membuat Tunnel WireGuard: Langkah Config
Berikut alur praktis yang bisa diikuti di VPS Linux berbasis Debian atau Ubuntu.
1. Instalasi Paket
Perbarui indeks paket lalu instal WireGuard beserta tools pendukungnya.
sudo apt update
sudo apt install wireguard resolvconf -y
Paket resolvconf diperlukan bila Anda ingin WireGuard mengatur DNS otomatis di client Linux.
2. Membuat Kunci Server dan Client
Buat direktori konfigurasi dengan izin ketat, lalu hasilkan kunci untuk masing-masing pihak.
sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key
Simpan private key hanya di perangkat pemiliknya. Jangan pernah mengirim private key server ke client atau menempelkannya di grup chat.
3. Konfigurasi Server
Buat file /etc/wireguard/wg0.conf dengan isi seperti berikut. Ganti nilai kunci dengan hasil langkah sebelumnya.
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <server-private-key>
[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.8.0.2/32
Aktifkan IP forwarding agar client bisa mengakses internet melalui server, lalu jalankan interface-nya.
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sudo systemctl enable --now wg-quick@wg0
4. Konfigurasi Client
Di perangkat client, buat file wg0.conf dengan arah kunci yang berbeda: private key client dan public key server.
[Interface]
Address = 10.8.0.2/24
PrivateKey = <client-private-key>
DNS = 1.1.1.1, 9.9.9.9
[Peer]
PublicKey = <server-public-key>
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
PersistentKeepalive membantu menjaga tunnel tetap terbuka di balik NAT. Setelah file siap, jalankan sudo wg-quick up wg0 dan periksa status handshake dengan sudo wg show.
Mengatur DNS di WireGuard
Baris DNS pada blok Interface menentukan server DNS yang dipakai selama tunnel aktif. Ini penting karena tanpa pengaturan DNS, perangkat bisa tetap memakai DNS dari jaringan lokal sehingga permintaan nama domain keluar dari tunnel. Akibatnya terjadi DNS leak: trafik data terenkripsi, tetapi informasi situs yang Anda buka masih terlihat oleh penyedia jaringan.
Untuk tunnel penuh, gunakan resolver publik tepercaya seperti 1.1.1.1 dan 9.9.9.9, atau resolver internal bila Anda menghubungkan perangkat ke jaringan kantor. Di Linux, wg-quick memakai resolvconf untuk menulis ulang /etc/resolv.conf selama interface aktif dan mengembalikannya saat interface dimatikan. Di Android, iOS, Windows, dan macOS, aplikasi resmi WireGuard membaca baris DNS yang sama.
Bila Anda hanya ingin mengarahkan sebagian trafik, gunakan split tunneling dengan AllowedIPs yang lebih sempit, misalnya hanya 10.8.0.0/24 dan subnet kantor. Pembahasan lebih detail tentang skenario bermain game dengan latensi rendah bisa dibaca di artikel tunnel WireGuard untuk MLBB, yang memakai prinsip DNS dan routing serupa.
Menjalankan WireGuard di Server yang Juga Melayani Web
WireGuard memakai UDP pada port 51820, sehingga secara default tidak bentrok dengan web server yang mendengarkan port 80 dan 443. Namun banyak pengguna memasang panel web seperti wg-easy untuk mengelola peer, lalu mengaksesnya melalui domain. Pada skenario ini, panel tersebut perlu di-proxy oleh web server, dan aturan proxy harus meneruskan header yang benar agar login serta WebSocket berjalan normal.
Jika Anda mengelola sendiri server webnya, pelajari dulu cara kerja reverse proxy, blok server, dan direktif location di dokumentasi resmi Nginx. Pastikan juga port UDP 51820 dibuka di firewall, sementara panel admin hanya dapat diakses dari IP tepercaya atau melalui tunnel itu sendiri.
Tips Keamanan dan Troubleshooting Singkat
Beberapa kebiasaan berikut membuat tunnel lebih aman dan mudah dirawat:
- Batasi izin file konfigurasi dengan
chmod 600dan milikkan ke root. - Gunakan port UDP kustom bila ingin mengurangi pemindaian otomatis, tetapi tetap andalkan kunci, bukan kerahasiaan port.
- Rotasi kunci secara berkala dan hapus peer yang sudah tidak dipakai.
- Simpan konfigurasi dalam sistem manajemen konfigurasi bila jumlah peer banyak.
Untuk masalah umum, periksa tiga hal ini. Jika wg show tidak menampilkan handshake, cek endpoint, port, dan firewall. Jika handshake berhasil tetapi tidak ada internet, periksa IP forwarding serta aturan NAT. Jika domain gagal dibuka padahal ping ke IP berhasil, periksa baris DNS dan status resolvconf. Langkah serupa juga dibahas dalam panduan cara membuat VPN tunnel dengan WireGuard yang bisa dijadikan pembanding konfigurasi.
Kesimpulan
Membuat tunnel WireGuard pada dasarnya adalah menyiapkan interface, mendaftarkan peer, dan memastikan routing serta DNS konsisten di kedua sisi. Dengan konfigurasi yang rapi, tunnel ini mampu menghubungkan perangkat ke jaringan privat secara cepat, hemat resource, dan aman. Mulailah dari satu client, uji handshake serta resolusi DNS, lalu tambahkan peer lain setelah semuanya stabil. Setelah fondasi ini dikuasai, Anda bisa mengembangkan tunnel untuk kebutuhan kantor, akses server produksi, atau sekadar menjaga privasi saat memakai jaringan publik.
Foto sampul oleh Petter Lagson di Unsplash.
Punya ide aplikasi atau website?
Saya membangun aplikasi mobile, web, server, dan jaringan untuk bisnis — dari konsultasi sampai live. Konsultasi pertama gratis.
Konsultasi Gratis via WhatsApp


