Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Keamanan Linux

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

RentangKategoriDeskripsi
0–1023Well-Known PortsDicadangkan untuk layanan sistem standar (HTTP, SSH, FTP, dll.)
1024–49151Registered PortsDigunakan oleh aplikasi dan middleware (MySQL, PostgreSQL, dll.)
49152–65535Dynamic/Ephemeral PortsDitugaskan 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 -y

CentOS / RHEL / AlmaLinux / Rocky Linux:

sudo yum install net-tools -y
# or on newer versions:
sudo dnf install net-tools -y

Arch Linux:

sudo pacman -S net-tools

Sintaks Inti netstat

sudo netstat [options]

Memeriksa Semua Port TCP dan UDP yang Mendengarkan

sudo netstat -tuln

Penjelasan flag:

FlagArti
-tTampilkan koneksi dan port TCP
-uTampilkan koneksi dan port UDP
-lTampilkan hanya socket yang mendengarkan (port menunggu koneksi)
-nTampilkan 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.0 berarti layanan mendengarkan pada semua antarmuka yang tersedia; 127.0.0.1 berarti 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 -tulnp

Contoh 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 -tunp

Menampilkan Tabel Routing

sudo netstat -r

Menampilkan Statistik Antarmuka Jaringan

sudo netstat -i

3. 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 -tuln

Bendera memiliki makna yang sama dengan netstat:

BenderaMakna
-tTampilkan soket TCP
-uTampilkan soket UDP
-lTampilkan hanya soket yang mendengarkan
-nTampilkan 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 -tulnp

Contoh 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 -tl

Tampilkan hanya port UDP yang mendengarkan:

ss -ul

Tampilkan semua koneksi TCP (termasuk yang sudah terbentuk):

ss -t

Penyaringan 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 = :22

Saring berdasarkan port tujuan:

ss -tuln dport = :3306

Tampilkan semua soket dalam status ESTABLISHED:

ss -t state established

Tampilkan semua soket dalam status LISTEN:

ss -t state listening

Saring berdasarkan alamat IP sumber:

ss -tuln src 192.168.1.100

Tampilkan koneksi ke host jarak jauh tertentu:

ss -t dst 203.0.113.50

Gabungkan 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 -tm

Menampilkan Informasi Timer

ss -to

Ini 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:

Fiturnetstatss
Paketnet-tools (sering tidak pre-installed)iproute2 (pre-installed pada distro modern)
KecepatanLebih lambat (membaca dari /proc/net/)Lebih cepat (menggunakan antarmuka kernel Netlink)
Performa dalam skala besarMenurun dengan ribuan koneksiMenangani jumlah koneksi besar secara efisien
Penyaringan lanjutanMemerlukan piping ke grepPenyaringan berbasis ekspresi bawaan
Detail outputBaikLebih detail (memori, timer, dll.)
Dukungan IPv6MemadaiSangat baik
Status pemeliharaanDeprecatedSecara aktif dirawat
Kurva pembelajaranFamiliar bagi admin berpengalamanSintaks sedikit berbeda tetapi terdokumentasi dengan baik

Kapan Menggunakan netstat

  • Saat mengelola sistem Linux yang lebih lama (CentOS 6, Debian 7, dll.) di mana ss mungkin 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 -y

Periksa proses mana yang menggunakan port 80:

sudo lsof -i :80

Periksa proses mana yang menggunakan port 443:

sudo lsof -i :443

Daftar semua koneksi jaringan:

sudo lsof -i

Daftar semua TCP listening sockets:

sudo lsof -i TCP -s TCP:LISTEN

Contoh 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 -y

Pindai semua port TCP di localhost:

sudo nmap -sT localhost

Pindai port terbuka dengan deteksi OS:

sudo nmap -sT -O localhost

Pindai rentang port tertentu:

sudo nmap -p 1-1024 localhost

Pindai port UDP (memerlukan root):

sudo nmap -sU localhost

Pindai 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/udp

Perhatikan 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.1

Gunakan 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 22

Audit 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).txt

Amankan 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

TugasPerintah netstatPerintah ss
Semua port TCP/UDP yang mendengarkansudo netstat -tulnsudo ss -tuln
Semua port yang mendengarkan dengan PIDsudo netstat -tulnpsudo ss -tulnp
Hanya port TCP yang mendengarkansudo netstat -tlnsudo ss -tl
Hanya port UDP yang mendengarkansudo netstat -ulnsudo ss -ul
Filter berdasarkan port 80`sudo netstat -tulngrep ":80"`sudo ss -tuln sport = :80
Semua koneksi yang terbentuksudo netstat -tunpsudo ss -t state established
Tampilkan tabel routingsudo netstat -rip 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 ss sebagai alat utama Anda di distribusi Linux modern apa pun — lebih cepat, lebih kaya fitur, dan terus dikelola.
  • Gunakan netstat saat bekerja pada sistem warisan atau ketika skrip dan alur kerja yang ada bergantung padanya.
  • Tambahkan dengan lsof dan nmap untuk 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.