Kembali ke blog

ss vs netstat: Perintah Port Linux Mana yang Dipakai

5 September 2026

Pakailah ss — itulah standar terkini di setiap distro Linux modern, dan netstat di sana berstatus legacy. Di Ubuntu, Fedora, dan Debian, biner netstat kini hanya tersedia lewat paket opsional net-tools, sementara ss sudah menjadi bagian iproute2 yang terpasang di mana-mana. ss juga lebih cepat di server sibuk karena membaca statistik socket langsung dari kernel, bukan menelusuri _/proc_ file demi file. Kendalanya ada pada sintaks: -tulpn tidak bermakna sama di semua tempat, maka panduan ini memberi Anda pemetaan flag yang eksak, perintah-perintah yang layak dihafal, dan jawaban atas pertanyaan-pertanyaan yang muncul saat Anda sedang di tengah insiden pukul 2 pagi.

Apakah netstat deprecated?

Di Linux, secara efektif ya. Paket net-tools — yang memuat netstat, ifconfig, dan route — sudah bertahun-tahun tidak mengikuti fitur kernel modern dan tidak lagi terpasang bawaan di distribusi besar mana pun. Ia masih ada, masih jalan, dan tidak ada yang perlu di-uninstall, tetapi fitur baru hanya mendarat di iproute2 (paket di balik ss dan ip).

Tiga konsekuensi praktis:

  1. Tidak ada di instalasi baru. Server Ubuntu 24.04 atau Fedora bawaan tidak punya netstat sampai Anda memasang net-tools manual. Inilah alasan begitu banyak orang mencari padanan netstat — biner itu memang sudah tidak ada.
  2. Tanpa info socket modern. netstat mendahului fitur seperti TCP fast open, statistik socket level subflow, dan atribusi socket per cgroup. ss melaporkannya secara native.
  3. Pengecualian Windows. Di Windows, netstat sehat-sehat saja — netstat -ano masih menjadi cara baku memetakan PID ke port yang listening di sana. Yang deprecated hanya ceritanya di Linux.

Apa itu perintah ss di Linux?

ss adalah singkatan dari “socket statistics”. Ia membuang pandangan kernel atas setiap socket TCP, UDP, dan Unix: state, alamat, port, proses, timer, dan kedalaman antrean. Bentuk kerjanya yang paling sering:

# Semua yang listening, beserta proses pemiliknya
sudo ss -tulpn

Flag demi flag, perintah itu berarti: TCP (-t), UDP (-u), hanya socket yang listening (-l), tampilkan proses (-p), keluaran numerik — tanpa lookup DNS (-n). sudo penting untuk -p: tanpa root Anda melihat portnya tetapi tidak mendapat nama proses untuk socket yang bukan milik Anda.

Dua one-liner lagi yang menutup sebagian besar pekerjaan:

# Semua koneksi established ke/dari port 443, dengan prosesnya
sudo ss -tnp 'sport = :443 or dport = :443'

# Tabel ringkasan: berapa socket di tiap state
ss -s

Sintaks filter itu adalah peningkatan sungguhan dibanding pendekatan netstat yang grep-dan-berdoa — filternya berjalan di dalam kernel, jadi eksak, bukan sekadar pencocokan teks.

Bagaimana cara mengecek proses mana yang memakai sebuah port?

Inilah alasan paling umum untuk mengambil salah satu dari kedua alat ini. Dengan ss:

sudo ss -ltnp 'sport = :8080'

Contoh keluaran pada mesin yang menjalankan dev server:

State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN  0       511     *:8080              *:*               users:(("node",pid=214113,fd=18))

Field users:(...) memberi Anda nama proses dan PID secara langsung — tanpa perintah kedua. Jika port sibuk tetapi tidak ada proses yang tampil, biasanya Anda sedang melihat socket yang dipegang network namespace lain (sebuah kontainer). Dari host, jalankan sudo ss -ltnp dan cari port dengan kolom proses kosong, lalu cocokkan dengan docker ps atau nsenter ke namespace kontainernya.

Lebih suka alat khusus? sudo lsof -i :8080 -sTCP:LISTEN melakukan pekerjaan yang sama dan berperilaku identik di macOS dan kebanyakan BSD — alasan ia masih bertahan di runbook. Di Linux, bagaimanapun, ss sudah ada di sana.

Apa perbedaan antara ss dan netstat?

Pekerjaan sama, instalasi beda: netstat mengais _/proc/net/tcp_ dari userspace, sementara ss memakai netlink untuk bertanya langsung ke kernel — itulah kenapa ss selesai dalam milidetik di server dengan 50 ribu socket terbuka, dan netstat tidak. Sehari-hari, bedanya ada di flag. Inilah pemetaan yang layak ditempel di monitor Anda:

Kebutuhannetstatss
Port TCP yang listening + prosesnetstat -tlpnss -tlpn
Semua koneksi TCP + UDPnetstat -tulpnass -tulpna
Tabel routingnetstat -rip route
Statistik antarmukanetstat -iip -s link
Ringkasan socket dari kernelss -s
Filter per port di dalam kernelss -tnp 'sport = :22'

Perhatikan dua baris pertama identik: kebetulan, flag pendek ss segaris dengan milik netstat untuk kasus-kasus umum, sehingga memori otot kebanyakan selamat saat berpindah. Baris-baris bawahlah tempat netstat tidak punya jawaban — pekerjaan routing dan antarmuka pindah ke perintah ip, dan baris ringkasan/filter hanya ada di ss.

Kapan netstat masih layak dipakai?

Dua kasus yang jujur. Pertama, portabilitas: di armada campuran mesin Linux, AIX, atau BSD lama, netstat adalah satu-satunya sintaks yang hadir di mana-mana. Kedua, kesinambungan memori otot di runbook lama — jika sebuah runbook menulis netstat -tlpn dan mesinnya punya net-tools terpasang, perintah itu tetap berfungsi baik.

Selebihnya, jadikan ss pilihan bawaan dan perbarui runbook-nya. Pendamping yang berguna saat Anda menulis ulang runbook itu di sebuah server adalah cheat sheet journalctl, yang pas dipasangkan dengan pengecekan port ketika mendiagnosis layanan yang menolak hidup: /en/blog/2026-09-02/journalctl-cheat-sheet.

Kenapa perintah ss tidak ditemukan?

Karena Anda berada di distro yang sangat tua (era sebelum 2007, sebelum iproute2 jadi bawaan) atau — jauh lebih mungkin — Anda tidak sedang di Linux. ss bukan perintah macOS; macOS membawa lsof dan netstat tetapi tanpa ss. Sama halnya dengan BSD, kebanyakan. Di Windows, pakai netstat -ano atau Get-NetTCPConnection milik PowerShell.

Jika Anda memang di Linux dan ss hilang, pasang iproute2:

sudo apt install iproute2    # Debian/Ubuntu
sudo dnf install iproute2    # Fedora/RHEL

Jawaban 30 detik

ss di atas netstat di Linux, setiap saat: sudah terpasang bawaan, lebih cepat, dan bisa menyaring di dalam kernel. netstat -tlpn menjadi ss -tlpn, pemburuan proses menjadi sudo ss -ltnp 'sport = :PORT', dan tabel routing kini milik ip route. Simpan netstat untuk skrip lintas platform dan memori otot lama; simpan halaman ini untuk pemetaan flag-nya.

— mrsaynothing

Get the next one by email

One email per post. No spam, no algorithms.

self-hosted · no third parties · one-click unsubscribe

what is this?

LLM Lokal Terbaik untuk Coding: Pilihan VRAM 8GB–24GB

Suka tulisannya? Saya membangun seperti ini untuk hidup. pekerjakan saya