Memeriksa Port Terbuka dan Mendengarkan di Linux Menggunakan netstat dan ss
Memantau port terbuka dan mendengarkan pada sistem Linux adalah salah satu praktik paling penting untuk mempertahankan keamanan server, mendiagnosis masalah jaringan, dan mengelola infrastruktur Anda secara efektif. Dengan secara teratur mengaudit port mana yang terbuka dan layanan mana yang terikat padanya, Anda dapat secara proaktif mengidentifikasi upaya akses tidak sah, mendeteksi kesalahan konfigurasi, dan menghilangkan permukaan serangan yang tidak perlu sebelum menjadi kerentanan serius.
Baik Anda menjalankan aplikasi lalu lintas tinggi pada paket VPS Hosting atau mengelola armada mesin bare-metal, memahami eksposur jaringan server Linux Anda adalah hal yang tidak dapat ditawar. Panduan ini menyediakan panduan lengkap dan akurat secara teknis tentang cara menggunakan netstat dan ss — dua alat baris perintah yang paling banyak digunakan untuk inspeksi port di Linux — bersama dengan alat tambahan dan praktik terbaik dunia nyata.
1. Memahami Port dan Jenisnya
Sebelum mendalami alat-alat itu sendiri, penting untuk memiliki pemahaman yang jelas tentang apa itu port, bagaimana mereka dikategorikan, dan mengapa pemantauan mereka penting.
Apa Itu Port Jaringan?
Port jaringan adalah titik akhir komunikasi logis yang terkait dengan proses atau layanan tertentu di host. Port memungkinkan server tunggal dengan satu alamat IP untuk menjalankan beberapa layanan jaringan secara bersamaan — misalnya, server web di port 80, daemon SSH di port 22, dan database di port 3306.
Kategori Port
| Rentang | Kategori | Deskripsi |
|---|---|---|
| 0–1023 | Well-Known Ports | Dicadangkan untuk layanan sistem standar (HTTP, SSH, FTP, dll.) |
| 1024–49151 | Registered Ports | Digunakan oleh aplikasi dan middleware (MySQL, PostgreSQL, dll.) |
| 49152–65535 | Dynamic/Ephemeral Ports | Ditugaskan sementara untuk koneksi klien outbound |
Status Port yang Akan Anda Temui
- LISTEN — Port terbuka dan layanan secara aktif menunggu koneksi masuk.
- ESTABLISHED — Koneksi aktif ada antara dua titik akhir.
- TIME_WAIT — Koneksi sedang ditutup; sistem menunggu untuk memastikan ujung jauh menerima pengakuan akhir.
- CLOSE_WAIT — Ujung jauh telah menutup koneksi; aplikasi lokal belum menutup sisinya.
Protokol Transportasi
- TCP (Transmission Control Protocol): Berorientasi koneksi, andal, dengan pemeriksaan kesalahan dan pengiriman terjamin. Digunakan oleh HTTP, HTTPS, SSH, FTP, dan sebagian besar protokol lapisan aplikasi.
- UDP (User Datagram Protocol): Tanpa koneksi, lebih cepat, tetapi tanpa jaminan pengiriman. Digunakan oleh DNS, NTP, DHCP, dan layanan streaming.

2. Memeriksa Port dengan netstat
Apa Itu netstat?
netstat (network statistics) adalah utilitas command-line klasik yang menampilkan koneksi jaringan aktif, tabel routing, statistik antarmuka, dan port yang mendengarkan. Meskipun secara resmi telah dihentikan demi ss pada distribusi Linux modern, netstat tetap banyak digunakan — terutama pada sistem legacy dan di lingkungan di mana administrator sangat familiar dengan sintaksnya.
Menginstal netstat
netstat adalah bagian dari paket net-tools, yang tidak lagi diinstal secara default pada banyak distribusi modern. Instal sebagai berikut:
Debian / Ubuntu:
sudo apt update && sudo apt install net-tools -yCentOS / RHEL / AlmaLinux / Rocky Linux:
sudo yum install net-tools -y
# or on newer versions:
sudo dnf install net-tools -yArch Linux:
sudo pacman -S net-toolsSintaks Inti netstat
sudo netstat [options]
Memeriksa Semua Port TCP dan UDP yang Mendengarkan
sudo netstat -tulnPenjelasan flag:
| Flag | Arti |
|---|---|
-t | Tampilkan koneksi dan port TCP |
-u | Tampilkan koneksi dan port UDP |
-l | Tampilkan hanya socket yang mendengarkan (port menunggu koneksi) |
-n | Tampilkan alamat IP dan nomor port secara numerik (lewati resolusi DNS untuk kecepatan) |
Contoh output:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp6 0 0 :::443 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*Membaca output:
- Proto — Protokol yang digunakan (tcp, udp, tcp6, udp6).
- Local Address — Alamat IP dan nomor port tempat layanan mendengarkan.
0.0.0.0berarti layanan mendengarkan pada semua antarmuka yang tersedia;127.0.0.1berarti hanya dapat diakses secara lokal. - Foreign Address — Alamat klien jarak jauh (ditampilkan sebagai
0.0.0.0:*untuk port yang mendengarkan tanpa koneksi aktif). - State — Status koneksi (
LISTEN,ESTABLISHED,TIME_WAIT, dll.).
Menyertakan Informasi Proses
Untuk melihat proses mana yang memiliki setiap port yang mendengarkan, tambahkan flag -p:
sudo netstat -tulnpContoh output dengan info proses:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1023/sshd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2847/nginx
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3102/mysqld> Catatan: Anda harus menjalankan perintah ini dengan sudo untuk melihat nama proses untuk semua pengguna, bukan hanya milik Anda.
Memfilter Output untuk Port atau Layanan Tertentu
Gunakan grep untuk mempersempit hasil ke port atau layanan tertentu:
# Check if anything is listening on port 80
sudo netstat -tuln | grep ":80"
# Check for SSH (port 22)
sudo netstat -tuln | grep ":22"
# Check for MySQL (port 3306)
sudo netstat -tuln | grep ":3306"
# Check for HTTPS (port 443)
sudo netstat -tuln | grep ":443"Melihat Semua Koneksi Aktif (Bukan Hanya yang Mendengarkan)
Untuk melihat semua koneksi aktif, termasuk yang sudah terbentuk, hilangkan flag -l:
sudo netstat -tunpMenampilkan Tabel Routing
sudo netstat -r

Menampilkan Statistik Antarmuka Jaringan
sudo netstat -i3. Memeriksa Port dengan ss
Apa Itu ss?
ss (statistik soket) adalah pengganti modern untuk netstat, dikembangkan sebagai bagian dari paket iproute2. Ini berkomunikasi langsung dengan kernel Linux melalui soket Netlink, membuatnya jauh lebih cepat dan efisien daripada netstat — terutama pada sistem dengan ribuan koneksi bersamaan.
ss dipasang secara default pada hampir semua distribusi Linux modern, termasuk Ubuntu 18.04+, CentOS 7+, Debian 9+, dan turunannya.
Sintaks Inti ss
ss [options] [filter]Memeriksa Semua Port TCP dan UDP yang Mendengarkan
ss -tulnBendera memiliki makna yang sama dengan netstat:
| Bendera | Makna |
|---|---|
-t | Tampilkan soket TCP |
-u | Tampilkan soket UDP |
-l | Tampilkan hanya soket yang mendengarkan |
-n | Tampilkan alamat numerik (tanpa resolusi DNS) |
Contoh output:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:3306 0.0.0.0:*
tcp LISTEN 0 511 [::]:443 [::]:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*Termasuk Informasi Proses
sudo ss -tulnpContoh output:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1023,fd=3))
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=2847,fd=6))
tcp LISTEN 0 128 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=3102,fd=21))Penyaringan berdasarkan Protokol
Tampilkan hanya port TCP yang mendengarkan:
ss -tlTampilkan hanya port UDP yang mendengarkan:
ss -ulTampilkan semua koneksi TCP (termasuk yang sudah terbentuk):
ss -tPenyaringan Lanjutan dengan ss
Salah satu fitur paling kuat dari ss adalah penyaringan berbasis ekspresi bawaan, yang memungkinkan Anda menyaring berdasarkan port, alamat, status, dan lainnya — tanpa bergantung pada grep.
Saring berdasarkan nomor port tertentu:
ss -tuln sport = :80
ss -tuln sport = :443
ss -tuln sport = :22Saring berdasarkan port tujuan:
ss -tuln dport = :3306Tampilkan semua soket dalam status ESTABLISHED:
ss -t state establishedTampilkan semua soket dalam status LISTEN:
ss -t state listeningSaring berdasarkan alamat IP sumber:
ss -tuln src 192.168.1.100Tampilkan koneksi ke host jarak jauh tertentu:
ss -t dst 203.0.113.50Gabungkan beberapa filter:
ss -t state established '( dport = :443 or sport = :443 )'Menampilkan Penggunaan Memori Soket
ss juga dapat menampilkan penggunaan memori terperinci per soket, yang berguna untuk mendiagnosis masalah kinerja:
ss -tmMenampilkan Informasi Timer
ss -toIni menampilkan timer retransmisi dan timer keepalive untuk koneksi TCP, yang sangat berharga untuk mendiagnosis masalah stabilitas koneksi.
4. Membandingkan netstat vs. ss
Kedua alat mencapai tujuan fundamental yang sama, tetapi ada perbedaan bermakna yang harus memandu pilihan Anda:
| Fitur | netstat | ss |
|---|---|---|
| Paket | net-tools (sering tidak pre-installed) | iproute2 (pre-installed pada distro modern) |
| Kecepatan | Lebih lambat (membaca dari /proc/net/) | Lebih cepat (menggunakan antarmuka kernel Netlink) |
| Performa dalam skala besar | Menurun dengan ribuan koneksi | Menangani jumlah koneksi besar secara efisien |
| Penyaringan lanjutan | Memerlukan piping ke grep | Penyaringan berbasis ekspresi bawaan |
| Detail output | Baik | Lebih detail (memori, timer, dll.) |
| Dukungan IPv6 | Memadai | Sangat baik |
| Status pemeliharaan | Deprecated | Secara aktif dirawat |
| Kurva pembelajaran | Familiar bagi admin berpengalaman | Sintaks sedikit berbeda tetapi terdokumentasi dengan baik |
Kapan Menggunakan netstat
- Saat mengelola sistem Linux yang lebih lama (CentOS 6, Debian 7, dll.) di mana
ssmungkin tidak tersedia. - Saat bekerja dengan skrip atau dokumentasi yang sudah menggunakan sintaks
netstat. - Saat Anda lebih nyaman dengan format outputnya dan tidak memerlukan penyaringan lanjutan.
Kapan Menggunakan ss
- Pada distribusi Linux modern apa pun (Ubuntu 18.04+, CentOS 7+, Debian 9+, dan yang lebih baru).
- Saat mengelola server dengan volume koneksi bersamaan yang tinggi — seperti yang berjalan di Dedicated Servers di bawah beban berat.
- Saat Anda memerlukan penyaringan lanjutan, informasi timer, atau statistik memori soket.
- Untuk otomasi dan skripting di mana performa penting.
5. Alat Lain untuk Memeriksa Port Terbuka
Selain netstat dan ss, beberapa utilitas lain berguna untuk inspeksi port dan analisis jaringan di Linux.
lsof — List Open Files (Termasuk Sockets)
lsof (List Open Files) memperlakukan network sockets sebagai file (konsisten dengan filosofi Linux “semuanya adalah file”) dan dapat menampilkan proses mana yang memiliki port tertentu terbuka.
Instal lsof:
# Debian/Ubuntu
sudo apt install lsof -y
# CentOS/RHEL
sudo yum install lsof -yPeriksa proses mana yang menggunakan port 80:
sudo lsof -i :80Periksa proses mana yang menggunakan port 443:
sudo lsof -i :443Daftar semua koneksi jaringan:
sudo lsof -iDaftar semua TCP listening sockets:
sudo lsof -i TCP -s TCP:LISTENContoh output:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 2847 root 6u IPv4 23456 0t0 TCP *:http (LISTEN)
nginx 2848 www-data 6u IPv4 23456 0t0 TCP *:http (LISTEN)nmap — Network Mapper
nmap adalah alat pemindaian jaringan yang kuat digunakan untuk audit keamanan, penemuan jaringan, dan pemindaian port. Tidak seperti ss dan netstat (yang memeriksa sistem lokal), nmap dapat memindai host lokal dan jarak jauh.
Instal nmap:
# Debian/Ubuntu
sudo apt install nmap -y
# CentOS/RHEL
sudo yum install nmap -yPindai semua port TCP di localhost:
sudo nmap -sT localhostPindai port terbuka dengan deteksi OS:
sudo nmap -sT -O localhostPindai rentang port tertentu:
sudo nmap -p 1-1024 localhostPindai port UDP (memerlukan root):
sudo nmap -sU localhostPindai server jarak jauh:
sudo nmap -sT 203.0.113.50> Penting: Hanya pindai sistem yang Anda miliki atau memiliki izin eksplisit untuk memindai. Pemindaian port yang tidak sah dapat melanggar hukum dan syarat layanan.
fuser — Identifikasi Proses yang Menggunakan File atau Sockets
# Find which process is using port 80 (TCP)
sudo fuser 80/tcp
# Find which process is using port 53 (UDP)
sudo fuser 53/udp/proc/net/ — Antarmuka Kernel Langsung
Untuk tujuan scripting, Anda dapat membaca informasi port langsung dari filesystem virtual kernel Linux:
# View raw TCP socket table
cat /proc/net/tcp
# View raw UDP socket table
cat /proc/net/udpPerhatikan bahwa alamat dan port di /proc/net/tcp ditampilkan dalam heksadesimal dan memerlukan konversi untuk keterbacaan manusia. Alat seperti ss dan netstat mengurai data ini secara otomatis.
6. Praktik Keamanan Terbaik untuk Manajemen Port Terbuka
Mengetahui cara memeriksa port terbuka hanyalah setengah dari pertempuran. Bertindak berdasarkan informasi tersebut adalah yang menjaga server Anda tetap aman. Berikut adalah praktik terbaik yang dapat ditindaklanjuti yang harus diikuti oleh setiap administrator Linux:
Prinsip Paparan Minimal
Hanya buka port yang benar-benar diperlukan untuk aplikasi Anda berfungsi. Setiap port terbuka adalah vektor serangan potensial. Audit secara teratur port yang mendengarkan dan tutup atau firewall apa pun yang tidak perlu dapat diakses secara publik.
Ikat Layanan ke Antarmuka Spesifik
Hindari mengikat layanan ke 0.0.0.0 (semua antarmuka) kecuali diperlukan. Misalnya, server database MySQL hanya boleh mendengarkan pada 127.0.0.1 jika hanya diakses secara lokal:
# In /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1Gunakan Firewall
Gunakan ufw (Ubuntu) atau firewalld / iptables (CentOS/RHEL) untuk membatasi akses ke port terbuka berdasarkan alamat IP, subnet, atau antarmuka jaringan:
# Allow SSH only from a specific IP (ufw)
sudo ufw allow from 203.0.113.10 to any port 22
# Deny all other access to port 22
sudo ufw deny 22Audit Secara Teratur Port yang Mendengarkan
Jadwalkan audit port reguler menggunakan cron job atau alat pemantauan. Port mendengarkan baru yang tiba-tiba dapat menunjukkan layanan yang dikompromikan, kesalahan konfigurasi, atau — dalam kasus terburuk — malware:
# Quick audit command — save output and compare over time
sudo ss -tulnp > /var/log/port_audit_$(date +%F).txtAmankan Layanan dengan SSL/TLS
Layanan apa pun yang terbuka untuk internet — server web, server mail, panel kontrol — harus menggunakan koneksi terenkripsi. Pasangkan port terbuka Anda dengan Sertifikat SSL yang valid untuk melindungi data dalam transit dan mencegah serangan man-in-the-middle.
Pantau Perubahan yang Tidak Terduga
Gunakan alat deteksi intrusi seperti AIDE, Tripwire, atau auditd untuk memberi tahu Anda ketika proses baru mulai mendengarkan pada port. Integrasikan dengan logging terpusat (misalnya, ELK Stack, Graylog) untuk visibilitas komprehensif.
Nonaktifkan Layanan yang Tidak Digunakan
Jika layanan tidak diperlukan, hentikan dan nonaktifkan agar tidak dimulai saat boot:
# Stop and disable a service (systemd)
sudo systemctl stop <service-name>
sudo systemctl disable <service-name>Referensi Cepat: Perintah Paling Berguna
| Tugas | Perintah netstat | Perintah ss | |
|---|---|---|---|
| Semua port TCP/UDP yang mendengarkan | sudo netstat -tuln | sudo ss -tuln | |
| Semua port yang mendengarkan dengan PID | sudo netstat -tulnp | sudo ss -tulnp | |
| Hanya port TCP yang mendengarkan | sudo netstat -tln | sudo ss -tl | |
| Hanya port UDP yang mendengarkan | sudo netstat -uln | sudo ss -ul | |
| Filter berdasarkan port 80 | `sudo netstat -tuln | grep ":80"` | sudo ss -tuln sport = :80 |
| Semua koneksi yang terbentuk | sudo netstat -tunp | sudo ss -t state established | |
| Tampilkan tabel routing | sudo netstat -r | ip route show |
Kesimpulan
Memantau port terbuka dan mendengarkan adalah keterampilan dasar bagi setiap administrator sistem Linux atau insinyur DevOps. Baik Anda mengamankan server web produksi, memecahkan masalah konektivitas, atau melakukan audit keamanan rutin, netstat dan ss memberikan visibilitas langsung dan dapat ditindaklanjuti ke dalam eksposur jaringan sistem Anda.
Untuk merangkum poin-poin kunci:
- Gunakan
sssebagai alat utama Anda di distribusi Linux modern apa pun — lebih cepat, lebih kaya fitur, dan terus dikelola. - Gunakan
netstatsaat bekerja pada sistem warisan atau ketika skrip dan alur kerja yang ada bergantung padanya. - Tambahkan dengan
lsofdannmapuntuk inspeksi tingkat proses yang lebih dalam dan pemindaian port eksternal. - Selalu bertindak berdasarkan temuan Anda — tutup port yang tidak perlu, ikat layanan ke antarmuka yang benar, dan terapkan aturan firewall.
- Amankan layanan yang terbuka dengan SSL Certificates dan kontrol akses yang tepat.
Jika Anda mencari lingkungan hosting yang memberi Anda akses root penuh untuk menerapkan praktik keamanan ini, paket VPS Hosting AlexHost menyediakan kontrol lengkap atas konfigurasi server Linux Anda — termasuk manajemen firewall, pengerasan layanan, dan pemantauan jaringan. Untuk tim yang membutuhkan performa maksimal dan sumber daya khusus, Dedicated Servers kami memberikan kekuatan mentah dan isolasi yang diperlukan untuk operasi keamanan tingkat enterprise. Dan jika Anda lebih suka lingkungan terkelola dengan antarmuka yang familiar, jelajahi opsi VPS dengan cPanel kami untuk manajemen server yang efisien tanpa mengorbankan kontrol.
Audit port rutin, dikombinasikan dengan konfigurasi server yang diperkuat, adalah salah satu pertahanan paling efektif terhadap akses tidak sah dan pelanggaran data. Jadikan ini bagian rutin dari praktik administrasi sistem Anda.
untuk semua layanan hosting