GNU/Linux >> Belajar Linux >  >> Linux

Periksa layanan mana yang mendengarkan pada port linux yang diberikan

Menginstal dan Menggunakan lsof

lsof adalah utilitas baris perintah untuk mendaftar semua file terbuka milik semua proses aktif.

Untuk menginstalnya di Linux, gunakan perintah berikut tergantung pada jenis distribusi yang Anda gunakan.

Di Debian, Ubuntu:

sudo apt install lsof

Di CentOS, RHEL:

sudo yum install lsof

Versi yang lebih baru seperti CentOS 8, RHEL 8 atau Fedora

sudo dnf install lsof

Untuk menemukan proses mana yang berjalan pada port mana, cukup tentukan nomor port:

sudo lsof -i :3000

Contoh keluaran:

# lsof -i :3000
COMMAND      PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
grafana-s 264023 grafana   10u  IPv6 2887779      0t0  TCP *:hbci (LISTEN)

Untuk detail lebih lanjut, lihat halaman manual.

man lsof

Menginstal dan Menggunakan netstat

Netstat adalah utilitas baris perintah yang digunakan untuk mencetak koneksi jaringan, tabel perutean, statistik antarmuka, koneksi penyamaran, dan keanggotaan multicast.

Netstat tersedia di repositori default sebagian besar distribusi Linux.

Untuk menginstalnya di Linux dan variannya, lakukan:

Di CentOS, RHEL:

sudo yum install net-tools

# On Fedora, RHEL 8 and Centos8
sudo dnf install net-tools

Di Debian, Ubuntu:

sudo apt install net-tools

Gunakan perintah berikut untuk menemukan layanan mana yang mendengarkan pada port apa:

sudo netstat -tulpn

Contoh keluaran:

# sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8088          0.0.0.0:*               LISTEN      538847/influxd
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      900/nginx: master p
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:7088            0.0.0.0:*               LISTEN      538639/docker-proxy
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      900/nginx: master p
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      970/sshd
tcp6       0      0 :::9080                 :::*                    LISTEN      393063/promtail-lin
tcp6       0      0 :::3000                 :::*                    LISTEN      264023/grafana-serv
tcp6       0      0 :::3100                 :::*                    LISTEN      391839/loki-linux-a
tcp6       0      0 :::9090                 :::*                    LISTEN      263154/prometheus
tcp6       0      0 :::9096                 :::*                    LISTEN      391839/loki-linux-a
tcp6       0      0 :::9100                 :::*                    LISTEN      262769/node_exporte
tcp6       0      0 :::44303                :::*                    LISTEN      393063/promtail-lin
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::7088                 :::*                    LISTEN      538645/docker-proxy
tcp6       0      0 :::80                   :::*                    LISTEN      900/nginx: master p
tcp6       0      0 :::8086                 :::*                    LISTEN      538847/influxd
tcp6       0      0 :::22                   :::*                    LISTEN      970/sshd
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           777/chronyd
udp6       0      0 :::111                  :::*                                1/systemd
udp6       0      0 ::1:323                 :::*                                777/chronyd
udp6       0      0 fe80::458:3aff:fed6:546 :::*                                850/NetworkManager

Jika Anda tertarik dengan port tertentu, Anda dapat menggunakan grep untuk memfilter:

sudo netstat -tulpn | grep 3000
sudo netstat -tulpn | grep grafana

Bendera:

  • -tanda t menunjukkan koneksi tcp.
  • -u flag menunjukkan koneksi udp.
  • -l bendera menampilkan soket mendengarkan.
  • -p flag menampilkan ID proses (PID) dan nama proses apa pun yang menggunakan port tersebut.
  • -n flag menampilkan alamat numerik.

Untuk detail lebih lanjut, lihat halaman manual.

man netstat

Menggunakan perintah "ss"

ss adalah utilitas baris perintah untuk menyelidiki soket. Ini adalah alternatif untuk netstat dan penggunaan ss hampir sama dengan netstat . Itu sudah diinstal sebelumnya di distro linux populer seperti Redhat, Debian dan variannya.

Untuk menemukan layanan mana yang mendengarkan di port mana, jalankan:

sudo ss -tulpn

Contoh keluaran:

Netid   State    Recv-Q   Send-Q                        Local Address:Port        Peer Address:Port   Process
udp     UNCONN   0        0                                   0.0.0.0:111              0.0.0.0:*       users:(("rpcbind",pid=705,fd=5),("systemd",pid=1,fd=33))
udp     UNCONN   0        0                                 127.0.0.1:323              0.0.0.0:*       users:(("chronyd",pid=777,fd=6))
udp     UNCONN   0        0                                      [::]:111                 [::]:*       users:(("rpcbind",pid=705,fd=7),("systemd",pid=1,fd=35))
udp     UNCONN   0        0                                     [::1]:323                 [::]:*       users:(("chronyd",pid=777,fd=7))
udp     UNCONN   0        0           [fe80::458:3aff:fed6:8255]%eth0:546                 [::]:*       users:(("NetworkManager",pid=850,fd=26))
tcp     LISTEN   0        128                               127.0.0.1:8088             0.0.0.0:*       users:(("influxd",pid=538847,fd=3))
tcp     LISTEN   0        128                                 0.0.0.0:443              0.0.0.0:*       users:(("nginx",pid=902,fd=8),("nginx",pid=901,fd=8),("nginx",pid=900,fd=8))
tcp     LISTEN   0        128                                 0.0.0.0:111              0.0.0.0:*       users:(("rpcbind",pid=705,fd=4),("systemd",pid=1,fd=32))
tcp     LISTEN   0        128                                 0.0.0.0:7088             0.0.0.0:*       users:(("docker-proxy",pid=538639,fd=4))
tcp     LISTEN   0        128                                 0.0.0.0:80               0.0.0.0:*       users:(("nginx",pid=902,fd=9),("nginx",pid=901,fd=9),("nginx",pid=900,fd=9))
tcp     LISTEN   0        128                                 0.0.0.0:22               0.0.0.0:*       users:(("sshd",pid=970,fd=5))
tcp     LISTEN   0        128                                       *:9080                   *:*       users:(("promtail-linux-",pid=393063,fd=10))
tcp     LISTEN   0        128                                       *:3000                   *:*       users:(("grafana-server",pid=264023,fd=10))
tcp     LISTEN   0        128                                       *:3100                   *:*       users:(("loki-linux-amd6",pid=391839,fd=9))
tcp     LISTEN   0        128                                       *:9090                   *:*       users:(("prometheus",pid=263154,fd=8))
tcp     LISTEN   0        128                                       *:9096                   *:*       users:(("loki-linux-amd6",pid=391839,fd=10))
tcp     LISTEN   0        128                                       *:9100                   *:*       users:(("node_exporter",pid=262769,fd=3))
tcp     LISTEN   0        128                                       *:44303                  *:*       users:(("promtail-linux-",pid=393063,fd=11))
tcp     LISTEN   0        128                                    [::]:111                 [::]:*       users:(("rpcbind",pid=705,fd=6),("systemd",pid=1,fd=34))
tcp     LISTEN   0        128                                    [::]:7088                [::]:*       users:(("docker-proxy",pid=538645,fd=4))
tcp     LISTEN   0        128                                    [::]:80                  [::]:*       users:(("nginx",pid=902,fd=10),("nginx",pid=901,fd=10),("nginx",pid=900,fd=10))
tcp     LISTEN   0        128                                       *:8086                   *:*       users:(("influxd",pid=538847,fd=5))
tcp     LISTEN   0        128                                    [::]:22                  [::]:*       users:(("sshd",pid=970,fd=7))

Untuk memfilter keluaran untuk layanan tertentu (Misalnya grafana), gunakan:

sudo ss -tulpn | grep grafana
sudo ss -tulpn | grep 3000

Untuk detail lebih lanjut, lihat halaman manual.

man ss

Menginstal dan Menggunakan perintah fuser

Utilitas baris perintah fuser juga digunakan untuk mengidentifikasi proses menggunakan file atau soket. Ini menampilkan PID proses menggunakan file atau sistem file yang ditentukan.

Ini juga tersedia di repositori default sebagian besar distribusi Linux.

Untuk menginstalnya di Linux, jalankan:

Di Debian, Ubuntu:

sudo apt install psmisc

Di CentOS, RHEL:

sudo yum install psmisc

sudo dnf install psmisc

Kita perlu menemukan PID dari layanan atau proses yang mendengarkan pada port tertentu. Mari kita periksa PID dari proses mendengarkan pada port 3000 menggunakan perintah ini:

sudo fuser 3000/tcp

Anda akan melihat output seperti di bawah ini.

3000/tcp:            264023

Di sini, 264023 adalah PID.

Dan kemudian cari tahu proses sebenarnya menggunakan PID menggunakan perintah:

ps -p 264023 -o comm=

Keluaran

# ps -p 264023 -o comm=
grafana-server

Catatan:Menambahkan verbose -v flag memungkinkan Anda untuk melihat detail lengkap dalam satu perintah:

sudo fuser -v 3000/tcp

Keluaran:

# sudo fuser -v 3000/tcp
                     USER        PID ACCESS COMMAND
3000/tcp:            grafana   264023 F.... grafana-server

Untuk detail lebih lanjut, buka halaman manual.

man fuser

Linux
  1. Layanan OS Linux 'dhcpd'

  2. Layanan OS Linux 'anacron'

  3. Layanan OS Linux 'iptables'

  1. Bagaimana cara memeriksa zona waktu mana di Linux?

  2. Bagaimana saya bisa memeriksa port mana yang sibuk dan port mana yang kosong di mesin Linux saya?

  3. Periksa apakah port terbuka atau tertutup di server Linux?

  1. Menyiapkan pengalihan port di Linux dengan ncat

  2. Periksa port mendengarkan dengan netstat

  3. Periksa penggunaan port di Linux