Sebuah komputer yang menyala jarang hanya menjalankan satu koneksi. Browser membuka belasan koneksi ke server web, aplikasi chat menjaga satu koneksi tetap hidup, dan layanan pembaruan sistem sesekali mengunduh di latar belakang. Kalau Anda seorang developer, ada pula server lokal yang menunggu di suatu nomor. Semua itu berbagi satu kartu jaringan dan satu alamat IP.

Dari luar, semuanya terlihat sama: "komputer sedang terhubung ke internet". Yang tidak terlihat adalah program mana memakai jalur yang mana. Padahal pertanyaan itulah yang muncul saat sebuah aplikasi menolak berjalan karena portnya sudah dipakai, atau saat Anda curiga ada proses yang menghubungi alamat asing. Netstat adalah perintah yang membuka daftar tersebut, dan artikel ini membahas cara membacanya sampai kolom terakhir.

Netstat Adalah Perintah Apa? Kepanjangan dan Cara Kerjanya

Netstat adalah singkatan dari network statistics. Ini perintah baris perintah bawaan yang menampilkan koneksi jaringan aktif, port yang sedang didengarkan, tabel routing (daftar jalur pengiriman paket), serta statistik per protokol. Perintah ini ada di Windows, Linux, macOS, dan hampir semua turunan Unix, meskipun dengan opsi yang berbeda-beda.

Satu hal yang perlu dipahami sejak awal, karena hampir semua kesalahpahaman berikutnya berakar di sini: netstat tidak mengirim satu paket pun ke jaringan. Sistem operasi menyimpan daftar socket (pasangan alamat IP dan nomor port yang sedang dipakai sebuah program) di dalam kernel. Netstat hanya membaca daftar itu lalu menampilkannya sebagai tabel.

Konsekuensinya ada tiga. Hasilnya muncul seketika, karena tidak ada yang perlu ditunggu dari jaringan. Hasilnya selalu tentang komputer tempat perintah dijalankan, bukan komputer lain. Dan hasilnya adalah potret satu detik itu saja, bukan rekaman.

Perbedaan inilah yang memisahkan netstat dari nmap. Nmap benar-benar mengetuk port di host lain untuk menebak mana yang terbuka. Netstat membaca catatan kernel di rumah sendiri. Kalau yang ingin Anda periksa adalah server orang lain, netstat bukan alatnya.

Netstat membaca tabel koneksi di dalam komputer sendiri, sedangkan Nmap memindai keluar menuju server lain.Netstat membaca tabel koneksi di dalam komputer sendiri, sedangkan Nmap memindai keluar menuju server lain.

Fungsi Netstat dalam Pekerjaan Sehari-hari

Daftar opsi netstat panjang, tetapi dalam praktik hanya ada empat pekerjaan yang benar-benar sering dilakukan orang dengan perintah ini.

  1. Melihat port yang sedang dibuka: menampilkan nomor pintu mana saja yang sedang menunggu koneksi masuk. Ini yang paling sering dicari, baik untuk memastikan sebuah layanan sudah berjalan maupun untuk memeriksa ada layanan tak terduga yang ikut menyala. Penjelasan lengkap soal nomor pintu ini ada di artikel port adalah.
  2. Menemukan program pemilik sebuah port: menjawab pertanyaan "aplikasi apa yang memakai port 8080?" saat program baru menolak berjalan karena portnya bentrok.
  3. Memeriksa koneksi keluar: menampilkan ke alamat mana saja komputer sedang terhubung. Berguna saat Anda ingin tahu apakah ada proses yang menghubungi alamat yang tidak Anda kenali.
  4. Membaca tabel routing dan statistik protokol: menunjukkan lewat gerbang mana paket dikirim, serta hitungan paket yang dikirim, diterima, dan gagal.

Fungsi netstat berhenti di situ. Ia melaporkan keadaan, tidak pernah mengubahnya. Netstat tidak bisa menutup port, memutus koneksi, atau memperbaiki pengaturan jaringan.

Membaca Output Netstat Kolom per Kolom

Menjalankan perintahnya mudah. Yang membuat orang berhenti adalah tabel yang muncul setelahnya. Berikut potongan hasil netstat -tulpn di sebuah server Linux:

Code
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      812/sshd
tcp        0      0 127.0.0.1:3306     0.0.0.0:*         LISTEN      1104/mysqld
tcp        0     36 10.0.0.5:22        10.0.0.9:51423    ESTABLISHED 2277/sshd

Baris pertama tabel adalah nama kolom, dan tiap kolom punya arti yang tetap:

  • Proto: protokol yang dipakai socket tersebut, umumnya tcp, udp, tcp6, atau udp6.
  • Local Address: alamat IP dan nomor port di sisi komputer Anda, dipisah tanda titik dua.
  • Foreign Address: alamat IP dan port lawan bicara. Tanda 0.0.0.0:* berarti belum ada lawan bicara, karena socket ini memang sedang menunggu.
  • State: status koneksi TCP. Kolom ini kosong untuk UDP, karena UDP memang tidak mengenal status.
  • PID/Program name: nomor proses dan nama program pemilik socket. Kolom inilah yang menjawab "siapa yang memakai port ini".

Yang paling layak diperhatikan justru perbedaan halus di kolom Local Address. Baris SSH tertulis 0.0.0.0:22, sedangkan baris MySQL tertulis 127.0.0.1:3306. Bedanya bukan kosmetik.

Alamat 0.0.0.0 berarti layanan menerima koneksi dari antarmuka mana pun, termasuk dari internet jika alamat IP server memang publik. Sementara 127.0.0.1 berarti layanan hanya mau dihubungi dari komputer itu sendiri, sebagaimana dibahas di artikel localhost adalah. Jadi contoh di atas menggambarkan konfigurasi yang sehat: SSH memang perlu dijangkau dari luar, sedangkan database sebaiknya tidak. Menemukan 0.0.0.0:3306 di server produksi adalah temuan yang perlu segera Anda tindak lanjuti.

Layanan di 0.0.0.0 bisa dihubungi dari internet, sedangkan layanan di 127.0.0.1 hanya dari komputer itu sendiri.Layanan di 0.0.0.0 bisa dihubungi dari internet, sedangkan layanan di 127.0.0.1 hanya dari komputer itu sendiri.

Dua kolom di awal juga punya arti pasti. Menurut dokumentasi resmi netstat, Recv-Q adalah jumlah byte yang sudah diterima tetapi belum diambil oleh aplikasi. Sementara Send-Q adalah jumlah byte yang sudah dikirim tetapi belum dikonfirmasi oleh lawan. Keduanya normal bernilai nol atau mendekati nol. Recv-Q yang membesar dan bertahan menandakan aplikasinya kewalahan, bukan jaringannya yang bermasalah.

Arti Status Koneksi: LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT

Kolom State sering diabaikan, padahal isinya menjelaskan tahap hidup sebuah koneksi. Dokumentasi Microsoft mencantumkan sepuluh status, tetapi yang muncul sehari-hari hanya beberapa.

StatusArtinya
LISTENPort terbuka dan menunggu koneksi masuk. Belum ada lawan bicara.
SYN_SENTKomputer Anda sudah mengirim permintaan koneksi dan menunggu jawaban.
ESTABLISHEDKoneksi terbentuk penuh, data bisa mengalir dua arah.
TIME_WAITKoneksi sudah ditutup oleh sisi Anda, tetapi socket ditahan sebentar.
CLOSE_WAITLawan sudah minta tutup, aplikasi Anda belum menutup socket-nya.
FIN_WAIT_2Sisi Anda sudah menutup, menunggu lawan menyelesaikan penutupannya.

Dari daftar itu, dua status terakhir yang paling sering disalahpahami. Bedanya bisa diringkas menjadi satu aturan praktis: TIME_WAIT berarti sisi Anda yang menutup lebih dulu, CLOSE_WAIT berarti sisi lawan yang menutup lebih dulu.

TIME_WAIT dalam jumlah banyak adalah pemandangan normal di server sibuk, bukan gejala penyakit. Socket ditahan agar paket yang datang terlambat tidak tersesat ke koneksi baru yang kebetulan memakai nomor port sama. Di Linux lamanya 60 detik, angka yang ditulis langsung di berkas include/net/tcp.h kode sumber kernel sebagai TCP_TIMEWAIT_LEN dan tidak disediakan pengaturan untuk mengubahnya. Angka empat menit yang sering beredar berasal dari spesifikasi TCP, bukan dari perilaku Linux sebenarnya.

CLOSE_WAIT sebaliknya. Lawan sudah mengirim sinyal selesai, dan bola ada di aplikasi Anda untuk menutup socket-nya. Kalau statusnya menumpuk dan tidak berkurang, hampir selalu penyebabnya kode aplikasi yang lupa menutup koneksi, sebagaimana juga dicatat Red Hat dalam basis pengetahuannya. Menambah kapasitas server tidak akan menolong; yang perlu diperbaiki adalah programnya.

Opsi Netstat di Windows, Linux, dan macOS

Nama perintahnya sama di tiga sistem operasi, tetapi programnya berbeda. Inilah sebab perintah netstat yang disalin dari sebuah tutorial sering menolak berjalan di komputer pembacanya.

Netstat Windows: Opsi -ano, -b, dan Hak Administrator

Di Windows, netstat adalah perkakas bawaan yang masih didukung penuh. Jalankan lewat Command Prompt; kalau Anda belum terbiasa membukanya, langkahnya ada di artikel CMD adalah. Opsi yang didokumentasikan Microsoft:

OpsiFungsi
-aMenampilkan semua koneksi aktif serta port TCP dan UDP yang didengarkan
-nMenampilkan alamat dan port sebagai angka, tanpa menerjemahkan jadi nama
-oMenyertakan nomor proses (PID) tiap koneksi
-bMenampilkan nama berkas program pembuat koneksi
-pMenyaring per protokol: tcp, udp, tcpv6, udpv6
-rMenampilkan tabel routing, setara route print
-sMenampilkan statistik per protokol
<angka>Mengulang tampilan tiap sekian detik, hentikan dengan Ctrl+C

Kombinasi paling berguna adalah netstat -ano. Opsi -a memunculkan seluruh port termasuk yang sedang menunggu, sementara -n membuat tampilannya cepat karena tidak ada nama yang perlu dicari. Opsi -o melengkapinya dengan PID untuk melacak programnya.

Keluaran netstat -ano Windows: lima kolom, PID di ujung kanan, dan kolom State kosong pada baris UDP.Keluaran netstat -ano Windows: lima kolom, PID di ujung kanan, dan kolom State kosong pada baris UDP.

Opsi -b memang lebih ramah karena langsung menampilkan nama program. Namun dokumentasi Microsoft menyatakan opsi ini memakan waktu dan akan gagal tanpa hak akses yang memadai. Jalankan Command Prompt sebagai Administrator kalau hasilnya kosong atau muncul pesan penolakan.

Perlu dicatat, tabel opsi di atas sudah lengkap. Windows tidak mengenal huruf -t, -u, atau -l, sehingga netstat -tulpn yang banyak beredar di tutorial Linux akan ditolak di Command Prompt.

Kalau Anda memakai PowerShell, tersedia perintah asli yang lebih rapi keluarannya, yaitu Get-NetTCPConnection dari modul NetTCPIP. Perintah ini menghasilkan objek, bukan teks, sehingga hasilnya bisa langsung disaring tanpa bantuan findstr:

POWERSHELL
Get-NetTCPConnection -State Listen
Get-NetTCPConnection -LocalPort 8080

Satu hal yang perlu diperhatikan, penamaan statusnya berbeda dari netstat. PowerShell memakai Listen, TimeWait, dan CloseWait, sementara netstat menuliskannya sebagai LISTENING, TIME_WAIT, dan CLOSE_WAIT. Nilai yang salah tulis akan ditolak sebagai parameter.

Netstat Linux: Membedah -tulpn Huruf per Huruf

Di Linux, perintah yang beredar hampir selalu netstat -tulpn. Deretan huruf itu kerap disalin bulat-bulat tanpa diketahui artinya, padahal tiap huruf berdiri sendiri:

  • -t menampilkan socket TCP
  • -u menampilkan socket UDP
  • -l hanya menampilkan yang berstatus listening, yang secara bawaan justru disembunyikan
  • -p menampilkan PID dan nama program pemilik socket
  • -n menampilkan alamat sebagai angka, tanpa menerjemahkan jadi nama host

Setelah artinya jelas, dua hal jadi masuk akal. Urutan hurufnya tidak penting, sehingga -ltunp bekerja persis sama dan tidak ada yang perlu dihafal. Anda juga bisa menyusun sendiri kombinasi yang dibutuhkan. Contohnya netstat -tlnp bila hanya peduli TCP, atau netstat -an untuk melihat semua socket dalam bentuk angka.

Untuk opsi -p, dokumentasi menyebut Anda membutuhkan hak superuser agar bisa melihat informasi socket milik pengguna lain. Tanpa sudo, kolom PID akan kosong untuk proses yang bukan milik Anda.

Netstat macOS: Perintah Bernama Sama, Program Berbeda

Netstat di macOS diwarisi dari BSD, dan perbedaannya cukup untuk membuat perintah Linux gagal total. Tiga hal yang perlu Anda ketahui:

Tidak ada -t dan -u. Penyaringan protokol memakai -p, sehingga perintahnya menjadi netstat -an -p tcp.

Huruf -p berarti protokol, bukan program. Ini kebalikan dari Linux, dan netstat macOS memang tidak menyediakan cara menampilkan PID sama sekali.

Port dipisah tanda titik, bukan titik dua. Alamat ditulis 192.168.1.10.53213, dan port yang menunggu tampil sebagai *.7000. Akibatnya grep :8080 tidak pernah menemukan apa pun di macOS, tanpa pesan kesalahan apa pun. Pola yang benar adalah grep '\.8080'.

Karena PID tidak tersedia, pengguna macOS lebih baik memakai perintah lain untuk melacak pemilik port:

Bash
lsof -nP -iTCP -sTCP:LISTEN

Hasilnya langsung memuat kolom COMMAND, PID, dan USER, yang justru merupakan informasi paling dicari.

Cara Melihat Semua Port yang Terbuka

Dari sekian banyak pemakaian netstat, satu inilah yang paling sering dibutuhkan: daftar port yang sedang dibuka komputer, lengkap dengan program pemiliknya. Karena opsinya berbeda-beda, berikut satu baris siap pakai untuk tiap lingkungan.

  • Windows, Command Prompt: netstat -ano | findstr LISTENING
  • Windows, PowerShell: Get-NetTCPConnection -State Listen
  • Linux, cara yang disarankan: sudo ss -tulpn
  • Linux, dengan netstat: sudo netstat -tulpn
  • macOS: lsof -nP -iTCP -sTCP:LISTEN

Perhatikan bahwa kata statusnya tidak seragam. Netstat Windows menuliskan LISTENING, sedangkan netstat Linux dan ss menuliskan LISTEN. Untuk socket UDP yang menunggu, ss menampilkan UNCONN. Menyaring dengan kata yang salah menghasilkan daftar kosong yang terlihat persis seperti tidak ada layanan yang berjalan.

Keluaran sudo ss -tulpn: status LISTEN untuk TCP, UNCONN untuk UDP, dan nama program di kolom Process.Keluaran sudo ss -tulpn: status LISTEN untuk TCP, UNCONN untuk UDP, dan nama program di kolom Process.

Setelah daftarnya muncul, bacalah dari kolom Local Address, bukan dari nama program. Baris yang layak Anda periksa satu per satu adalah yang terikat ke 0.0.0.0, karena hanya di situlah layanan benar-benar terbuka ke jaringan.

Untuk memantau perubahan alih-alih sekadar melihat satu potret, netstat Windows menerima angka di akhir perintah sebagai jeda pengulangan dalam detik. Perintah berikut memperbarui daftarnya tiap lima detik sampai Anda menekan Ctrl+C:

CMD
netstat -ano 5

Netstat Linux tidak punya opsi itu, tetapi hasil yang sama bisa diperoleh dengan membungkusnya memakai watch:

Bash
watch -n 5 'ss -tulpn'

Cara Menemukan Proses yang Memakai Sebuah Port

Kalau daftar tadi menunjukkan port yang Anda butuhkan ternyata sudah dipakai, langkah berikutnya adalah mencari tahu oleh siapa. Situasi ini biasanya muncul saat sebuah aplikasi menolak berjalan karena portnya bentrok. Alurnya selalu sama, baik di Windows maupun di Linux:

Empat langkah menangani port terpakai: saring keluaran netstat, ambil PID, pastikan nama programnya, lalu hentikan.Empat langkah menangani port terpakai: saring keluaran netstat, ambil PID, pastikan nama programnya, lalu hentikan.

Langkah #1: Cari Baris yang Memuat Nomor Port

Di Windows, saring keluaran netstat dengan findstr:

CMD
netstat -ano | findstr :8080

Di Linux, gunakan grep. Perintah ss di bawah adalah pengganti resmi netstat yang dibahas nanti, tetapi netstat -tulpn juga masih bekerja bila paketnya terpasang:

Bash
sudo ss -tulpn | grep :8080

Pola :8080 juga cocok dengan 18080 dan 48080. Kalau hasilnya terasa mencurigakan, pertegas polanya menjadi findstr ":8080 " di Windows atau grep ':8080 ' di Linux dengan spasi di belakang.

Langkah #2: Ambil Nomor Prosesnya

Di Windows, PID adalah angka di kolom paling kanan. Di Linux, ss menuliskannya di bagian akhir baris dengan format users:(("java",pid=7412,fd=6)), sehingga nama program dan nomornya terbaca sekaligus.

Langkah #3: Pastikan Dulu Proses Apa Itu

Jangan langsung menghentikan proses hanya berdasarkan nomor. Periksa dulu namanya di Windows:

CMD
tasklist /fi "PID eq 7412"

Di Linux, gunakan ps:

Bash
ps -p 7412 -o pid,user,cmd

Langkah ini terlihat sepele, tetapi mencegah kejadian yang tidak enak. Port 8080 di komputer kerja bisa saja dipakai proses milik sistem, bukan aplikasi percobaan Anda.

Langkah #4: Hentikan Prosesnya

Setelah yakin, hentikan lewat PID. Di Windows, taskkill dengan /f memaksa proses berhenti:

CMD
taskkill /PID 7412 /F

Di Linux, kirim sinyal berhenti yang sopan lebih dulu, dan gunakan kill -9 hanya bila proses benar-benar tidak merespons:

Bash
kill 7412

Kenapa Netstat Tidak Ada di Linux Versi Baru

Banyak pengguna menemui pesan netstat: command not found di server yang baru dipasang, lalu mengira instalasinya gagal. Penyebabnya lebih sederhana: netstat memang tidak ikut dipasang.

Netstat berasal dari paket bernama net-tools, dan paket itu sudah lama tidak lagi menjadi bawaan. Buktinya bisa diperiksa sendiri di manifest resmi Ubuntu Server 24.04 LTS. Dari 689 paket yang ikut terpasang, iproute2 dan lsof ada di daftar, sedangkan net-tools tidak. Red Hat juga mendeprekasi kelompok perintah ini sejak RHEL 7, dengan pemetaan yang jelas bahwa netstat digantikan ss.

Kalau Anda tetap membutuhkannya, misalnya karena mengikuti dokumentasi lama, pasang paketnya sesuai keluarga distribusi:

DistribusiPerintah
Ubuntu, Debiansudo apt install net-tools
RHEL, Rocky Linux, Fedorasudo dnf install net-tools
openSUSEsudo zypper install net-tools
Arch Linuxsudo pacman -S net-tools

Ada satu klaim yang perlu diluruskan di sini, karena sering diulang: bahwa net-tools terakhir dirilis tahun 2001. Angka itu merujuk pada versi 1.60 yang memang keluar April 2001. Rilis terbarunya adalah versi 2.10 pada Januari 2021, dan repositorinya masih menerima perbaikan sampai Juli 2026. Jadi yang berhenti bukan pengembangannya, melainkan statusnya sebagai perkakas bawaan distribusi. Kalau Anda mengelola VPS dengan akses root penuh, memasang paket ini sepenuhnya boleh, hanya saja bukan lagi cara yang disarankan.

ss, Pengganti Resmi Netstat di Linux

Yang menyatakan netstat sudah usang bukan pihak ketiga, melainkan dokumentasi netstat itu sendiri. Man page-nya menulis bahwa program ini sebagian besar sudah usang, dan penggantinya adalah ss. Penggantian ini punya pemetaan yang rapi:

Perintah lamaPenggantinya
netstat -tulpnss -tulpn
netstat -anss -an
netstat -rip route
netstat -iip -s link

Kabar baiknya, arti huruf -t, -u, -l, -p, dan -n di ss persis sama dengan di netstat. Jadi kebiasaan yang sudah Anda bangun tidak terbuang; cukup ganti nama perintahnya.

Satu hal yang berubah dan sering menjatuhkan skrip lama adalah penulisan status. Kode sumber ss memakai tanda hubung dan singkatan, sedangkan netstat memakai garis bawah dan kata penuh:

netstatss
ESTABLISHEDESTAB
TIME_WAITTIME-WAIT
CLOSE_WAITCLOSE-WAIT
LISTENLISTEN
(kolom dikosongkan untuk UDP)UNCONN

Akibatnya perintah lama seperti netstat -an | grep ESTABLISHED akan mengembalikan hasil kosong begitu netstat diganti ss, tanpa satu pun pesan kesalahan. Ini penyebab yang tidak mudah dikenali saat skrip pemantauan lama tiba-tiba berhenti melaporkan apa pun.

Alasan teknis penggantian ini juga masuk akal. Netstat mengumpulkan datanya dengan membaca berkas teks di /proc, sedangkan ss mengambilnya lewat jalur khusus yang disediakan kernel untuk keperluan itu. Pada mesin dengan puluhan koneksi bedanya tidak terasa. Pada server dengan puluhan ribu koneksi, netstat bisa memakan waktu beberapa detik sementara ss selesai hampir seketika.

Kelemahan Netstat yang Perlu Anda Pertimbangkan

Netstat berguna, tetapi ada batas yang sebaiknya Anda ketahui sebelum mengandalkannya terlalu jauh.

  1. Melambat pada koneksi berjumlah besar: cara kerjanya yang membaca berkas di /proc membuat netstat terasa berat justru di saat Anda paling membutuhkannya, yaitu ketika server sedang dibanjiri koneksi.
  2. Hanya potret sesaat: netstat menampilkan keadaan pada detik perintah dijalankan. Untuk memantau perubahan sepanjang waktu, Anda membutuhkan alat pemantau yang menyimpan riwayat.
  3. Terbatas pada ruang jaringannya sendiri: netstat yang dijalankan di dalam sebuah container Docker hanya melihat socket container tersebut, bukan socket mesin induknya. Hasil yang tampak kosong sering disalahartikan sebagai layanan yang mati.
  4. Melaporkan, bukan mengamankan: netstat memberi tahu port mana yang terbuka, tetapi tidak bisa menutupnya. Menutup akses adalah pekerjaan firewall, dan menemukan port yang tidak seharusnya terbuka baru langkah pertama.

Ada juga empat kekeliruan nama yang sering muncul dan layak diluruskan sekalian:

Netstat bukan ipconfig. Keduanya sering tertukar di Windows. ipconfig melaporkan pengaturan kartu jaringan komputer Anda sendiri, seperti alamat IP, subnet mask, dan gateway. Netstat tidak menyentuh pengaturan itu sama sekali; yang ditampilkannya adalah koneksi yang sedang berjalan di atas pengaturan tersebut.

Netstat bukan netsh. Keduanya perintah Windows dengan nama mirip, tetapi netsh yang mengubah konfigurasi jaringan. Karena netstat murni membaca, tidak ada yang namanya "reset netstat"; perintah yang dicari orang biasanya netsh int ip reset.

Netstat bukan nmap. Netstat membaca tabel socket komputer sendiri, nmap memindai host lain lewat jaringan. Untuk memeriksa port server orang lain, netstat sama sekali tidak berguna.

Netstat tidak bisa menampilkan alamat IP lawan chat WhatsApp. Ini mitos lama. Pesan WhatsApp melewati server perantara, sehingga yang muncul di kolom Foreign Address adalah alamat server penyedia layanan, bukan perangkat lawan bicara.

Pertanyaan Seputar Netstat

Apakah netstat masih digunakan? Masih, tetapi porsinya berbeda per sistem operasi. Di Windows, netstat adalah perkakas bawaan yang didukung penuh dan tetap menjadi pilihan pertama. Di Linux, perannya sudah digantikan ss dan netstat bahkan tidak ikut terpasang di distribusi baru.

Apakah netstat hanya untuk TCP? Tidak. Netstat juga menampilkan socket UDP lewat opsi -u di Linux atau -p udp di Windows. Bedanya, baris UDP tidak punya isi di kolom State, karena UDP memang tidak membangun koneksi yang punya tahapan seperti TCP.

Bagaimana menjalankan netstat di CMD? Buka Command Prompt, ketik netstat -ano, lalu tekan Enter. Untuk melihat nama programnya secara langsung, gunakan netstat -anb dan jalankan Command Prompt sebagai Administrator.

Perintah netstat apa yang tepat untuk melihat port yang terbuka? Di Windows gunakan netstat -ano | findstr LISTENING, dan di Linux gunakan netstat -tulpn atau ss -tulpn. Kunci pentingnya ada di opsi -l, karena tanpa opsi itu socket yang sedang menunggu justru tidak ditampilkan.

Kenapa kolom PID kosong padahal opsinya sudah dipakai? Penyebabnya hampir selalu hak akses. Netstat hanya boleh menampilkan pemilik socket yang bukan milik Anda bila dijalankan sebagai superuser, jadi tambahkan sudo di Linux. Di Windows, gejalanya berupa pesan bahwa informasi kepemilikan tidak dapat diperoleh, dan solusinya menjalankan Command Prompt sebagai Administrator.

Kesimpulan

Netstat adalah jendela ke tabel socket yang disimpan kernel di komputer Anda sendiri. Ia menampilkan port yang terbuka, koneksi yang sedang berjalan, dan program pemiliknya, tanpa pernah mengirim paket ke jaringan. Nilai sesungguhnya bukan pada menghafal deretan opsi, melainkan pada kemampuan membaca kolom Local Address dan State, karena di sanalah masalah biasanya terlihat lebih dulu.

Soal kapan memakai yang mana, aturannya cukup ringkas. Di Windows, pakai netstat dengan netstat -ano sebagai kombinasi harian, atau Get-NetTCPConnection bila Anda sudah terbiasa dengan PowerShell. Di Linux, biasakan memakai ss karena arti opsinya sama persis dan perintahnya sudah tersedia tanpa perlu memasang apa pun. Di macOS, netstat tidak bisa menampilkan PID, sehingga lsof adalah pilihan yang lebih tepat.

Semoga artikel ini membantu.