Listening Port di Linux

Cara Memeriksa Listening Port di Linux (Port yang digunakan)

Posted on

Saat memecahkan masalah konektivitas jaringan atau masalah khusus aplikasi, salah satu hal pertama yang harus diperiksa adalah port apa yang sebenarnya digunakan pada sistem Anda dan aplikasi mana yang mendengarkan pada port tertentu.

Artikel ini menjelaskan cara menggunakan netstat, ssdan lsofperintah untuk mengetahui layanan mana yang mendengarkan di port mana. Instruksi ini berlaku untuk semua sistem operasi berbasis Linux dan Unix seperti macOS.

Apa itu Listening Port

Port jaringan diidentifikasi dengan nomornya, alamat IP terkait, dan jenis protokol komunikasi, seperti TCP atau UDP.

Port mendengarkan adalah port jaringan tempat aplikasi atau proses mendengarkan, bertindak sebagai titik akhir komunikasi.

Setiap port mendengarkan dapat dibuka atau ditutup (difilter) menggunakan firewall. Secara umum, port terbuka adalah port jaringan yang menerima paket masuk dari lokasi yang jauh.

Anda tidak dapat memiliki dua layanan yang mendengarkan port yang sama pada alamat IP yang sama.

Misalnya, jika Anda menjalankan server web Apache yang mendengarkan port 80 dan 443 dan Anda mencoba menginstal Nginx , Nginx akan gagal dijalankan nanti karena port HTTP dan HTTPS sudah digunakan.

Periksa Pelabuhan Mendengarkan dengan netstat

netstat adalah alat baris perintah yang dapat memberikan informasi tentang koneksi jaringan.

Untuk mendaftar semua port TCP atau UDP yang sedang didengarkan, termasuk layanan yang menggunakan port dan status soket gunakan perintah berikut:

sudo netstat -tunlp

Opsi yang digunakan dalam perintah ini memiliki arti sebagai berikut:

  • -t – Tampilkan port TCP.
  • -u – Tampilkan port UDP.
  • -n – Tampilkan alamat numerik alih-alih host yang menyelesaikan.
  • -l – Tampilkan hanya port mendengarkan.
  • -p – Tunjukkan PID dan nama proses pendengar. Informasi ini hanya ditampilkan jika Anda menjalankan perintah sebagai pengguna root atau sudo .

Outputnya akan terlihat seperti ini:

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 445/sshd

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master

tcp6 0 0 :::3306 :::* LISTEN 534/mysqld

tcp6 0 0 :::80 :::* LISTEN 515/apache2

tcp6 0 0 :::22 :::* LISTEN 445/sshd

tcp6 0 0 :::25 :::* LISTEN 929/master

tcp6 0 0 :::33060 :::* LISTEN 534/mysqld

udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

Kolom penting dalam kasus kami adalah:

  • Proto – Protokol yang digunakan oleh soket.
  • Local Address – Alamat IP dan nomor port tempat proses mendengarkan.
  • PID/Program name – PID dan nama proses.

Jika Anda ingin memfilter hasil, gunakan grep perintah . Misalnya, untuk menemukan proses apa yang mendengarkan TCP port 22 Anda akan mengetik:

sudo netstat -tnlp | grep :22

Output menunjukkan bahwa pada mesin ini port 22 digunakan oleh server SSH:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd

tcp6 0 0 :::22 :::* LISTEN 445/sshd

Jika output kosong itu berarti tidak ada yang mendengarkan di port.

Anda juga dapat memfilter daftar berdasarkan kriteria, misalnya PID, protokol, status, dan sebagainya.

netstatsudah usang dan diganti dengan ssdan ip , tetapi tetap merupakan perintah yang paling sering digunakan untuk memeriksa koneksi jaringan.

Periksa Pelabuhan Mendengarkan dengan ss

ss adalah yang baru netstat. Ini tidak memiliki beberapa netstat fitur, tetapi mengekspos lebih banyak status TCP dan sedikit lebih cepat. Opsi perintah sebagian besar sama, jadi transisi dari netstat ke ss tidaklah sulit.

Untuk mendapatkan daftar semua port mendengarkan dengan ssAnda akan mengetik:

sudo ss -tunlp

Outputnya hampir sama dengan yang dilaporkan oleh netstat:

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((“sshd”,pid=445,fd=3))

LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:((“master”,pid=929,fd=13))

LISTEN 0 128 *:3306 *:* users:((“mysqld”,pid=534,fd=30))

LISTEN 0 128 *:80 *:* users:((“apache2”,pid=765,fd=4),(“apache2”,pid=764,fd=4),(“apache2”,pid=515,fd=4))

LISTEN 0 128 [::]:22 [::]:* users:((“sshd”,pid=445,fd=4))

LISTEN 0 100 [::]:25 [::]:* users:((“master”,pid=929,fd=14))

LISTEN 0 70 *:33060 *:* users:((“mysqld”,pid=534,fd=33))

Periksa Pelabuhan Mendengarkan dengan lsof

lsof adalah utilitas baris perintah yang memberikan informasi tentang file yang dibuka oleh proses.

Di Linux, semuanya adalah file. Anda dapat menganggap soket sebagai file yang menulis ke jaringan.

Untuk mendapatkan daftar semua port TCP mendengarkan dengan lsoftipe:

sudo lsof -nP -iTCP -sTCP:LISTEN

Opsi yang digunakan adalah sebagai berikut:

  • -n – Jangan mengubah nomor port menjadi nama port.
  • -p – Jangan menyelesaikan nama host, tunjukkan alamat numerik.
  • -iTCP -sTCP:LISTEN – Hanya tampilkan file jaringan dengan status TCP DENGARKAN.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN)

sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN)

apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN)

mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN)

apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN)

apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN)

master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN)

master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

Sebagian besar nama kolom keluaran sudah cukup jelas:

  • COMMAND, PID, USER – Nama, pid dan pengguna menjalankan program yang terkait dengan pelabuhan.
  • NAME – Nomor port.

Untuk menemukan proses apa yang mendengarkan pada port tertentu, misalnya, port 3306yang akan Anda gunakan:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

Outputnya menunjukkan bahwa server MySQL menggunakan port 3306:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

Untuk informasi lebih lanjut, kunjungi halaman manual lsof dan baca tentang semua opsi hebat lainnya dari alat ini.

Kesimpulan

Kami telah menunjukkan kepada Anda beberapa perintah yang dapat Anda gunakan untuk memeriksa port apa yang digunakan pada sistem Anda, dan bagaimana menemukan proses apa yang mendengarkan pada port tertentu.

Jika Anda memiliki pertanyaan atau komentar, silakan tinggalkan komentar di bawah.