Daftar Isi
Banyak pengguna internet di rumah atau kantor tidak mendapat
IP publik langsung karena ISP menggunakan
CGNAT. Akibatnya, server lokal (misalnya web server,
API, atau aplikasi lain) tidak bisa diakses dari luar jaringan.
Solusinya adalah dengan memanfaatkan VPS (Virtual Private
Server) yang memiliki IP publik, lalu membuat tunnel
VPN menggunakan WireGuard, dan melakukan
port forwarding agar trafik bisa diarahkan ke server
lokal.
🔹 Konsep Dasar
[Client Internet] → [IP Publik VPS] → [VPN Tunnel (WireGuard)] → [Server Lokal]
- VPS bertindak sebagai jembatan dengan IP
publik. - Server lokal terhubung ke VPS melalui VPN
WireGuard. - iptables port forwarding di VPS akan mengarahkan
request internet ke server lokal.
🔹 Langkah Implementasi
1. Instalasi WireGuard
Jalankan perintah di VPS dan server
lokal:
sudo apt update
sudo apt install wireguard -y
2. Konfigurasi
WireGuard di VPS (Sebagai Server)
a. Buat keypair VPS
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
b. Ambil hasil
cat /etc/wireguard/server_private.key
cat /etc/wireguard/server_public.key
c. Buat file
konfigurasi /etc/wireguard/wg0.conf
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 10.8.0.1/24
ListenPort = 51820
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Ganti
SERVER_PRIVATE_KEYdengan private key VPS, dan
CLIENT_PUBLIC_KEYdengan public key dari server lokal (akan
dibuat pada langkah berikutnya).
3.
Konfigurasi WireGuard di Server Lokal (Sebagai Client)
a. Buat keypair client
wg genkey | tee /etc/wireguard/client_private.key | wg pubkey > /etc/wireguard/client_public.key
b. Ambil hasil
cat /etc/wireguard/client_private.key
cat /etc/wireguard/client_public.key
c. Buat file
konfigurasi /etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = IP_VPS:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Ganti
CLIENT_PRIVATE_KEYdengan private key server
lokal, danSERVER_PUBLIC_KEYdengan public key dari
VPS.
4. Jalankan WireGuard
Di kedua mesin:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Cek status koneksi:
wg
Jika berhasil, VPS memiliki alamat 10.8.0.1 dan server
lokal 10.8.0.2.
5. Port Forwarding di VPS
Agar IP publik VPS bisa mengarah ke server lokal:
Contoh: forward HTTP (80) dari VPS ke server lokal
(port 80):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.8.0.2:80
sudo iptables -A FORWARD -p tcp -d 10.8.0.2 --dport 80 -j ACCEPT
Jika ingin juga HTTPS (443):
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.8.0.2:443
sudo iptables -A FORWARD -p tcp -d 10.8.0.2 --dport 443 -j ACCEPT
Agar aturan permanen, simpan dengan:
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
6. Uji Akses
- Dari luar, coba buka:
http://IP_VPSatau jika ada domain, arahkan DNS ke IP VPS.
- Request akan diteruskan ke server lokal melalui WireGuard
tunnel.
🔹 Kelebihan & Kekurangan
✅ Kelebihan: – Bisa mengakses server lokal meski di
belakang NAT/CGNAT. – Lebih cepat dan ringan daripada L2TP/OpenVPN. –
Konfigurasi sederhana. – Bisa multi-server lokal dengan satu VPS.
⚠️ Kekurangan: – Semua trafik harus lewat VPS
(menambah latensi). – Perlu mengatur & memelihara VPS.
🔹 Kesimpulan
Dengan memanfaatkan WireGuard VPN + port forwarding di
VPS, Anda bisa meng-online-kan server lokal meski tanpa IP
publik dari ISP. Solusi ini praktis untuk: – Hosting web pribadi. – API
server untuk aplikasi mobile. – Remote akses ke jaringan lokal.





