Mengekspos layanan lokal ke Internet dari Ubuntu : Panduan lengkap tentang port forwarding
Diterbitkan 28 May 2025
- Masalah: NAT dan alamat pribadi
- Langkah 1: Identifikasi alamat IP publik Anda
- Langkah 2 : Mengetahui alamat IP lokal dari mesin Ubuntu Anda
- Langkah 3 : Mengatur forwarding port pada router Anda
- Langkah 4: Konfigurasi layanan di Ubuntu
- Langkah 5 : Konfigurasi firewall Ubuntu
- Tahap 6 : Pengujian dan validasi
- Praktik terbaik dan keamanan
- Alternatif untuk port forwarding
- Pemecahan Masalah
- Kesimpulan
-
Prasyarat yang diasumsikan : pengetahuan dasar Ubuntu, terminal, konsep jaringan dasar
-
Konsep Teknis : NAT, forwarding port, firewall, proxy terbalik
-
Perintah sistem : penggunaan terminal, konfigurasi jaringan
-
Bagian lanjutan : pemantauan, keamanan, alternatif cloud
Masalah: NAT dan alamat pribadi
Secara default, box internet Anda menggunakan NAT (Network Address Translation) untuk berbagi satu alamat IP publik antara semua perangkat di jaringan rumah Anda. Mesin lokal Anda menggunakan alamat IP pribadi (192.168.x.x, 10.x.x.x, dst.) yang tidak dapat dirutekan di Internet.
Saat Anda menjalankan layanan pada mesin Ubuntu Anda (misalnya server web pada port 8080), layanan tersebut hanya dapat diakses dari jaringan lokal Anda. Untuk membuatnya dapat diakses dari Internet, kita harus mengkonfigurasi alihkan port.
Langkah 1: Identifikasi alamat IP publik Anda
Pertama-tama, mari kita dapatkan alamat IP publik koneksi internet Anda:
# Plusieurs méthodes au choix
curl ifconfig.me
curl ipecho.net/plain
wget -qO- http://ipecho.net/plain
# Ou encore
curl -s checkip.amazonaws.com
Alamat IP ini akan digunakan oleh pengguna internet untuk mengakses layanan Anda.
Langkah 2 : Mengetahui alamat IP lokal dari mesin Ubuntu Anda
Mesin Ubuntu Anda memiliki alamat IP pribadi di jaringan lokal Anda. Untuk mengetahuinya :
# Afficher toutes les interfaces réseau
ip addr show
# Ou plus spécifiquement pour l'interface principale
ip route get 1.1.1.1 | awk '{print $7; exit}'
# Alternative avec hostname
hostname -I | awk '{print $1}'
Catat alamat ini (misalnya`192.168.1.100`), kita akan membutuhkannya untuk konfigurasi.
Langkah 3 : Mengatur forwarding port pada router Anda
Konfigurasi bervariasi tergantung pada model kotak Anda, tetapi prinsipnya tetap sama:
Akses ke antarmuka administrasi
Buka browser Anda dan buka antarmuka web dari kotak Anda :
-
Freebox:`192.168.1.1` ou
mafreebox.freebox.fr -
Livebox Orange:`192.168.1.1`
-
SFR Box :
192.168.1.1 -
Bbox Bouygues:`192.168.1.254`
Konfigurasi Pengalihan
Cari bagian khusus untuk port forwarding (nama-nama bervariasi):
-
Pengalihan port
-
NAT/PAT
-
Penerusan Port
-
Server game
Buat aturan baru dengan parameter ini:
| lapangan | nilai |
|---|---|
Nama/Deskripsi |
Layanan Web Ubuntu" (atau nama eksplisit lain) |
Port eksternal (atau port publik) |
8080 |
Alamat IP internal |
Alamat IP mesin Ubuntu Anda (contoh: 192.168.1.100) |
Port internal (atau port pribadi) |
8080 |
protokol |
TCP |
keadaan |
diaktifkan |
Langkah 4: Konfigurasi layanan di Ubuntu
Pastikan layanan Anda mendengarkan di semua antarmuka, bukan hanya di localhost:
# ✅ Correct : écoute sur toutes les interfaces
python3 -m http.server 8080 --bind 0.0.0.0
# ❌ Incorrect : écoute seulement en local
python3 -m http.server 8080 --bind 127.0.0.1
Untuk memastikan bahwa layanan Anda mendengarkan dengan benar:
# Vérifier les ports en écoute
sudo netstat -tlnp | grep :8080
# ou avec ss (plus moderne)
sudo ss -tlnp | grep :8080
Anda seharusnya melihat sesuatu seperti`0.0.0.0:8080`dan tidak`127.0.0.1:8080`.
Langkah 5 : Konfigurasi firewall Ubuntu
Ubuntu menggunakan UFW (Uncomplicated Firewall) secara default. Periksa statusnya dan izinkan port jika diperlukan :
# Vérifier le statut du pare-feu
sudo ufw status
# Si le pare-feu est actif, autoriser le port 8080
sudo ufw allow 8080/tcp
# Ou plus spécifiquement pour un service web
sudo ufw allow 'Apache' # si vous utilisez Apache
sudo ufw allow 'Nginx Full' # si vous utilisez Nginx
Tahap 6 : Pengujian dan validasi
Uji dari jaringan lokal
Pertama, uji akses dari sebuah komputer lain di jaringan lokal Anda:
# Remplacez par l'IP locale de votre machine Ubuntu
curl http://192.168.1.100:8080
Test dari luar
Sekarang, uji dari Internet menggunakan IP publik Anda :
# Remplacez par votre IP publique
curl http://VOTRE_IP_PUBLIQUE:8080
Anda juga dapat menggunakan alat online seperti :
Praktik terbaik dan keamanan
keamanan dasar
# Configurer fail2ban pour protéger contre les attaques par force brute
sudo apt update && sudo apt install fail2ban
# Limiter l'accès avec UFW (exemple : autoriser seulement certaines IP)
sudo ufw allow from 203.0.113.0/24 to any port 8080
Pemantauan koneksi
# Surveiller les connexions en temps réel
sudo netstat -an | grep :8080
# Logs des connexions (selon votre application)
sudo tail -f /var/log/nginx/access.log # pour Nginx
sudo journalctl -f -u your-service # pour un service systemd
Penggunaan reverse proxy
Untuk keamanan dan fleksibilitas yang lebih baik, pertimbangkan penggunaan reverse proxy seperti Nginx :
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Alternatif untuk port forwarding
Solusi cloud
-
ngrokterowongan aman sementara
-
Cloudflare Tunnelsolusi gratis dan aman
-
serveo.net: tunnel SSH sederhana
# Exemple avec ngrok
ngrok http 8080
# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net
VPS dan reverse proxy
Untuk penggunaan profesional, pertimbangkan menggunakan VPS dengan reverse proxy yang mengarah ke infrastruktur lokal Anda melalui VPN.
Pemecahan Masalah
Masalah umum
| Masalah | Solusi |
|---|---|
Layanan tidak dapat diakses dari luar |
Periksa konfigurasi port forwarding dan bahwa layanan mendengarkan pada 0.0.0.0 |
Koneksi ditolak |
Layanan tidak dimulai atau hanya mendengarkan pada 127.0.0.1 |
Timeout koneksi |
Masalah firewall (box atau Ubuntu) atau port forwarding yang salah dikonfigurasi |
IP publik berubah secara teratur |
Konfigurasi DNS dinamis (DynDNS, No-IP, etc.) |
Debug jaringan
# Tester la connectivité locale
telnet localhost 8080
# Tester depuis une autre machine du réseau
telnet 192.168.1.100 8080
# Vérifier les routes réseau
ip route show
# Analyser le trafic réseau
sudo tcpdump -i any port 8080
Kesimpulan
Menampilkan layanan lokal ke Internet memerlukan konfigurasi yang berhati-hati untuk port forwarding, keamanan, dan monitoring. Meskipun pendekatan ini sempurna untuk pengembangan atau proyek pribadi, pertimbangkan alternatif yang lebih kuat (VPS, CDN, layanan cloud) untuk penggunaan produksi.
Yang penting adalah selalu mengingat keamanan: gunakan kata sandi yang kuat, perbarui sistem Anda secara teratur, dan pantau akses ke layanan Anda yang terpapar.
Jangan ragu untuk berbagi pengalaman dan pertanyaan Anda di komentar!