Dokumentasi

Mulai cepat + penjelasan fitur tiap bagian dan tiap perangkat (terus diperbarui)

Deteksi server NAT & saran penetrasi

Dokumen ini menjelaskan bagaimana panel secara otomatis mengenali server NAT, membedakan "NAT yang portnya dapat diatur" dan "NAT yang portnya tidak dapat diatur", serta mengarahkan pengguna untuk memakai operasional penetrasi bila perlu.

Pahami dulu: apa itu NAT

Server NAT adalah server yang "hanya memiliki IP jaringan internal, tanpa IP publik sendiri". Misalnya banyak NAT VPS murah, penyedia hanya memberikan alamat jaringan internal (seperti 192.168.x.x), Anda tidak dapat mengaksesnya langsung dari internet publik, dan hanya bisa mengaksesnya melalui pemetaan port yang disediakan penyedia (memetakan port publik tertentu ke jaringan internal Anda).

Ringkasan fitur

Setelah server ditambahkan, panel otomatis mendeteksi apakah mesin ini bertipe NAT (hanya memiliki alamat jaringan internal, tanpa IP publik sendiri) saat koneksi SSH berhasil. Setelah NAT terdeteksi, akan muncul lencana kecil pada kartu server, dan di bagian atas "Ringkasan" ditampilkan penjelasan terpusat. Pengguna dapat mengklik lencana kuning untuk memastikan apakah server NAT tersebut dapat mengatur penerusan port sendiri di panel penyedia, sehingga dapat memutuskan apakah perlu memakai operasional penetrasi.

Mengapa jenis NAT perlu dibedakan

"IP jaringan internal" ≠ "perlu penetrasi". Server NAT terbagi dua jenis:

JenisCiriPerlu penetrasi?
NAT yang portnya dapat diaturPenyedia menyediakan panel pemetaan port, pengguna dapat memetakan port publik ke port jaringan internal sendiri❌ Tidak perlu, port bisa diurus sendiri
NAT yang portnya tidak dapat diaturPenyedia hanya memetakan secara tetap beberapa port seperti SSH(22), port lain tidak bisa masuk dari internet publik✅ Perlu operasional penetrasi

Hanya "NAT yang portnya tidak dapat diatur" yang memerlukan operasional penetrasi. NAT yang portnya dapat diatur bisa memetakan portnya sendiri, pemakaiannya tidak berbeda dengan mesin ber-IP publik, dan tidak seharusnya diingatkan berulang kali.

Prinsip deteksi

Setelah koneksi SSH berhasil, panel menjalankan perintah hanya-baca ip -4 addr show untuk membaca IP kartu jaringan lokal server dan menilai apakah semuanya termasuk segmen jaringan internal:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 100.64.0.0/10 (CGNAT, NAT tingkat operator)
  • 127.0.0.0/8, 169.254.0.0/16, 0.0.0.0/8

Selama terdapat satu saja IP segmen publik, dinilai "memiliki IP publik" (bukan NAT); jika semuanya segmen jaringan internal, dinilai "NAT".

> Perintah deteksi bersifat hanya-baca dan tidak akan mengubah status apa pun di server. Hasil deteksi ditulis ke basis data, hanya dideteksi sekali saat koneksi pertama, selanjutnya hasilnya langsung dipakai ulang sehingga tidak memperlambat koneksi.

Lokasi lencana dan penjelasan

Setelah NAT terdeteksi, pemberitahuan ditampilkan di dua tempat:

1. Tab "Ringkasan" pada panel manajemen sistem: setelah mengklik "Manajemen sistem" pada kartu server dan masuk ke panel, tab pertama "Ringkasan" akan menampilkan banner pemberitahuan NAT terkait — server bertanda kuning menampilkan penjelasan kuning (beserta panduan menghapusnya), server bertanda merah menampilkan panduan penetrasi merah. Pemberitahuan hanya muncul pada server koneksi langsung yang NAT dan belum dikonfirmasi, tidak memenuhi kartu.

2. Lencana kecil pada kartu: pada kartu hanya tersisa satu lencana kecil, dengan tiga status:

LencanaWarnaArtiPerilaku saat diklik
NATKuningTerdeteksi NAT (IP lokal di segmen internal), menunggu konfirmasiMemunculkan dialog konfirmasi
Perlu penetrasiMerahPort tidak dapat diakses dari internet publik, perlu penetrasiMemunculkan panduan operasional penetrasi
(tanpa lencana)—Sudah dikonfirmasi "port tidak bermasalah", tanda dihapus—

Lencana kuning NAT adalah status "menunggu konfirmasi": mengkliknya memunculkan dialog konfirmasi dengan dua pilihan:

  • "Port tidak bermasalah, hapus tanda" → lencana hilang dan tidak akan diingatkan lagi setelahnya;
  • "Port tidak dapat diakses, tandai perlu penetrasi" → lencana berubah merah dan mengarahkan ke operasional penetrasi.

Merah Perlu penetrasi adalah "peringatan": mengkliknya langsung menuju operasional penetrasi + penetrasi port.

> Mengapa tidak dibuat "deteksi otomatis apakah port dapat diakses": server panel dan server tujuan mungkin berada di ruang data yang sama, deteksi panel melewati jaringan internal, dan hasil "bisa terhubung" belum tentu berarti pengunjung luar bisa terhubung, sehingga hasilnya tidak dapat dipercaya. Karena itu "perlu penetrasi" ditandai secara manual oleh pengguna pada dialog penjelasan kuning.

Mengapa server NAT "terputus setelah dipakai beberapa saat"

Server NAT memiliki idle timeout (timeout koneksi menganggur) di gateway penyedia. Setelah koneksi SSH menganggur beberapa menit, gateway akan diam-diam memutus koneksi (TCP setengah terbuka), dan kedua pihak tidak menyadarinya.

Panel mengatasinya dengan dua hal berikut:

1. Mengaktifkan keepalive pada koneksi SSH: setelah setiap koneksi terbentuk, paket keepalive dikirim setiap 30 detik, baik untuk mencegah pemutusan akibat menganggur pada NAT maupun untuk segera mendeteksi koneksi setengah mati.

2. Pembersihan berkala kolam koneksi: thread latar belakang setiap 2 menit menutup koneksi yang menganggur lebih dari 2 menit, mencegah koneksi setengah mati menumpuk tanpa batas.

Catatan penting

1. Deteksi bergantung pada keberhasilan koneksi SSH: saat server offline atau kata sandi salah, deteksi tidak dapat dilakukan dan lencana tidak ditampilkan.

2. Server yang tidak menampilkan lencana: server ber-IP publik, perangkat Android (Termux), dan perangkat yang sudah dipenetrasi (memiliki tunnel_token) tidak menampilkan lencana NAT — perangkat tersebut memang sudah melewati jalurnya masing-masing dan tidak perlu pengingat NAT.

3. Berikan ruang untuk kasus khusus: sebagian sangat kecil "1:1 NAT" (server yang semua portnya terbuka) juga memiliki IP lokal di segmen internal dan akan terdeteksi sebagai NAT. Dalam hal ini pengguna cukup memilih "boleh" pada dialog konfirmasi, tidak memengaruhi pemakaian.

4. Dapat diubah setelah dikonfirmasi: status lencana ditentukan oleh konfirmasi pengguna dan dapat disesuaikan kapan saja dengan mengklik lencana.

Dokumen terkait