Skip to main content

Hoe het Netstat-commando op Mac te gebruiken

Het commando ipconfig (Mei 2024)

Het commando ipconfig (Mei 2024)
Anonim

De netstat-opdracht op macOS is een Terminal-opdracht die wordt gebruikt om gedetailleerde informatie weer te geven over de netwerkcommunicatie van uw Mac. De netwerkcommunicatie omvat alle manieren waarop uw Mac met de buitenwereld communiceert, over alle poorten en alle toepassingen. Na het beheersen van Netstat kunnen Mac-gebruikers snel begrijpen welke verbindingen hun computer maakt en waarom.

Netstat uitvoeren

De opdracht netstat is standaard beschikbaar op Macs. Het hoeft niet te worden gedownload of geïnstalleerd.

Als u netstat wilt uitvoeren, opent u een terminalvenster. Als u niet bekend bent met Terminal, vindt u dit bij /Applications/Utilities/Terminal.app. Type netstat en druk op Enter om de opdracht uit te voeren.

Je zult merken dat er een enorme hoeveelheid cryptische tekst op je scherm zal verschijnen. Dit is normaal en wordt verwacht. Zonder extra opties rapporteert netstat alle actieve netwerkverbindingen op uw Mac. Gezien het aantal functies dat een modern netwerkapparaat uitvoert, kunt u verwachten dat de lijst lang is. Een standaard netstat-rapport kan meer dan 1000 regels bevatten.

Het filteren van de output van netstat is essentieel om te begrijpen wat er gebeurt op uw actieve Mac-poorten. U kunt de output van netstat filteren met de ingebouwde vlaggen. Met deze vlaggen kunt u opties instellen, waardoor de reikwijdte en uitvoer van netstat wordt beperkt.

Netstat vlaggen en opties

Als u alle beschikbare opties van netstat wilt zien, typt u man netstat bij de opdrachtprompt. Dit zal de man-pagina van netstat onthullen. U kunt ook een online-versie van de netstat-manpagina bekijken.

netstat -AabdgiLlmnqrRsSvWx -C wachtrij -f address_family -IK interface -p protocol -w Wacht

Netstat op macOS werkt niet op dezelfde manier als netstat op Windows of netstat op Linux. Het gebruik van vlaggen of syntaxis van die implementaties van netstat kan niet leiden tot het verwachte gedrag.

Tip: Als de bovenstaande afkorting volledig onbegrijpelijk lijkt, leert u de syntaxis van de opdracht te lezen.

-r geeft de routeringstabel weer, die laat zien hoe pakketten rond het netwerk worden gerouteerd.

-p protocol geeft verkeer weer dat is gekoppeld aan een specifiek netwerkprotocol. Hoewel de volledige lijst met protocollen te vinden is bij / etc / protocollen, zijn de belangrijkste protocollen udp en tcp.

-v verhoogt de breedsprakigheid, met name door een kolom toe te voegen die de proces-id (PID) toont die bij elke open poort hoort.

-IK interface biedt pakketgegevens voor de opgegeven interface. Alle beschikbare interfaces kunnen worden bekeken met de vlag -i, maar en0 is meestal de standaard uitgaande netwerkinterface. Let op de kleine letter.

-g geeft informatie weer die is gekoppeld aan multicast-verbindingen.

-s toont de netwerkstatistieken voor alle protocollen, ongeacht of deze actief zijn.

-n onderdrukt het label van externe adressen met namen. Dit versnelt de output van netstat dramatisch, terwijl slechts beperkte informatie wordt opgeofferd.

-een bevat serverpoorten in de uitvoer van netstat, die niet zijn opgenomen in de standaarduitvoer.

Netstat-voorbeelden

Laten we, om ons begrip in de praktijk te brengen, naar enkele netstat-voorbeelden kijken.

netstat -apv TCP

Deze opdracht retourneert alleen TCP-verbindingen op uw Mac, inclusief open poorten en actieve poorten. Het zal ook uitgebreide uitvoer gebruiken, met een opsomming van de PID's die bij elke verbinding horen.

netstat -a | grep -i "luister"

Deze combinatie van netstat en grep onthult open poorten op je Mac. Open poorten zijn poorten die naar een bericht luisteren. Als u niet bekend bent met de syntaxis, het pijpkarakter | wordt gebruikt om de uitvoer van het ene commando naar een ander commando te sturen. We pipen de uitvoer van netstat naar grep, waardoor we het kunnen zoeken naar het sleutelwoord "luisteren" en onze resultaten kunnen vinden.

Toegang krijgen tot netstat via Network Utility

Naast het volledige gebruik via de opdrachtregelinterface van Terminal, is een deel van de functionaliteit van netstat ook toegankelijk via de Network Utility-app. Deze ingebouwde macOS-app is te vinden op / Applications / Utilities / Network Utility.app. Open de app en klik op de netstat tab om toegang te krijgen tot de grafische interface voor netstat.

Opties binnen Network Utility zijn duidelijk veel beperkter dan die beschikbaar via de opdrachtregel. De vier selecties voor de keuzerondjes voeren gewoon een vooraf ingesteld netstat-commando uit en geven de uitvoer op het onderstaande scherm weer.

De netstat-opdrachten voor elk keuzerondje zijn als volgt:

  • Geef routetabelinformatie weer draait netstat -r
  • Toon uitgebreide netwerkstatistieken voor elk protocol voert netstat -s uit
  • Multicast-informatie weergeven gebruikt netstat -g
  • Geef de status van alle huidige socketverbindingen weer voert netstat uit

Aanvulling van netstat met lsof

Het feit is dat de macOS-implementatie van netstat niet veel van de functionaliteit bevat die gebruikers verwachten en nodig hebben. Hoewel het zijn toepassingen heeft, is netstat lang niet zo nuttig op macOS als in Windows. Een ander commando, lsof, kan een groot deel van de ontbrekende functionaliteit vervangen.

lsof geeft alle bestanden weer die momenteel door apps worden geopend. Dit kan ook worden gebruikt om open poorten te inspecteren die zijn gekoppeld aan apps. Voer lsof -i uit en je ziet een lijst met alle applicaties die communiceren via internet. Dit is typisch het doel bij het gebruik van netstat op Windows-machines. De enige zinvolle manier om die taak op macOS te volbrengen is echter niet met netstat, maar met lsof.

Het weergeven van elke open bestand of internetverbinding is vaak overweldigend uitgebreid.Daarom komt lsof met een aantal vlaggen voor het beperken van resultaten met specifieke criteria. Er zijn veel nuttige vlaggen die het hulpprogramma van de opdracht uitbreiden. De belangrijkste zijn hieronder. Voor meer informatie, inclusief meer vlaggen en technische uitleg over de implementatie van elke vlag, ga je naar de manpagina van lsof of voer je uit man lsof op een Terminal-prompt.

lsof vlaggen en opties

-ik toont alle open netwerkverbindingen en de naam van het proces dat de verbinding gebruikt. Een 4 toevoegen, zoals in -i4, geeft alleen IPv4-verbindingen weer. In plaats hiervan een 6 toevoegen (-i6) geeft alleen IPv6-verbindingen weer.

De -ik vlag kan ook worden uitgebreid om verdere details te specificeren. -iTCP of -iUDP retourneren alleen TCP- en UDP-verbindingen. -iTCP: 25 retourneert alleen TCP-verbindingen op poort 25. Een reeks poorten kan worden opgegeven met een streepje, omdat het -iTCP: 25-50 is.

Als u [email protected] gebruikt, worden alleen verbindingen naar het IPv4-adres 1.2.3.4 geretourneerd. IPv6-adressen kunnen op dezelfde manier worden opgegeven. De @ -voorloper kan ook worden gebruikt om hostnamen op dezelfde manier op te geven, maar zowel externe IP-adressen als hostnamen kunnen niet tegelijkertijd worden gebruikt.

-s meestal dwingt lsof de bestandsgrootte weer te geven. Maar in combinatie met de -ik vlag, -s werkt anders. In plaats daarvan kan de gebruiker het protocol en de status opgeven voor de terugkeeropdracht.

-p Beperkt lsof tot een bepaald proces-ID (PID). Meerdere PID's kunnen worden ingesteld met behulp van commons, zoals -p 123.456.789. Proces-ID's kunnen ook worden uitgesloten met een ^, zoals in 123, ^ 456, die PID 456 specifiek zou uitsluiten.

-P schakelt de conversie van poortnummers naar poortnamen uit en versnelt de uitvoer.

-n schakelt de conversie van netwerknummers naar hostnamen uit. Wanneer gebruikt met -P hierboven, kan het de uitvoer van lsof aanzienlijk versnellen.

-u gebruiker geeft alleen opdrachten terug die het eigendom zijn van de genoemde gebruiker.

Lsof voorbeelden

Netstat, zal het zien van enkele voorbeelden van lsof helpen om ons begrip te oefenen.

lsof -nP [email protected]: 513

Dit complex uitziende commando toont alle TCP-verbindingen met de hostnaam lsof.itap en de poort 513. Het zal ook lsof uitvoeren zonder namen aan IP-adressen en poorten te koppelen, waardoor de opdracht merkbaar sneller wordt.

lsof -iTCP -sTCP: LISTEN

Hierdoor wordt elke TCP-verbinding met de status geretourneerd LUISTER. Dit onthult alle open TCP-poorten op uw Mac. Het geeft ook een overzicht van de processen die zijn gekoppeld aan die open poorten. Dit is een aanzienlijke upgrade ten opzichte van netstat, die de meeste PID's vermeldt.

sudo lsof -i -u ^ $ (whoami)

Retourneert alle verbindingen niet eigendom van de momenteel ingelogde gebruiker. Dit commando wijkt een beetje af van de andere, dus we zullen het in detail uit elkaar halen.

Het personage ^ wordt gebruikt voor ontkenning. Alles dat overeenkomt met de tekst na de cursor, wordt uit de resultaten verwijderd. We krijgen de naam van de momenteel ingelogd gebruiker door te lopen wie ben ik in het commando lsof, omringd door $() om lsof toegang te geven tot zijn uitvoer als tekst. Draaien met sudo stelt u in staat om taken te zien die niet het eigendom zijn van uzelf. Als u deze opdracht uitvoert zonder sudo, wordt een lege lijst geretourneerd.

Andere netwerkopdrachten

Andere Terminal-netwerkopdrachten die van belang kunnen zijn bij het onderzoeken van uw netwerk, omvatten arp, ping en ipconfig.