---
title: "Cara Cek Port Terbuka di Server dengan Nmap"
description: "Cara memakai Nmap untuk melihat port yang terbuka di servermu dari luar, membaca status open, closed, dan filtered, serta menutup port yang tidak perlu."
url: "https://nivelva.com/insight/cara-cek-port-terbuka-server-nmap"
category: "Keamanan/Cyber Security"
tags: ["nmap","port","firewall","keamanan server","jaringan"]
author: "Theresia Candiawan"
published: "2026-11-07T03:37:00+07:00"
updated: "2026-11-07T03:37:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Cek Port Terbuka di Server dengan Nmap

> **Jawaban singkat:** Jalankan Nmap dari komputer di luar jaringan server, misalnya sudo nmap -sS -sV -p- IP-SERVER, untuk melihat semua port TCP yang benar-benar bisa dijangkau dari internet. Bandingkan hasilnya dengan layanan yang memang seharusnya terbuka, lalu tutup sisanya lewat firewall.

Kamu baru selesai memasang aplikasi di VPS, mengatur firewall, dan merasa semuanya sudah rapi. Lalu suatu hari muncul pertanyaan sederhana yang sulit dijawab: port apa saja sebenarnya yang bisa dibuka orang dari internet? Pengaturan firewall bilang satu hal, tapi container, panel kontrol, atau layanan yang terpasang otomatis bisa bilang hal lain.

Nmap menjawab pertanyaan itu dari sudut pandang penyerang. Ia mengetuk port-port di servermu dari luar dan melaporkan mana yang menjawab. Hasilnya adalah daftar yang jujur, bukan daftar yang kamu kira.

## Pindai dari luar, dan hanya server milikmu

Ada dua aturan sebelum mulai. Pertama, jalankan Nmap dari komputer **di luar** jaringan server, misalnya laptop di rumah atau VPS lain. Kalau dijalankan dari server itu sendiri ke `localhost`, kamu akan melihat semua layanan yang mendengarkan, termasuk yang sebenarnya sudah diblokir firewall dari luar. Itu berguna, tapi bukan gambaran yang dilihat internet.

Kedua, pindai hanya server milikmu sendiri atau yang kamu punya izin tertulis untuk memindainya. Memindai sistem orang lain tanpa izin bisa dianggap aktivitas menyerang, dan banyak penyedia layanan melarangnya di ketentuan penggunaan. Untuk latihan, proyek Nmap menyediakan `scanme.nmap.org` yang memang boleh dipindai sesekali.

Nmap tersedia di hampir semua sistem. Di Ubuntu atau Debian cukup `sudo apt install nmap`. Untuk Windows dan macOS, unduh installer dari nmap.org, yang juga menyertakan Zenmap sebagai antarmuka grafis.

## Perintah yang paling sering dipakai

Pemindaian paling dasar cukup dengan alamat IP:

```bash
nmap 203.0.113.10
```

Tanpa opsi tambahan, Nmap memindai 1.000 port TCP yang paling umum. Cepat, tapi port di luar daftar itu tidak tersentuh. Untuk audit yang lebih serius, pakai kombinasi berikut:

```bash
sudo nmap -sS -sV -p- 203.0.113.10
```

Opsi `-sS` adalah SYN scan, cara pemindaian TCP bawaan saat dijalankan dengan hak root. `-p-` berarti semua port TCP dari 1 sampai 65535. `-sV` mencoba mengenali layanan dan versinya, misalnya `OpenSSH 9.6p1` atau `nginx`. Pemindaian semua port memang lebih lama, jadi wajar bila butuh beberapa menit.

Beberapa opsi lain yang berguna. `-Pn` melewati tahap ping dan langsung memindai port, perlu dipakai bila server memblokir ping sehingga Nmap mengira server mati. `-sU` memindai port UDP, misalnya DNS (53) atau WireGuard (51820), tapi pemindaian UDP jauh lebih lambat sehingga sebaiknya dibatasi ke port tertentu, contohnya `sudo nmap -sU -p 53,123,51820 203.0.113.10`. Opsi `-oN hasil.txt` menyimpan hasil ke berkas supaya bisa dibandingkan dengan pemindaian berikutnya.

Jangan lupakan IPv6. Banyak VPS sekarang mendapat alamat IPv6 otomatis, dan aturan firewall yang hanya ditulis untuk IPv4 bisa meninggalkan pintu terbuka di sisi IPv6. Pindai juga alamat itu dengan opsi `-6`, misalnya `sudo nmap -6 -sS -p- 2001:db8::10`. Nmap menyertakan alat `ndiff` untuk membandingkan dua hasil pemindaian yang disimpan dalam format XML (`-oX`). Dengan begitu, port yang tiba-tiba muncul sejak pemindaian terakhir langsung terlihat tanpa harus membaca ulang seluruh daftar.

## Apa arti open, closed, dan filtered?

Setiap port di hasil Nmap diberi status. Inilah yang perlu kamu pahami untuk menarik kesimpulan yang benar.

| Status | Arti | Yang perlu dilakukan |
|:--|:--|:--|
| `open` | Ada layanan yang menerima koneksi di port ini | Pastikan memang sengaja dibuka dan layanannya terbarui |
| `closed` | Port bisa dijangkau, tapi tidak ada layanan yang mendengarkan | Aman dari sisi layanan, tapi tanda firewall tidak memblokir port ini |
| `filtered` | Nmap tidak mendapat jawaban, biasanya karena firewall membuang paket | Kondisi yang diharapkan untuk port yang tidak dipakai |
| `unfiltered` | Port bisa dijangkau, tapi Nmap tidak bisa memastikan open atau closed | Muncul pada jenis pemindaian tertentu, ulangi dengan SYN scan |

Pada pemindaian UDP, kamu juga akan sering melihat status gabungan `open|filtered`, artinya Nmap tidak bisa membedakan port terbuka atau difilter. Untuk memastikannya, cek langsung di server dengan `ss`.

Server yang sehat biasanya menampilkan sedikit port `open` (misalnya 22, 80, 443) dan sisanya `filtered`. Bila banyak port berstatus `closed`, artinya firewall belum menolak koneksi masuk secara bawaan.

## Mencocokkan hasil dengan yang ada di server

Hasil dari luar perlu dicocokkan dengan apa yang berjalan di dalam. Di server, jalankan:

```bash
sudo ss -tulpn
```

Perintah ini menampilkan semua port TCP dan UDP yang sedang didengarkan beserta nama prosesnya. Perhatikan kolom alamat. Layanan yang mendengarkan di `127.0.0.1` atau `::1` hanya bisa diakses dari server itu sendiri, sedangkan `0.0.0.0` atau `*` berarti mendengarkan di semua antarmuka.

Temuan yang paling sering muncul saat dua daftar ini dibandingkan cukup khas. Port database seperti 3306 atau 5432 terbuka ke publik karena layanan mendengarkan di semua antarmuka. Port panel kontrol atau aplikasi admin yang lupa dibatasi. Port container Docker yang terbuka meski firewall tidak mengizinkannya, karena Docker menulis aturan firewall-nya sendiri; solusinya ada di panduan [mengamankan Docker di VPS agar port tidak bocor](https://nivelva.com/insight/cara-mengamankan-docker-vps-port-tidak-bocor). Kalau ragu fungsi sebuah port, cek di [daftar port penting di server](https://nivelva.com/insight/port-penting-server).

## Menutup port yang tidak perlu

Untuk setiap port `open` yang tidak seharusnya terbuka, ada dua pilihan. Yang terbaik adalah mematikan layanannya bila memang tidak dipakai, misalnya dengan `sudo systemctl disable --now nama-layanan`. Layanan yang tidak berjalan tidak bisa diserang.

Kalau layanannya dibutuhkan tapi hanya oleh aplikasi lokal, ubah konfigurasinya agar mendengarkan di `127.0.0.1` saja. Untuk MySQL atau MariaDB, misalnya, atur `bind-address = 127.0.0.1`. Kalau layanannya harus bisa diakses dari luar tapi hanya oleh pihak tertentu, batasi lewat firewall per alamat IP. Langkahnya untuk UFW ada di [cara setting UFW firewall di Ubuntu 24.04](https://nivelva.com/insight/cara-setting-ufw-firewall-ubuntu-24-04-pemula).

Setelah perubahan, jalankan ulang pemindaian Nmap dari luar dan pastikan port yang ditutup sudah berubah menjadi `filtered`. Ulangi pemeriksaan ini setiap kali kamu memasang aplikasi baru, dan simpan hasilnya sebagai catatan pembanding.

Intinya, firewall yang kamu atur hanyalah niat, sedangkan hasil Nmap dari luar adalah kenyataan. Pindai servermu sendiri secara berkala, cocokkan dengan `ss -tulpn`, dan tutup setiap port yang tidak punya alasan jelas untuk terbuka.

## Sumber

- <https://nmap.org/book/man.html>
- <https://nmap.org/book/man-port-scanning-basics.html>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-cek-port-terbuka-server-nmap
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
