Netstat-kommandot på macOS är ett terminalkommando som används för att visa detaljerad information om din Macs nätverkskommunikation. Nätverkskommunikation inkluderar alla sätt som din Mac pratar med omvärlden, över alla portar och alla applikationer. Efter mastering netstat kan Mac-användare snabbt förstå vilka anslutningar deras dator gör och varför.
Running Netstat
Netstat-kommandot är som standard tillgängligt på Mac. Det behöver inte laddas ner eller installeras.
För att köra netstat, öppna ett terminalfönster. Om du inte är bekant med Terminal finns den på /Applications/Utilities/Terminal.app. Typ netstat och tryck på Enter för att utföra kommandot.
Du kommer märka en stor mängd kryptisk text börjar börja bläddra på din skärm. Detta är normalt och förväntat. Utan några ytterligare alternativ rapporterar netstat alla aktiva nätverksanslutningar på din Mac. Med tanke på antalet funktioner som en modern nätverksenhet utför, kan du förvänta dig att listan är lång. En standard netstatrapport kan gå långt över 1000 linjer.
Filtrering av netstatens utdata är viktigt för att förstå vad som händer på dina Mac-aktiva portar. Du kan filtrera netstatens utgång med de inbyggda flaggor. Med dessa flaggor kan du ställa in alternativ, vilket begränsar netstats omfattning och resultat.
Netstat Flaggor och alternativ
För att se alla netstat tillgängliga alternativ, skriv man netstat vid kommandotolken. Detta kommer att avslöja Netstats mansida. Du kan också se en online-version av webbsidan för Netstat.
netstat -AabdgiLlmnqrRsSvWx -c kö -f address_family -JAG gränssnitt -p protokoll -w vänta
Netstat på macOS fungerar inte på samma sätt som netstat på Windows eller netstat på Linux. Använda flaggor eller syntax från de implementeringar av netstat får inte resultera i det förväntade beteendet.
Tips: Om ovanstående stenografi ser fullständigt oförståelig, lär du dig läsa kommandosyntax.
-r visar rutningstabellen och visar hur paketet dirigeras runt nätverket.
-p protokoll listar trafik som är kopplad till ett specifikt nätverksprotokoll. Medan den fullständiga listan över protokoll finns på / etc / protocols, desto viktigare är utp och tcp.
-v ökar verbositet, speciellt genom att lägga till en kolumn som visar process ID (PID) associerad med varje öppen port.
-JAG gränssnitt tillhandahåller paketdata för det angivna gränssnittet. Alla tillgängliga gränssnitt kan ses med -i-flaggan, men en0 är vanligtvis det standardutgående nätverksgränssnittet. Notera små bokstaven.
-g visar information som är associerad med multicast-anslutningar.
-s visar nätverksstatistiken för alla protokoll, oavsett om de är aktiva eller inte.
-n undertrycker de märkta fjärradresserna med namn. Detta ökar dramatiskt upp nätverksproduktionen samtidigt som den bara uppoffrar begränsad information.
-en inkluderar serverns portar i netstats utdata, vilka inte ingår i standardutmatningen.
Netstat-exempel
För att förstå vår förståelse, låt oss titta på några netstat exempel.
netstat -apv TCP
Det här kommandot returnerar bara TCP-anslutningar på din Mac, inklusive öppna portar och aktiva portar. Det kommer även att använda verbose output, med listning av PID: er som är associerade med varje anslutning. netstat -a | grep -i "lyssna"
Denna kombination av netstat och grep kommer att avslöja öppna portar på din Mac. Öppna portar är portar som lyssnar på ett meddelande. Om du inte är bekant med syntaxen, röret karaktär | används för att skicka utmatningen från ett kommando till ett annat kommando. Vi rör utdata från netstat till grep, så att vi kan söka efter sökordet "lyssna" och hitta våra resultat. Förutom fullfunktionsanvändning via kommandoradsgränssnittet Terminal är vissa av netstats funktionaliteter också tillgängliga via nätverksverktyget. Den här inbyggda macOS-appen finns på / Program / Verktyg / Network Utility.app. Öppna appen och klicka på netstat fliken för att komma åt det grafiska gränssnittet för netstat. Alternativ inom nätverksverktyget är tydligt mycket mer begränsade än de som är tillgängliga via kommandoraden. De fyra valknapparna väljer helt enkelt ett förinställt netstat-kommando och visar utmatningen på skärmen nedan. Netstat-kommandon för varje radioknapp är som följer: Faktum är att macOS-implementeringen av netstat inte innehåller mycket av den funktionalitet som användarna förväntar och behöver. Medan det har sina användningar, är netstat nästan inte lika användbart på macOS som det är på Windows. Ett annat kommando, lsof, kan ersätta mycket av den saknade funktionaliteten. lsof visar alla filer som för närvarande är öppna av alla appar. Detta kan också användas för att inspektera öppna portar i samband med appar. Kör lsof -i, och du får se en lista över alla applikationer som kommunicerar via Internet. Detta är normalt målet när du använder netstat på Windows-maskiner. Det enda meningsfulla sättet att utföra uppgiften på macOS är dock inte med netstat, men med lsof. Visa varje enskild öppen fil eller internetanslutning är ofta överväldigande verbose.Därför kommer lsof med ett antal flaggor för att begränsa resultaten med specifika kriterier. Det finns många användbara flaggor som utökar kommandotets verktyg. De viktigaste är nedan. För ytterligare läsning, inklusive fler flaggor och tekniska förklaringar för varje flaggs genomförande, kolla in lsofs man-sida eller springa man lsof vid en terminalanmälan. -jag Visar alla öppna nätverksanslutningar och namnet på processen som använder anslutningen. Lägger till en 4, som i -i4, kommer bara att visa IPv4-anslutningar. Lägger till en 6 istället (-i6) visar bara IPv6-anslutningar. De -jag flagga kan också utökas för att specificera ytterligare detaljer. -iTCP eller -iUDP returnerar bara TCP och UDP-anslutningar. -iTCP: 25 returnerar bara TCP-anslutningar på port 25. En rad portar kan specificeras med ett streck, eftersom det är -iTCP: 25-50. Använda [email protected] returnerar endast anslutningar till IPv4-adressen 1.2.3.4. IPv6-adresser kan anges på samma sätt. @ Föregångaren kan också användas för att ange värdnamn på samma sätt, men både externa IP-adresser och värdnamn kan inte användas samtidigt. -s Kräver typiskt lsof för att visa filstorlek. Men när parat med -jag flagga, -s fungerar annorlunda. Istället tillåter det användaren att ange protokollet och status för att kommandot ska returnera. -p begränsar lsof till ett visst process ID (PID). Flera PID kan ställas in med hjälp av commons, till exempel -p 123,456,789. Process ID kan också uteslutas med ^, som i 123, ^ 456, vilket specifikt skulle utesluta PID 456. -P inaktiverar konvertering av portnummer till portnamn, vilket ökar utmatningen. -n inaktiverar omvandlingen av nätverksnummer till värdnamn. När den används med -P ovan kan det påtagligt öka hastigheten på lsofs utdata. -u användare Returnerar bara kommandon som ägs av den angivna användaren. Precis som netstat ser vi lite exempel på lsof som ökar vår förståelse. [email protected]: 513
Den här komplexa ser kommandot kommer att lista alla TCP-anslutningar med värdnamnet lsof.itap och hamnen 513. Det kommer även att köras lsof utan att ansluta namn till IP-adresser och portar, vilket gör kommandot köra märkbart snabbare. lsof -iTCP -sTCP: LISTEN
Detta kommer att returnera varje TCP-anslutning med statusen LYSSNA. Detta avslöjar alla öppna TCP-portar på din Mac. Det listar också de processer som är kopplade till de öppna portarna. Detta är en signifikant uppgradering över netstat, som listar högst PID. sudo lsof -i -u ^ $ (whoami)
Returnerar alla anslutningar inte ägd av den för närvarande inloggade användaren. Detta kommando är lite annorlunda än de andra, så vi kommer att bryta ner det i detalj. Caret ^ används för negation. Allt som matchar texten efter caret kommer att tas bort från resultaten. Vi får namnet på den för närvarande inloggade användaren genom att köra vem är jag inuti kommandot lsof, omgivet av $() att låta tillgång till sin produktion som text. När du kör med sudo kan du se uppgifter som inte ägs av dig själv. Om du kör det här kommandot utan sudo returneras en tom lista. Andra kommandon för nätverksnätverk som kan vara av intresse för att undersöka nätverket inkluderar arp, ping och ipconfig. Åtkomst till netstat via nätverksverktyget
Tillägg av netstat med lsof
lsof flaggor och alternativ
Exempel på exempel
Andra nätverkskommandon