Mau akses NVR CCTV, web server, atau game server dari luar rumah/kantor lewat MikroTik? Itu namanya DST-NAT (Destination NAT) — sering disebut "port forwarding". Bisa disetting lewat WinBox (klik-klik), tapi kalau paham script-nya, kamu bisa lebih cepat, bisa backup/restore konfigurasi, dan lebih gampang debug kalau ada yang salah.
DST-NAT vs SRC-NAT — Arahnya Kebalikan
Dua jenis NAT ini sering ketuker karena sama-sama "NAT", padahal arahnya berlawanan:
| SRC-NAT (Masquerade) | DST-NAT (Port Forwarding) | |
|---|---|---|
| Arah traffic | LAN → Internet (keluar) | Internet → LAN (masuk) |
| Contoh kasus | HP di rumah browsing internet | Orang luar akses NVR CCTV kamu |
| Yang diubah | IP source (jadi IP publik) | IP destination (jadi IP lokal) |
| Chain di script | srcnat |
dstnat |
Script Dasar — Forward 1 Port
Skenario: kamu punya web server di 192.168.88.10 port 80, mau bisa diakses dari internet lewat IP publik router (interface ether1).
/ip firewall nat
add chain=dstnat action=dst-nat \
in-interface=ether1 protocol=tcp dst-port=80 \
to-addresses=192.168.88.10 to-ports=80 \
comment="Forward web server"
ether1 dengan interface yang menghadap internet (WAN) di router kamu, dan 192.168.88.10 dengan IP server tujuan. Pastikan server itu sudah IP statis / DHCP reservation — kalau IP-nya berubah, rule ini jadi salah sasaran.Skenario Umum Lainnya
Translasi Port (Port Luar Beda dengan Port Dalam)
Kadang kamu tidak mau expose port default (misal port 80 web) langsung — pakai port "tersamar" di luar (misal 8080), tapi tetap diarahkan ke port 80 di dalam:
add chain=dstnat action=dst-nat \
in-interface=ether1 protocol=tcp dst-port=8080 \
to-addresses=192.168.88.10 to-ports=80 \
comment="Web server via port tersamar"
Beberapa Service Sekaligus (IP Publik Sama)
Kalau cuma punya 1 IP publik tapi mau forward ke beberapa server, kuncinya: port luar harus beda-beda (karena IP publik cuma satu), baru diarahkan ke port dalam masing-masing server.
/ip firewall nat
add chain=dstnat action=dst-nat protocol=tcp dst-port=8080 \
to-addresses=192.168.88.10 to-ports=80 comment="Web server"
add chain=dstnat action=dst-nat protocol=tcp dst-port=8000 \
to-addresses=192.168.88.20 to-ports=80 comment="NVR CCTV"
Range Port (Aplikasi yang Butuh Banyak Port)
Beberapa aplikasi (misal software CCTV tertentu, game server) butuh rentang port, bukan cuma satu. RouterOS bisa forward sekaligus pakai range, asal jumlah port di kedua sisi (luar & dalam) sama:
add chain=dstnat action=dst-nat protocol=tcp \
dst-port=5000-5010 to-addresses=192.168.88.10 \
to-ports=5000-5010 comment="Range port aplikasi"
Protokol UDP (Bukan Cuma TCP)
Beberapa aplikasi pakai UDP, bukan TCP (misal VoIP, beberapa game, VPN). Cukup ganti protocol=tcp jadi protocol=udp — atau buat dua rule terpisah kalau butuh keduanya:
add chain=dstnat action=dst-nat protocol=udp \
dst-port=51820 to-addresses=192.168.88.10 \
to-ports=51820 comment="WireGuard UDP"
Hairpin NAT — Akses Servis Sendiri dari Dalam LAN
Kasus klasik yang bikin bingung: DST-NAT sudah benar, orang dari INTERNET bisa akses server kamu pakai IP publik — tapi perangkat LAIN di LAN yang sama (rumah/kantor) malah GAGAL akses pakai IP publik itu juga. Ini disebut masalah hairpin NAT / NAT loopback, dan butuh rule tambahan:
/ip firewall nat
add chain=srcnat action=masquerade \
src-address=192.168.88.0/24 \
dst-address=192.168.88.10 protocol=tcp dst-port=80 \
comment="Hairpin NAT web server"
192.168.88.0/24 dengan subnet LAN kamu. Rule ini membuat traffic dari LAN yang menuju IP server LAN sendiri (lewat proses DST-NAT) tetap ter-masquerade dengan benar — tanpa ini, biasanya koneksi timeout atau balik ke request awal (asymmetric routing).Troubleshooting — Kenapa Port Masih Tertutup
Urutan cek paling efisien kalau DST-NAT sudah disetting tapi masih tidak bisa diakses dari luar:
/ip firewall filter print. Kalau ada rule chain=forward action=drop di atas, traffic yang sudah lolos DST-NAT bisa tetap keblokir di sini. Tambahkan rule accept untuk traffic tujuan server kamu, DI ATAS rule drop tersebut (urutan rule penting di RouterOS)./ip address print), berarti ISP kasih kamu CGNAT — DST-NAT di router sendiri sudah benar tapi ISP tidak meneruskan port dari internet ke rumahmu sama sekali./ip firewall nat print.netstat di server), dan tidak ada firewall LOKAL di server itu sendiri (Windows Firewall, ufw di Linux, dll) yang memblokir koneksi masuk.Keamanan — Jangan Asal Buka Port
DST-NAT membuka pintu dari internet langsung ke perangkatmu — ini nyaman tapi juga risiko kalau tidak hati-hati.
- Jangan forward port admin panel router/NVR/NAS langsung ke internet — kalau butuh akses remote, pertimbangkan VPN (WireGuard/OpenVPN) dulu, baru akses panel admin lewat tunnel itu
- Batasi source IP kalau memungkinkan — parameter
src-addressdi rule DST-NAT bisa membatasi siapa saja yang boleh mengakses, bukan seluruh internet - Ganti port default untuk mengurangi noise dari bot scanning otomatis (bukan proteksi sejati, tapi mengurangi log spam)
- Pastikan service di dalam sudah update & password kuat — DST-NAT cuma soal routing, keamanan aplikasi di baliknya tetap tanggung jawab terpisah
FAQ — Pertanyaan yang Sering Ditanyakan
Kesimpulan
DST-NAT itu soal mengarahkan traffic dari luar ke perangkat tertentu di dalam — kebalikan dari SRC-NAT/masquerade yang mengarahkan traffic LAN keluar ke internet (dibahas di Modul 03 NAT & Routing Cekademi). Script dasarnya cuma satu baris add chain=dstnat action=dst-nat, tapi tiga hal sering bikin orang stuck: lupa buka firewall filter (NAT rule ada, tapi filter forward masih drop), lupa hairpin NAT (perangkat sendiri di LAN tak bisa akses IP publiknya sendiri), dan CGNAT dari ISP (DST-NAT di router sendiri sudah benar, tapi ISP tak kasih IP publik asli). Cek dulu IP publikmu di Cek IP Saya, lalu verifikasi port yang sudah di-forward pakai Port Checker cekipsaya.com.