Co je dobré vědět
- Chcete-li spustit netstat a zobrazit podrobná data o síti vašeho Macu, otevřete nové okno Terminal, napište netstat a stiskněteEnter.
- Omezte výstup netstatu pomocí příznaků a voleb. Chcete-li zobrazit dostupné možnosti netstat, zadejte do příkazového řádku man netstat.
- Použijte příkaz lsof k nahrazení chybějících nebo omezených funkcí netstatu, včetně zobrazení souborů aktuálně otevřených v jakékoli aplikaci.
Tento článek vysvětluje, jak spustit příkaz netstat Terminal v macOS, abyste viděli podrobné informace o síťové komunikaci vašeho Macu, včetně způsobů, jak váš Mac komunikuje s vnějším světem, a to na všech portech a ve všech aplikacích.
Jak spustit Netstat
Naučení se, jak používat netstat, vám může pomoci pochopit, jaká připojení 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.
Spuštění netstatu:
-
Přejít na Finder > Go > Utilities.
-
Dvakrát klikněte Terminál.
-
V novém okně Terminálu napište netstat a stiskněte Return (nebo Enter) k provedení příkazu.
-
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í přehled může mít více než 1 000 řádků.
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 vám umožňují nastavit možnosti, omezující rozsah příkazu.
Chcete-li zobrazit všechny dostupné možnosti netstatu, napište do příkazového řádku man netstat, aby se zobrazila stránka netstatu man (zkratka pro "manual"). Můžete si také prohlédnout online verzi manuálové stránky netstatu.
Syntaxe
Je důležité si uvědomit, že netstat na macOS nefunguje stejně jako netstat na 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 adresa_rodina] [-I rozhraní] [-p protokol] [-w čekat]
Pokud výše uvedená zkratka vypadá naprosto nesrozumitelně, naučte se čí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 netstatu, které nejsou zahrnuty ve výchozím výstupu.
- - g zobrazuje informace spojené s multicastovým připojením.
- - I poskytuje paketová data pro zadané rozhraní. Všechna dostupná rozhraní lze zobrazit s příznakem - i, 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 zrychlí výstup netstatu a zároveň eliminuje pouze omezené informace.
- - p protokol uvádí provoz spojený s konkrétním síťovým protokolem. Úplný seznam protokolů je k dispozici na /etc/protocols, ale nejdůležitější jsou udp a tcp.
- - r zobrazuje směrovací tabulku, která ukazuje, jak jsou pakety směrovány po síti.
- - s zobrazuje statistiky sítě pro všechny protokoly bez ohledu na to, zda jsou aktivní nebo ne.
- - v 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.
Rozhraní
Příklady Netstat
Zvažte tyto příklady:
netstat -apv TCP
Tento příkaz vrací pouze TCP spojení na vašem Macu, včetně otevřených 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ě. Znak | posílá výstup jednoho příkazu jinému příkazu. Zde výstup netstat potrubí na grep, což vám umožní vyhledat klíčové slovo „listen“a najít výsledky.
Přístup k Netstatu prostřednictvím síťového nástroje
Některé funkce netstat můžete také získat 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 Network Utility do Spotlight Search a spusťte aplikaci, poté vyberte kartu Netstat pro přístup k grafické rozhraní.
Možnosti v rámci 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í:
- Zobrazit informace o směrovací tabulce běží netstat -r.
- Zobrazit komplexní statistiky sítě pro každý protokol běží netstat -s.
- Zobrazovat informace vícesměrového vysílání běží netstat -g.
- Zobrazí stav všech aktuálních připojení zásuvek běží netstat.
Doplnění Netstat pomocí 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ů spojených s aplikací. Spuštěním 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 Flags and Options
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ů na konkrétní kritéria. Ty nejdůležitější jsou uvedeny níže.
Informace o dalších příznacích a technických vysvětleních každého najdete na manuálové stránce lsof nebo spusťte man lsof na příkazovém řádku terminálu.
- - i zobrazí otevřená síťová připojení a název procesu, který připojení používá. Přidáním 4, jako u - i4, se zobrazí pouze připojení IPv4. Pokud místo toho přidáte 6 (- i6), zobrazí se pouze připojení IPv6.
- Příznak - i 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 vzdálené IP adresy i názvy hostitelů nelze použít současně.
- - s obvykle nutí lsof k zobrazení velikosti souboru. Ale při spárování s příznakem - i funguje - s jinak. Místo toho umožňuje uživateli určit 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í společných znaků, jako je -p 123, 456, 789. ID procesu lze také vyloučit pomocí ^, jako u 123, ^456, což by konkrétně vyloučilo PID 456.
- - P zakáže 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.
lsof příkladů
Zde je několik způsobů, jak používat 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 portem 513. Spouští také lsof bez připojování názvů k IP adresám a portům, takže příkaz běží znatelně rychleji.
lsof -iTCP -sTCP:LISTEN
Tento příkaz vrátí každé TCP spojení se stavem LISTEN a odhalí otevřené TCP porty na Macu. Uvádí také procesy spojené s těmito otevřenými porty. Toto je významný upgrade oproti netstat, který uvádí maximálně PID.
sudo lsof -i -u^$(whoami)
Další síťové příkazy
Další síťové příkazy terminálu, které by mohly být zajímavé při zkoumání vaší sítě, zahrnují arp, ping a ipconfig.