Jak používat příkaz Netstat na Macu

Co vědět

  • Chcete-li spustit netstat a zobrazit podrobná data o síti vašeho Macu, otevřete nový Terminál okno, typ netstat, a stiskněte Vstupte.
  • Omezte výstup netstatu pomocí příznaků a možností. Chcete-li zobrazit dostupné možnosti netstat, zadejte muž netstat na příkazovém řádku.
  • Použijte příkaz lsof aby se nahradila chybějící nebo omezená funkčnost netstatu, včetně zobrazení všech souborů aktuálně otevřených ve všech aplikacích.

Tento článek vysvětluje, jak spustit netstat Příkaz terminálu v macOS, abyste viděli podrobné informace o síťové komunikaci vašeho Macu, včetně toho, jak váš Mac komunikuje s vnějším světem, a to napříč všemi porty a všemi aplikacemi.

Jak spustit Netstat

Naučte se, jak používat netstat, vám pomůže porozumět připojení, která váš počítač vytváří a proč. Příkaz netstat je ve výchozím nastavení k dispozici na počítačích Mac. Nemusíte jej stahovat ani instalovat.

Chcete-li spustit netstat:

  1. Jít do Nálezce > Jít > Utility.

    Finder's Go menu se zvýrazněnými Utilities
  2. Dvojklik Terminál.

    Složka Utilities se zvýrazněným Terminálem
  3. V novém okně Terminál zadejte netstat a stiskněte Vrátit se (nebo Vstupte) pro provedení příkazu.

    Terminálové okno se zvýrazněným příkazem netstat
  4. Na obrazovce se začne posouvat velké množství textu. Pokud nepoužíváte žádný z dostupných příznaků (viz níže), netstat hlásí aktivní síťová připojení na vašem Macu. Vzhledem k množství funkcí, které moderní síťové zařízení plní, můžete očekávat, že seznam bude dlouhý. Standardní sestava může mít více než 1 000 řádků.

    Dlouhá zpráva netstat v okně terminálu

Příznaky a možnosti Netstat

Filtrování výstupu netstatu je nezbytné pro pochopení toho, co se děje na aktivních portech vašeho Macu. Vestavěné příznaky Netstatu umožňují nastavit možnosti, omezující rozsah příkazu.

Chcete-li zobrazit všechny dostupné možnosti netstat, napište muž netstat na příkazovém řádku k odhalení stránky netstat man (zkratka pro "manual"). Můžete také zobrazit online verze manuálové stránky netstatu.

Syntax

Je důležité si uvědomit, že netstat na macOS nefunguje stejným způsobem jako netstat ve Windows a Linux. Použití příznaků nebo syntaxe z těchto implementací netstat nemusí vést k očekávanému chování.

Chcete-li přidat příznaky a možnosti do netstat na macOS, použijte následující syntaxi:

netstat [-AabdgiLlmnqrRsSvWx] [-c fronta] [-f rodina_adresy] [-I rozhraní] [-p protokol] [-w čekat]

Pokud výše uvedená zkratka vypadá naprosto nesrozumitelně, poučte se jak číst syntaxi příkazu.

Užitečné příznaky

Zde jsou některé z nejčastěji používaných příznaků:

  • -A zahrnuje serverové porty ve výstupu netstat, které nejsou zahrnuty ve výchozím výstupu.
  • -G zobrazuje informace spojené s vícesměrovým připojením.
  • -Jározhraní poskytuje paketová data pro zadané rozhraní. Všechna dostupná rozhraní lze zobrazit pomocí -i vlajka, ale en0 je obvykle výchozí odchozí síťové rozhraní. (Všimněte si malého písmene.)
  • -n potlačí označení vzdálených adres se jmény. To zrychluje výstup netstatu a zároveň eliminuje pouze omezené informace.
  • -pprotokol uvádí provoz spojený s konkrétním síťový protokol. Úplný seznam protokolů je k dispozici na /etc/protocols, ale ty nejdůležitější jsou udp a TCP.
  • -r zobrazí směrovací tabulka, ukazující jak pakety jsou směrované kolem sítě.
  • -s zobrazuje statistiku sítě pro všechny protokoly bez ohledu na to, zda jsou protokoly aktivní nebo ne.
  • -proti zvyšuje upovídanost, konkrétně přidáním sloupce zobrazujícího ID procesu (PID) spojeného s každým otevřeným portem.

Příklady Netstat

Zvažte tyto příklady:

netstat -apv TCP

Tento příkaz vrátí pouze připojení TCP na vašem Macu, včetně otevřených portů a aktivních portů. Používá také podrobný výstup se seznamem PID spojených s každým připojením.

netstat -a | grep -i "poslouchám"

Tato kombinace netstat a grep odhaluje otevřené porty, což jsou porty, které naslouchají zprávě. Charakter potrubí | odesílá výstup jednoho příkazu jinému příkazu. Zde je výstup netstat potrubí do grep, což vám umožní vyhledat klíčové slovo „poslouchat“ a najít výsledky.

Přístup k Netstatu prostřednictvím síťového nástroje

K některým funkcím netstat můžete také přistupovat prostřednictvím aplikace Network Utility, která je součástí verzí macOS až po Catalina (není součástí Big Sur).

Chcete-li se dostat do Network Utility, zadejte Síťový nástroj do Spotlight Search pro spuštění aplikace a poté vyberte Netstat kartu pro přístup do grafického rozhraní.

Karta Netstat v Network Utility

Možnosti v Network Utility jsou omezenější než možnosti dostupné přes příkazový řádek. Každý ze čtyř výběrových přepínačů spustí přednastavený příkaz netstat a zobrazí výstup.

Příkazy netstat pro každý přepínač jsou následující:

  • Zobrazení informací o směrovací tabulce běží netstat -r.
  • Zobrazte komplexní síťové statistiky pro každý protokol běží netstat -s.
  • Zobrazení informací o vícesměrovém vysílání běží netstat -g.
  • Zobrazte stav všech aktuálních připojení zásuvek běží netstat.
Síťový nástroj Netstat

Doplnění Netstat s Lsof

Implementace netstat pro macOS nezahrnuje mnoho funkcí, které uživatelé očekávají a potřebují. Přestože má své využití, netstat není tak užitečný v macOS jako ve Windows. Jiný příkaz, lsof, nahrazuje většinu chybějících funkcí.

Lsof zobrazuje soubory aktuálně otevřené v aplikacích. Můžete jej také použít ke kontrole otevřených portů souvisejících s aplikací. Běh lsof -i zobrazíte seznam aplikací komunikujících přes internet. To je obvykle cílem při použití netstat na počítačích s Windows; jediný smysluplný způsob, jak tento úkol splnit na macOS, není pomocí netstat, ale pomocí lsof.

Lsof výstupu

Příznaky a možnosti Lsof

Zobrazení každého otevřeného souboru nebo připojení k internetu je obvykle podrobné. Proto lsof přichází s příznaky pro omezení výsledků podle konkrétních kritérií. Ty nejdůležitější jsou uvedeny níže.

Informace o dalších příznakech a technických vysvětleních každého naleznete na stránce manuálová stránka lsof nebo běžet muž lsof na výzvu terminálu.

  • -i zobrazí otevřená síťová připojení a název procesu, který připojení používá. Přidání a 4, jako v -i4, zobrazí pouze připojení IPv4. Přidání a 6 namísto (-i6) zobrazí pouze připojení IPv6.
  • The -i příznak lze také rozšířit a specifikovat další podrobnosti. -iTCP nebo -iUDP vrátí pouze připojení TCP a UDP. -iTCP: 25 vrací pouze připojení TCP na portu 25. Rozsah portů lze zadat pomlčkou, protože -iTCP: 25-50.
  • Použití [email protected] vrátí pouze připojení na adresu IPv4 1.2.3.4. Adresy IPv6 lze zadat stejným způsobem. Předchůdce @ lze také použít ke specifikaci názvů hostitelů stejným způsobem, ale oba jsou vzdálené IP adresy a názvy hostitelů nelze používat současně.
  • -s obvykle nutí lsof k zobrazení velikosti souboru. Ale při spárování s -i vlajka, -s funguje jinak. Místo toho umožňuje uživateli zadat protokol a stav příkazu, který se má vrátit.
  • -p omezuje lsof na konkrétní ID procesu (PID). Více PID lze nastavit pomocí commons, jako je -p 123,456,789. ID procesů lze také vyloučit pomocí ^, jako v případě 123,^456, což by konkrétně vyloučilo PID 456.
  • -P deaktivuje převod čísel portů na názvy portů, čímž urychlí výstup.
  • -n zakáže převod čísel sítí na názvy hostitelů. Při použití s -P výše, může výrazně zrychlit výstup lsof.
  • -u uživatel vrací pouze příkazy vlastněné jmenovaným uživatelem.

Několik příkladů

Zde je několik způsobů, jak použít lsof.

lsof -nP [email protected]: 513

Tento složitě vyhlížející příkaz uvádí seznam TCP spojení s názvem hostitele lsof.itap a přístav 513. Spouští také lsof bez připojení jmen k IP adresám a portům, takže příkaz běží znatelně rychleji.

lsof -iTCP -sTCP: POSLOUCHEJTE

Tento příkaz vrací každé TCP spojení se stavem POSLOUCHAT, odhalující otevřené TCP porty na Macu. Uvádí také procesy spojené s těmito otevřenými porty. Toto je významný upgrade netstat, který uvádí PID nanejvýš.

Příkaz Lsof listen

sudo lsof -i -u^$(whoami)

Příkaz Whoami v terminálu

Další síťové příkazy

Mezi další síťové příkazy terminálu, které by mohly být zajímavé při zkoumání vaší sítě, patří arp, ping, a ipconfig.