GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte, která služba na daném portu linux naslouchá

Instalace a používání lsof

lsof je nástroj příkazového řádku pro seznam všech otevřených souborů patřících všem aktivním procesům.

Chcete-li jej nainstalovat na Linux, použijte následující příkazy v závislosti na typu distribuce, kterou používáte.

Na Debianu, Ubuntu:

sudo apt install lsof

Na CentOS, RHEL:

sudo yum install lsof

Novější verze jako CentOS 8, RHEL 8 nebo Fedora

sudo dnf install lsof

Chcete-li zjistit, které procesy běží na kterých portech, jednoduše zadejte číslo portu:

sudo lsof -i :3000

Ukázkový výstup:

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

Další podrobnosti naleznete na manuálových stránkách.

man lsof

Instalace a používání netstat

Netstat je nástroj příkazového řádku, který se používá k tisku síťových připojení, směrovacích tabulek, statistik rozhraní, masquerade připojení a členství v multicastu.

Netstat je dostupný ve výchozích úložištích většiny distribucí Linuxu.

Chcete-li jej nainstalovat na Linux a jeho varianty, postupujte takto:

Na CentOS, RHEL:

sudo yum install net-tools

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

Na Debianu, Ubuntu:

sudo apt install net-tools

Pomocí následujícího příkazu zjistíte, které služby naslouchají na jakých portech:

sudo netstat -tulpn

Ukázkový výstup:

# 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

Pokud vás zajímá nějaký konkrétní port, můžete použít grep k filtrování:

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

Příznaky:

  • Příznak -t zobrazuje připojení TCP.
  • Příznak -u zobrazuje připojení udp.
  • Příznak -l zobrazí naslouchající sokety.
  • Příznak -p zobrazí ID procesu (PID) a název procesu čehokoli, co tento port používá.
  • Příznak -n zobrazí číselné adresy.

Další podrobnosti naleznete na manuálových stránkách.

man netstat

Pomocí příkazu "ss"

ss je nástroj příkazového řádku pro zkoumání soketů. Je to alternativa k netstat a použití ss je téměř stejný jako netstat . Dodává se předinstalovaný na populárních linuxových distribucích, jako je Redhat, Debian a jejich varianty.

Chcete-li zjistit, které služby naslouchají na kterých portech, spusťte:

sudo ss -tulpn

Ukázkový výstup:

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))

Chcete-li filtrovat výstup pro konkrétní službu (např. grafana), použijte:

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

Další podrobnosti naleznete na manuálových stránkách.

man ss

Instalace a použití příkazu fixační jednotky

Nástroj příkazového řádku fuser se také používá k identifikaci procesů pomocí souborů nebo soketů. Zobrazuje PID procesů používajících zadané soubory nebo systémy souborů.

Je také k dispozici ve výchozích úložištích většiny distribucí Linuxu.

Chcete-li jej nainstalovat v systému Linux, spusťte:

Na Debianu, Ubuntu:

sudo apt install psmisc

Na CentOS, RHEL:

sudo yum install psmisc

sudo dnf install psmisc

Potřebujeme najít PID služby nebo procesu naslouchajícího na konkrétním portu. Pojďme zkontrolovat PID procesu naslouchajícího na portu 3000 pomocí tohoto příkazu:

sudo fuser 3000/tcp

Uvidíte výstup jako níže.

3000/tcp:            264023

Zde 264023 je PID.

A pak zjistěte skutečný proces pomocí PID pomocí příkazu:

ps -p 264023 -o comm=

Výstup

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

Poznámka:Přidání podrobného -v flag umožňuje zobrazit úplné podrobnosti jediným příkazem:

sudo fuser -v 3000/tcp

Výstup:

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

Pro více podrobností si projděte manuálové stránky.

man fuser

Linux
  1. Nastavení přesměrování portů v Linuxu pomocí ncat

  2. Služba operačního systému Linux „dhcpd“

  3. Služba Linux OS „anacron“

  1. Linux OS Service „iptables“

  2. Jak zjistit, které časové pásmo v Linuxu?

  3. Jak mohu zkontrolovat, které porty jsou na mém počítači se systémem Linux obsazené a které volné?

  1. Zkontrolujte naslouchací porty pomocí netstat

  2. Zkontrolujte použití portu v Linuxu

  3. Zkontrolujte spuštěné služby v systému Linux