GNU/Linux >> Znalost Linux >  >> FreeBSD

15 užitečných „Příklady příkazů Sockstat“ k nalezení otevřených portů ve FreeBSD

Sockstat je všestranný nástroj příkazového řádku používaný pro zobrazení síťových a systémových otevřených soketů ve FreeBSD. Příkaz sockstat je ve FreeBSD nainstalován ve výchozím nastavení a běžně se používá pro zobrazení názvu procesů, které otevřely určitý síťový port v systému FreeBSD.

Nicméně sockstat může také vypsat otevřené sokety na základě verze protokolu (obě verze IP), stavu připojení a portů, na kterých se démon nebo program váže a na kterých naslouchá.

Přečtěte si také :20 užitečných příkladů příkazů „netstat“ ke kontrole síťových připojení

Může také zobrazit meziprocesové komunikační sokety, typicky známé jako unixové doménové sokety nebo IPC. Příkaz Sockstat v kombinaci s filtrem grep nebo pomocí nástroje awk se ukazuje jako mocný nástroj pro zásobník lokálních sítí.

Může zmenšit výsledky pro otevřené připojení na základě uživatele, který vlastní soket, deskriptoru souboru síťového soketu nebo PID procesu, který soket otevřel.

V této příručce uvedeme některé běžné příklady použití, ale také velmi výkonné, síťového nástroje příkazového řádku sockstat ve FreeBSD.

Požadavky

  1. Instalační příručka FreeBSD 11.1

1. Seznam všech otevřených portů ve FreeBSD

Příkaz sockstat, který se jednoduše provede bez jakýchkoli voleb nebo přepínačů, zobrazí všechny otevřené zásuvky v systému FreeBSD, jak je znázorněno na obrázku níže.

# sockstat

Hodnoty zobrazené na výstupu sockstatu jsou popsány jako:

  • UŽIVATEL :Vlastník (uživatelský účet) zásuvky.
  • PŘÍKAZ :Příkaz, který otevřel soket.
  • PID :ID procesu příkazu, který vlastní soket.
  • FD :Číslo deskriptoru souboru soketu.
  • PROTO :Transportní protokol (obvykle TCP/UDP) spojený s otevřeným soketem nebo typem soketu v případě soketů unixové domény (datagram, stream nebo seqpac) pro sokety UNIX.
  • MÍSTNÍ ADRESA :Představuje místní IP adresu pro sokety založené na IP. V případě Unixových soketů představuje název koncového bodu připojený k soketu. “??” zápis znamená, že koncový bod soketu nemohl být rozpoznán nebo vytvořen.
  • ZAHRANIČNÍ ADRESA :Vzdálená adresa IP, ke které je zásuvka připojena.

2. Seznam naslouchaných nebo otevřených portů ve FreeBSD

Spouští se pomocí -l příznak, příkaz sockstat zobrazí všechny naslouchající sokety otevřené v síťovém zásobníku a všechny otevřené unixové doménové sokety nebo pojmenované kanály zapojené do nějakého druhu místního zpracování dat v systému.

# sockstat -l

3. Seznam otevřených portů IPv4 ve FreeBSD

Zobrazení všech otevřených soketů pro IPv4 pouze protokol, zadejte příkaz s -4 flag, jak je navrženo v níže uvedeném příkladu.

# sockstat -4

4. Seznam otevřených portů IPv6 ve FreeBSD

Podobně jako u verze IPv4 můžete také zobrazit otevřené síťové zásuvky pro IPv6 pouze zadáním příkazu, jak je uvedeno níže.

# sockstat -6

5. Seznam otevřených portů TCP nebo UDP ve FreeBSD

Chcete-li zobrazit síťové sokety pouze na základě zadaného síťového protokolu, jako je TCP nebo UDP , použijte -P příznak následovaný názvem argumentu protokolu.

Názvy protokolů lze zjistit kontrolou obsahu /etc/protocols soubor. V současné době není protokol ICMP nástrojem sockstat podporován.

Zobrazit pouze sokety TCP
# sockstat -P tcp
Zobrazit pouze sokety UDP
# sockstat -P udp

Zřetězení obou protokolů.

# sockstat –P tcp,udp

6. Vypsat specifická čísla portů TCP a UDP

Pokud chcete zobrazit všechny otevřené sokety TCP nebo UDP IP na základě čísla místního nebo vzdáleného portu, použijte níže uvedené příznaky a syntaxi příkazů, jak je znázorněno na níže uvedeném snímku obrazovky.

# sockstat -P tcp -p 443             [Show TCP HTTPS Port]
# sockstat -P udp -p 53              [Show UDP DNS Port] 
# sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. Seznam otevřených a připojených portů ve FreeBSD

Chcete-li zobrazit všechny otevřené a připojené zásuvky, použijte -c vlajka. Jak je ukázáno v níže uvedených ukázkách, můžete uvést všechny HTTPS připojené sokety nebo všechny sokety připojené TCP vydáním příkazů.

# sockstat -P tcp -p 443 -c
# sockstat -P tcp -c

8. Seznam portů pro poslech sítě ve FreeBSD

Chcete-li vypsat všechny otevřené TCP sokety ve stavu naslouchání, přidejte -l a -s příznaky, jak ukazuje níže uvedený příklad. Protože jde o protokol bez připojení, UDP neuchovává žádné informace o stavu připojení.

Otevřené sokety UDP nelze zobrazit pomocí jejich stavu, protože protokol udp používá datagramy k odesílání/přijímání dat a nemá žádný vestavěný mechanismus pro určení stavu připojení.

# sockstat -46 -l -s

9. Vypsat Unix Sockets a Named Pipes

Unixové doménové sokety, stejně jako další formy místní meziprocesové komunikace, jako jsou pojmenované kanály, lze zobrazit příkazem sockstat pomocí -u příznak, jak je znázorněno na obrázku níže.

# sockstat -u

10. Seznam portů otevřených aplikací ve FreeBSD

Výstup příkazu Sockstat lze filtrovat pomocí nástroje grep, aby se zobrazil seznam portů otevřených konkrétní aplikací nebo příkazem.

Předpokládejme, že chcete vypsat všechny zásuvky spojené s Nginx webový server, můžete k provedení úkolu zadat následující příkaz.

# sockstat -46 | grep nginx

Chcete-li zobrazit pouze připojené sokety spojené s webovým serverem Nginx, zadejte následující příkaz.

# sockstat -46 -c| grep nginx

11. Seznam protokolů připojených k HTTPS

Můžete vypsat všechny připojené zásuvky spojené s HTTPS protokol vedle stavu každého připojení spuštěním níže uvedeného příkazu.

# sockstat -46 -s -P TCP -p 443 -c

12. Vypsat vzdálené zásuvky HTTP

Chcete-li vypsat všechny vzdálené sokety přidružené k protokolu HTTP, můžete spustit jednu z následujících kombinací příkazů.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
# sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. Najít nejvyšší požadavky HTTP podle IP adres

V případě, že chcete zjistit, kolik připojení HTTP vyžaduje každá vzdálená IP adresa, zadejte níže uvedený příkaz. Tento příkaz může být velmi užitečný v případě, že chcete zjistit, zda je váš webový server pod nějakým typem útoku DDOS. V případě podezření byste měli prozkoumat IP adresy s nejvyšší četností žádostí.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. Seznam otevřených soketů DNS

Pokud jste ve své provozovně nakonfigurovali server DNS pro ukládání do mezipaměti a předávání DNS pro obsluhu interních klientů prostřednictvím transportního protokolu TCP a chcete zobrazit seznam všech soketů
otevřených překladačem spolu se stavem každého připojení soketu, proveďte následující příkaz.

# sockstat -46 -P tcp –p 53 -s

15. Dotaz TCP DNS na místní doméně

Pokud v síti není žádný provoz DNS, můžete ručně spustit dotaz DNS na soket TCP z konzoly místního počítače spuštěním následujícího příkazu dig. Poté zadejte výše uvedený příkaz a vypište všechny sokety resolveru.

# dig +tcp  www.domain.com  @127.0.0.1

To je vše! Spolu s nástroji příkazového řádku netstat a lsof je příkazový řádek sockstat mocným nástrojem používaným pro získávání informací o síti a odstraňování problémů s mnoha aspekty síťového zásobníku FreeBSD a procesů a služeb souvisejících se sítí.

Protějšek příkazu FreeBSD sockstat v Linuxu je reprezentován netstat nebo nově ss příkaz. Věřte tomu nebo ne, na základě nástroje sockstat můžete najít podobnou aplikaci vyvinutou pro OS Android s názvem SockStat – Simple Netstat GUI.


FreeBSD
  1. 12 Užitečné příklady příkazů Wget v Linuxu

  2. 25 Užitečné hledání Příkaz Praktické příklady v Linuxu

  3. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  1. 23 Užitečné příklady příkazů PKG pro správu balíčků ve FreeBSD

  2. Užitečné příklady příkazu Docker ps

  3. 7 Užitečné příklady příkazů Najít k vyhledání souborů k odstranění, když je souborový systém plný

  1. 20 užitečných příkladů příkazů Docker v Linuxu

  2. 5 Užitečné příklady příkazu firewall-cmd

  3. najdete příklady příkazů v Linuxu