Port forwarding adalah teknik jaringan yang memungkinkan Anda mengakses aplikasi yang berjalan di dalam VPS dari internet. Di Helipod, port forwarding dikonfigurasi langsung melalui dashboard tanpa perlu perintah manual di terminal.
Apa itu Port Forwarding?
Port forwarding (juga dikenal sebagai port mapping) adalah proses mengarahkan lalu lintas dari port eksternal server ke port internal di dalam VPS. Misalnya, aplikasi Node.js berjalan di port 3000 di dalam VPS, tetapi Anda ingin mengaksesnya dari port 8080 di IP publik server.
Internet → Server IP:8080 → VPS Internal:3000
Port Range di Helipod
Setiap VPS di Helipod memiliki rentang port yang dapat digunakan. Rentang port ini ditampilkan di tab Network di dashboard VPS Anda.
- Port Eksternal: Harus berada dalam rentang yang ditentukan (kecuali HTTP/HTTPS)
- Port Internal: Port di mana aplikasi berjalan di dalam VPS
Jenis Port Forwarding
1. TCP/UDP Port Forwarding
Untuk aplikasi non-HTTP seperti:
- Game server (Minecraft, Valheim, dll)
- Database (MySQL, PostgreSQL, Redis)
- Aplikasi custom yang menggunakan TCP/UDP
Cara konfigurasi:
- Buka dashboard VPS → tab Network
- Klik Add Port
- Pilih protokol: TCP, UDP, atau TCP + UDP
- Masukkan Port Eksternal (harus dalam rentang port VPS)
- Masukkan Port Internal (port aplikasi di dalam VPS)
- Klik Add
Contoh kasus: MySQL berjalan di port 3306 di dalam VPS, Anda ingin mengaksesnya dari port 33060 di IP publik.
External: 33060 → Internal: 3306 (MySQL)
2. HTTP/HTTPS Port Forwarding
Untuk aplikasi web yang menggunakan domain:
- Web server (Nginx, Apache)
- Aplikasi Node.js/Python/Go
- API server
Cara konfigurasi:
- Buka dashboard VPS → tab Network
- Klik Add Port
- Pilih protokol: HTTP (port 80) atau HTTPS (port 443)
- Masukkan Domain Anda
- Masukkan Port Internal (port aplikasi di dalam VPS)
- Klik Add
Contoh kasus: Aplikasi Next.js berjalan di port 3000, Anda ingin mengaksesnya melalui https://example.com.
https://example.com → VPS Internal:3000 (Next.js)
Catatan: Untuk HTTP/HTTPS, port eksternal otomatis ditetapkan ke 80 atau 443. Anda tidak perlu (dan tidak bisa) mengubah port eksternal.
Contoh Konfigurasi untuk Berbagai Aplikasi
Node.js/Express App
// Aplikasi berjalan di port 3000
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Konfigurasi di Helipod:
- Protocol: HTTP atau HTTPS
- Domain:
app.andadomain.com - Internal Port:
3000
MySQL Database
# MySQL berjalan di port 3306
sudo systemctl status mysql
Konfigurasi di Helipod:
- Protocol: TCP
- External Port:
33060(atau port lain dalam rentang) - Internal Port:
3306
Minecraft Server
# Minecraft berjalan di port 25565
java -Xmx1024M -Xms1024M -jar server.jar nogui
Konfigurasi di Helipod:
- Protocol: TCP + UDP
- External Port:
25565 - Internal Port:
25565
PostgreSQL Database
# PostgreSQL berjalan di port 5432
sudo systemctl status postgresql
Konfigurasi di Helipod:
- Protocol: TCP
- External Port:
54320 - Internal Port:
5432
Tips Penting
1. Cek Port Yang Sudah Digunakan
Sebelum menambahkan port forwarding, pastikan port belum digunakan oleh aplikasi lain di dalam VPS:
# Cek port yang sedang digunakan
sudo netstat -tlnp
# atau
sudo ss -tlnp
2. Firewall di VPS
Pastikan firewall di dalam VPS mengizinkan lalu lintas pada port yang dikonfigurasi:
# UFW (Ubuntu)
sudo ufw allow 3000/tcp
# firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
3. Binding Aplikasi
Pastikan aplikasi bound ke 0.0.0.0 atau all interfaces, bukan hanya 127.0.0.1:
// ❌ Salah - hanya bisa diakses dari localhost
app.listen(3000, '127.0.0.1');
// ✅ Benar - bisa diakses dari luar
app.listen(3000, '0.0.0.0');
// atau
app.listen(3000);
4. Domain untuk HTTP/HTTPS
Untuk HTTP/HTTPS, Anda perlu mengarahkan DNS domain Anda ke IP VPS:
Type: A Record
Name: @ atau subdomain
Value: IP Address VPS Anda
TTL: Auto
Troubleshooting
Aplikasi Tidak Bisa Diakses
- Cek status aplikasi: Pastikan aplikasi berjalan di port yang benar
- Cek port forwarding: Pastikan port sudah ditambahkan di dashboard
- Cek firewall: Pastikan firewall mengizinkan akses
- Cek binding: Pastikan aplikasi bound ke
0.0.0.0
# Cek apakah port terbuka dari luar
curl -v http://IP_VPS:PORT
Port Sudah Digunakan
Jika port sudah digunakan oleh aplikasi lain:
# Cari proses yang menggunakan port
sudo lsof -i :PORT
# atau
sudo netstat -tlnp | grep :PORT
# Hentikan proses jika perlu
sudo kill PID_PROSES
Koneksi Timeout
Kemungkinan penyebab:
- Firewall memblokir lalu lintas
- Aplikasi tidak berjalan
- Port forwarding belum aktif (butuh beberapa detik)
# Test koneksi dari dalam VPS
telnet localhost PORT
Ringkasan
| Protocol | Port Eksternal | Penggunaan |
|---|---|---|
| TCP | Custom (dalam rentang) | Database, Game Server, Aplikasi Custom |
| UDP | Custom (dalam rentang) | Game Server, VPN, DNS |
| TCP + UDP | Custom (dalam rentang) | Game Server yang butuh kedua protocol |
| HTTP | 80 (otomatis) | Website, API |
| HTTPS | 443 (otomatis) | Website, API (dengan SSL) |
Port forwarding di Helipod dirancang untuk kemudahan penggunaan. Anda tidak perlu memahami IPTables atau HAProxy secara manual - cukup konfigurasi melalui dashboard dan sistem kami akan mengurus sisanya.
Butuh bantuan? Hubungi support kami di [email protected] atau kunjungi docs.helipod.io.