Perintah ss Linux: periksa port, soket, dan proses pemilik

Perintah ss menampilkan soket Linux, termasuk port TCP yang menunggu koneksi, soket UDP, dan keadaan koneksi. Gunakan ss -ltn untuk memeriksa port TCP yang mendengarkan, lalu cocokkan alamat lokal dan prosesnya; port yang terlihat belum membuktikan dapat diakses dari luar.

Soket adalah titik komunikasi yang digunakan proses. Transmission Control Protocol (TCP) memiliki tahapan pembentukan koneksi, sedangkan User Datagram Protocol (UDP) mengirim datagram tanpa mekanisme koneksi seperti TCP. ss berasal dari iproute2 dan membantu memeriksa keadaan soket, bukan menguji seluruh jalur jaringan atau kesehatan aplikasi.

Sintaks dan pilihan pemeriksaan

ss [OPSI] [FILTER]

OPSI dan FILTER adalah penanda. Periksa ss --version dan man ss pada sistem yang digunakan. Tanpa opsi, ss menampilkan soket non-listening yang memiliki hubungan koneksi menurut jenisnya; ini bukan daftar lengkap port server yang mendengarkan.

-l memilih soket yang mendengarkan, -t memilih TCP, -u memilih UDP, dan -n menampilkan port dalam bentuk angka. -p menambahkan proses yang memakai soket, tetapi visibilitas informasi proses dipengaruhi izin serta lingkungan proses yang sedang Anda periksa.

Lihat port TCP yang mendengarkan

ss -ltn

Gabungan -ltn berarti hanya soket listening TCP dengan alamat dan port numerik. Cari port layanan yang direncanakan dan pastikan alamat lokal sesuai: loopback, alamat antarmuka tertentu, atau alamat wildcard memiliki cakupan berbeda.

Jika hasil kosong, periksa apakah layanan berjalan, protokol dan keluarga alamatnya benar, serta apakah pemeriksaan dilakukan pada host atau namespace jaringan yang tepat. Namespace adalah ruang keadaan jaringan terpisah, misalnya pada kontainer. Hasil dari satu namespace tidak otomatis mencakup seluruh soket host dan kontainer.

Lihat TCP, UDP, dan proses pemilik

sudo ss -ltnup

Perintah ini menyertakan TCP dan UDP serta informasi proses. Gunakan sudo hanya bila Anda berwenang dan memerlukan informasi yang tidak terlihat sebagai pengguna biasa. Informasi proses yang kosong bukan bukti tidak ada proses atau layanan; periksa izin, namespace, dan kemungkinan soket berubah saat pemeriksaan.

Pada UDP, soket layanan dapat ditampilkan sebagai UNCONN. Itu tidak otomatis berarti layanan rusak. UDP dapat memiliki tujuan bawaan melalui connect pada soket, tetapi tidak melakukan handshake dan tidak menjamin pengiriman seperti TCP. Cocokkan protokol dengan layanan yang benar-benar digunakan.

Filter koneksi berdasarkan port

ss -tn '( sport = :22 or dport = :22 )'

sport adalah port pada sisi lokal soket yang ditampilkan dan dport adalah port tujuan atau peer. Bentuk or memilih salah satu sisi yang bernilai 22, sehingga dapat mencakup koneksi masuk ke layanan lokal maupun koneksi keluar ke port 22 di host lain. Nomor port saja tidak membuktikan protokol aplikasinya.

Petik tunggal menjaga tanda kurung serta ekspresi tetap menjadi satu argumen shell. Jangan menghapus petik saat menyalin. Perintah ini tidak memakai -l sehingga bukan pengganti pemeriksaan listener; untuk melihat port yang menunggu koneksi, gunakan contoh -ltn.

Keadaan ESTAB menunjukkan koneksi TCP telah terbentuk pada saat diamati, bukan bahwa autentikasi atau permintaan aplikasi berhasil. Soket dapat muncul dan hilang dengan cepat; gunakan hasil sebagai potret waktu, bukan jaminan keadaan terus-menerus.

Baca alamat, port, dan antrean listener

ss -ltn

Berikut potongan ilustrasi. Alamat, jumlah antrean, dan batas antrean berbeda menurut sistem serta konfigurasi layanan:

State  Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0      128    0.0.0.0:22         0.0.0.0:*

State LISTEN berarti soket TCP menunggu koneksi. Local Address:Port adalah alamat dan port lokal; Peer Address:Port pada listener belum menunjuk satu klien tertentu. 0.0.0.0:22 berarti port 22 pada semua alamat IPv4 lokal dalam namespace itu, bukan izin otomatis dari semua jaringan.

Untuk soket TCP LISTEN pada Linux, Recv-Q menunjukkan koneksi yang menunggu diterima aplikasi dan Send-Q menunjukkan batas backlog antreannya. Angka 0 dan 128 pada ilustrasi bukan jumlah byte yang dikirim, bukan 128 klien yang sudah aktif, dan bukan ukuran yang harus diterapkan pada setiap server. Arti antrean bergantung pada keadaan soket; jangan menyamakan listener dengan koneksi TCP yang sudah terbentuk.

Jika layanan hanya terikat pada 127.0.0.1, koneksi langsung melalui antarmuka eksternal tidak mencapai listener itu. Pengaturan penerusan atau proxy terpisah dapat mengubah jalur akses, sehingga periksa konfigurasi terkait. Sebaliknya, listener 0.0.0.0 tetap dapat dibatasi firewall, routing, atau aturan keamanan cloud.

Jangan menganggap wildcard IPv6 otomatis berarti IPv4 juga diterima: perilaku dual-stack bergantung pada pengaturan soket dan sistem. Periksa keluarga alamat serta konfigurasi layanan yang sebenarnya.

Opsi umum

Opsi Fungsi
-l Hanya soket yang mendengarkan, yang tidak ditampilkan secara bawaan.
-t / -u Memilih soket TCP atau UDP.
-n Menampilkan alamat dan port dalam bentuk numerik.
-p Menampilkan proses pemakai soket bila informasi dapat diakses.
-a Menyertakan soket listening dan non-listening.
-s Menampilkan ringkasan statistik soket.

Rincian pilihan dan ekspresi filter tersedia pada manual ss iproute2. Perbedaan soket UDP dijelaskan pada dokumentasi UDP Linux. Pemetaan antrean TCP LISTEN dapat ditelusuri pada kode diagnostik TCP kernel Linux.

Saat port terlihat tetapi koneksi gagal

  1. Cocokkan protokol serta alamat dan port lokal. Listener TCP tidak membuktikan layanan UDP pada port yang sama tersedia.
  2. Periksa proses pemilik dengan -p sesuai izin. Untuk konflik port, ss -ltnp membantu mengenali pemilik listener; jangan menghentikan proses hanya berdasarkan nomor port tanpa memeriksa perannya.
  3. Periksa alamat dan rute dengan perintah ip untuk antarmuka dan jalur, lalu firewall, aturan keamanan cloud, dan penerusan alamat yang benar-benar dipakai.
  4. Uji dari lokasi klien yang relevan dan periksa respons aplikasi. Koneksi lokal yang berhasil tidak membuktikan akses dari jaringan luar.

Contoh di artikel ini hanya menampilkan keadaan. Opsi ss lain seperti -K dapat menutup soket secara paksa, sehingga jangan menambahkannya saat Anda hanya hendak memeriksa.

FAQ

Mengapa port terlihat di ss tetapi tidak dapat diakses dari luar?

Periksa apakah listener hanya pada loopback, apakah protokol dan keluarga alamat cocok, serta apakah routing, firewall, dan aturan cloud mengizinkan jalur dari klien. Listener saja tidak menjamin keterjangkauan.

Mengapa nama proses tidak terlihat dengan -p?

Informasi dapat dibatasi oleh izin atau lingkungan proses dan namespace. Gunakan hak yang sesuai bila diperlukan dan pastikan Anda memeriksa lingkungan layanan yang benar.