Vad att veta
- För att köra netstat och se detaljerad information om din Macs nätverk, öppna ett nytt Terminal-fönster, skriv netstat och tryckEnter.
- Begränsa netstats utdata med flaggor och alternativ. För att se netstats tillgängliga alternativ, skriv man netstat vid kommandotolken.
- Använd lsof-kommandot för att kompensera för netstats saknade eller begränsade funktionalitet, inklusive att visa alla filer som för närvarande är öppna i appar.
Den här artikeln förklarar hur du kör kommandot netstat Terminal i macOS så att du kan se detaljerad information om din Macs nätverkskommunikation, inklusive hur din Mac pratar med omvärlden, över alla portar och alla program.
Hur man kör Netstat
Att lära dig hur du använder netstat kan hjälpa dig att förstå vilka anslutningar din dator gör och varför. Kommandot netstat är tillgängligt på Mac som standard. Du behöver inte ladda ner eller installera det.
För att köra netstat:
-
Gå till Finder > Go > Utilities.
-
Dubbelklicka Terminal.
-
I det nya terminalfönstret, skriv netstat och tryck Return (eller Enter) för att utföra kommandot.
-
En stor mängd text kommer att börja rulla på skärmen. Om du inte använder någon av de tillgängliga flaggorna (se nedan), rapporterar netstat de aktiva nätverksanslutningarna på din Mac. Med tanke på antalet funktioner som en modern nätverksenhet utför kan du förvänta dig att listan blir lång. En standardrapport kan vara över 1 000 rader.
Netstat-flaggor och alternativ
Filtrering av netstats utdata är viktigt för att förstå vad som händer på din Macs aktiva portar. Netstats inbyggda flaggor låter dig ställa in alternativ, vilket begränsar kommandots omfattning.
För att se alla netstats tillgängliga alternativ, skriv man netstat vid kommandotolken för att avslöja netstats man (förkortning för "manual")-sida. Du kan också se en onlineversion av netstats man-sida.
Syntax
Det är viktigt att notera att netstat på macOS inte fungerar på samma sätt som netstat på Windows och Linux. Att använda flaggor eller syntax från dessa implementeringar av netstat kanske inte leder till det förväntade beteendet.
För att lägga till flaggor och alternativ till netstat på macOS, använd följande syntax:
netstat [-AabdgiLlmnqrRsSvWx] [-c-kö] [-f adressfamilj] [-I-gränssnitt] [-p-protokoll] [-w vänta]
Om ovanstående stenografi ser helt obegriplig ut, lär dig hur man läser kommandosyntax.
Användbara flaggor
Här är några av de mest använda flaggorna:
- - a inkluderar serverportar i netstats utdata, som inte ingår i standardutdata.
- - g visar information kopplad till multicast-anslutningar.
- - I gränssnitt tillhandahåller paketdata för det angivna gränssnittet. Alla tillgängliga gränssnitt kan ses med flaggan - i, men en0 är vanligtvis standardgränssnittet för utgående nätverk. (Observera den gemena bokstaven.)
- - n undertrycker etiketten för fjärradresser med namn. Detta snabbar upp netstats utdata samtidigt som endast begränsad information elimineras.
- - p protokoll listar trafik som är kopplad till ett specifikt nätverksprotokoll. Den fullständiga listan över protokoll finns på /etc/protocols, men de viktigaste är udp och tcp.
- - r visar routingtabellen och visar hur paket dirigeras runt i nätverket.
- - s visar nätverksstatistiken för alla protokoll, oavsett om protokollen är aktiva eller inte.
- - v ökar utförligheten, särskilt genom att lägga till en kolumn som visar process-ID (PID) som är kopplat till varje öppen port.
Netstat-exempel
Tänk på dessa exempel:
netstat -apv TCP
Detta kommando returnerar endast TCP-anslutningar på din Mac, inklusive öppna portar och aktiva portar. Den använder också utförlig utdata, som listar de PID:er som är associerade med varje anslutning.
netstat -a | grep -i "lyssna"
Denna kombination av netstat och grep avslöjar öppna portar, som är portar som lyssnar efter ett meddelande. Pipetecknet | skickar utdata från ett kommando till ett annat kommando. Här går utdata från netstat till grep, så att du kan söka efter nyckelordet "lyssna" och hitta resultaten.
Åtkomst till Netstat via Network Utility
Du kan också komma åt en del av netstats funktioner via Network Utility-appen, som ingår i macOS-versioner upp till Catalina (den ingår inte i Big Sur).
För att komma till Network Utility, skriv Network Utility i Spotlight Search för att starta appen, välj sedan fliken Netstat för att komma åt grafiskt gränssnitt.
Alternativen inom Network Utility är mer begränsade än de som är tillgängliga via kommandoraden. Var och en av de fyra alternativknapparna kör ett förinställt netstat-kommando och visar resultatet.
Netstat-kommandona för varje alternativknapp är följande:
- Visa information om rutttabell körs netstat -r.
- Visa omfattande nätverksstatistik för varje protokoll körs netstat -s.
- Visa multicast-information körs netstat -g.
- Visa status för alla aktuella socket-anslutningar körs netstat.
Kompletterar Netstat med Lsof
MacOS-implementeringen av netstat innehåller inte mycket av den funktionalitet som användarna förväntar sig och behöver. Även om det har sina användningsområden, är netstat inte lika användbart på macOS som det är på Windows. Ett annat kommando, lsof, ersätter mycket av den saknade funktionaliteten.
Lsof visar filer som för närvarande är öppna i appar. Du kan också använda den för att inspektera app-associerade öppna portar. Kör lsof -i för att se listan över applikationer som kommunicerar över internet. Detta är vanligtvis målet när du använder netstat på Windows-datorer; Det enda meningsfulla sättet att utföra den uppgiften på macOS är dock inte med netstat, utan med lsof.
Lsof Flags and Options
Visa varje öppen fil eller internetanslutning är vanligtvis utförlig. Det är därför lsof kommer med flaggor för att begränsa resultat med specifika kriterier. De viktigaste är nedan.
För information om fler flaggor och tekniska förklaringar av varje, kolla in lsofs man-sida eller kör man lsof vid en terminalprompt.
- - i visar öppna nätverksanslutningar och namnet på processen som använder anslutningen. Om du lägger till ett 4, som i - i4, visas endast IPv4-anslutningar. Om du lägger till ett 6 istället (- i6) visas endast IPv6-anslutningar.
- - i-flaggan kan också utökas för att specificera ytterligare detaljer. -iTCP eller -iUDP returnerar endast TCP- och UDP-anslutningar. -iTCP:25 returnerar endast TCP-anslutningar på port 25. Ett antal portar kan anges med ett bindestreck, eftersom det -iTCP:25-50.
- Using [email protected] returnerar endast anslutningar till IPv4-adressen 1.2.3.4. IPv6-adresser kan anges på samma sätt. @-prekursorn kan också användas för att specificera värdnamn på samma sätt, men både fjärr-IP-adresser och värdnamn kan inte användas samtidigt.
- - s tvingar vanligtvis lsof att visa filstorlek. Men när den paras ihop med - i-flaggan fungerar - s annorlunda. Istället tillåter det användaren att ange protokoll och status för kommandot att returnera.
- - p begränsar lsof till ett visst process-ID (PID). Flera PID kan ställas in med hjälp av commons, såsom -p 123, 456, 789. Process-ID:n kan också exkluderas med en ^, som i 123, ^456, vilket specifikt skulle utesluta PID 456.
- - P inaktiverar konverteringen av portnummer till portnamn, vilket påskyndar produktionen.
- - n inaktiverar konverteringen av nätverksnummer till värdnamn. När den används med - P ovan kan den snabba upp lsofs utdata avsevärt.
- - u användare returnerar endast kommandon som ägs av den namngivna användaren.
lsof Exempel
Här är några sätt att använda lsof.
lsof -nP [email protected]:513
Det här komplicerade kommandot listar TCP-anslutningarna med värdnamnet lsof.itap och porten 513. Det körs också lsof utan ansluter namn till IP-adresser och portar, vilket gör att kommandot körs märkbart snabbare.
lsof -iTCP -sTCP:LISTEN
Detta kommando returnerar varje TCP-anslutning med statusen LISTEN, vilket avslöjar de öppna TCP-portarna på Mac. Den listar också de processer som är associerade med dessa öppna portar. Detta är en betydande uppgradering över netstat, som listar PID:er som mest.
sudo lsof -i -u^$(whoami)
Andra nätverkskommandon
Andra terminalnätverkskommandon som kan vara av intresse för att undersöka ditt nätverk inkluderar arp, ping och ipconfig.