Solutions for Resolving Internet Access Failures on Nginx Proxy Manager (NPM) Backend Servers

Laporan Error & Analisis Masalah

Saat menyiapkan server backend (misalnya di subnet 192.168.70.0/24) yang berada di balik kontainer gateway Nginx Proxy Manager (NPM), seringkali dijumpai kendala di mana server backend bisa melakukan ping ke gateway lokal, namun gagal total saat mengakses internet (mengalami 100% packet loss ke IP publik seperti 8.8.8.8 atau gagal melakukan resolusi domain).



Gejala Error di Lapangan:

  1. Gagal Resolusi DNS Internal: Saat melakukan pengecekan nslookup menggunakan nameserver bawaan (10.0.1.2), terminal memunculkan error timeout:

    Plaintext
    ;; communications error to 10.0.1.2#53: timed out
    ;; no servers could be reached
    
  2. Ping IP Publik RTO / 100% Loss:

    Plaintext
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss
    
  3. Penyebab Utama (Root Cause):

    • DNS Timeout: Resolver DNS lokal tidak dapat meneruskan query keluar jaringan.

    • Aturan NAT Masquerade Belum Aktif: Kontainer NPM belum memiliki aturan iptables pada tabel POSTROUTING untuk menerjemahkan IP lokal subnet backend agar diizinkan keluar melalui interface publik utama (eth0).

    • Kebijakan Default FORWARD Drop: Chain FORWARD pada iptables di kontainer NPM secara default diatur ke DROP, sehingga paket data dari subnet lokal tertahan dan tidak diteruskan ke luar.

Panduan Langkah Perbaikan (Fix Guide)

1.1. Perbaiki DNS Resolver di Server Backend:Perbarui file resolv.conf.

Masuk ke terminal server backend, lalu ubah konfigurasi DNS secara manual menggunakan DNS publik yang stabil (Cloudflare & Google):

Bash
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Verification: Jalankan ping -c 3 1.1.1.1 untuk memastikan server backend dapat merespons jaringan luar.

2.2. Aktifkan IP Forwarding di Kernel NPM:Aktifkan sysctl net.ipv4.ip_forward.

Masuk ke terminal server NPM, lalu pastikan parameter kernel untuk penerusan paket aktif:

Bash
sysctl -w net.ipv4.ip_forward=1

Verification: Perintah cat /proc/sys/net/ipv4/ip_forward harus mengembalikan nilai 1.

3.3. Tambahkan Aturan NAT Masquerade:Konfigurasi POSTROUTING iptables.

Tambahkan aturan NAT pada tabel POSTROUTING agar paket dari subnet lokal backend diizinkan keluar melalui interface utama eth0:

Bash
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o eth0 -j MASQUERADE

Verification: Cek dengan iptables -t nat -L POSTROUTING -v -n untuk memastikan baris masquerade sudah terikat pada interface eth0.

4.4. Izinkan Lalu Lintas Forwarding:Buka jalur FORWARD iptables.

Izinkan paket keluar dari interface lokal (bem) menuju eth0 serta izinkan paket balasan (stateful) masuk kembali:

Bash
iptables -A FORWARD -i bem -o eth0 -s 192.168.70.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Verification: Jalankan iptables -L FORWARD -v -n --line-numbers dan pastikan counter paket bertambah saat server backend melakukan akses ke luar.

5.5. Simpan Konfigurasi Secara Permanen:Instal iptables-persistent.

Agar konfigurasi tidak hilang saat kontainer atau server direstart, instal paket persistensi dan simpan pengaturannya:

Bash
apt update && apt install iptables-persistent -y
netfilter-persistent save

Verification: Proses penyimpanan selesai tanpa pesan error, dan aturan akan otomatis dimuat ulang saat sistem melakukan reboot.


Subscribe to receive free email updates:

0 Response to "Solutions for Resolving Internet Access Failures on Nginx Proxy Manager (NPM) Backend Servers"

Posting Komentar

Aturan Berkomentar :

1. Berbicara menggunakan bahasa yang enak didengar. Tidak Untuk menyinggung perasaan orang Lain.

2.Spamming (Spam Comment)

3.Kalau Mau ngopy-paste artikel disini, Berikan sumbernya