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