Wat te weten
- Om netstat uit te voeren en gedetailleerde gegevens over het netwerk van uw Mac te zien, opent u een nieuw Terminal-venster, typt u netstat en drukt u opEnter.
- Beperk de uitvoer van netstat met vlaggen en opties. Typ man netstat achter de opdrachtprompt om de beschikbare opties van netstat te zien.
- Gebruik het lsof-commando om de ontbrekende of beperkte functionaliteit van netstat te compenseren, inclusief het weergeven van bestanden die momenteel in apps zijn geopend.
Dit artikel legt uit hoe je de opdracht netstat Terminal in macOS uitvoert, zodat je gedetailleerde informatie kunt zien over de netwerkcommunicatie van je Mac, inclusief de manier waarop je Mac met de buitenwereld communiceert, via alle poorten en alle applicaties.
Hoe Netstat te draaien
Leren hoe u netstat kunt gebruiken, kan u helpen de verbindingen die uw computer maakt te begrijpen en waarom. De opdracht netstat is standaard beschikbaar op Macs. U hoeft het niet te downloaden of te installeren.
Netstat uitvoeren:
-
Ga naar Finder > Go > Hulpprogramma's.
-
Dubbelklik Terminal.
-
Typ in het nieuwe Terminal-venster netstat en druk op Return (of Enter) om het commando uit te voeren.
-
Er begint een enorme hoeveelheid tekst op je scherm te scrollen. Als je geen van de beschikbare vlaggen gebruikt (zie hieronder), rapporteert netstat de actieve netwerkverbindingen op je Mac. Gezien het aantal functies dat een modern netwerkapparaat uitvoert, kunt u verwachten dat de lijst lang zal zijn. Een standaardrapport kan meer dan 1.000 regels bevatten.
Netstat-vlaggen en opties
Het filteren van de uitvoer van netstat is essentieel om te begrijpen wat er gebeurt op de actieve poorten van je Mac. Met de ingebouwde vlaggen van Netstat kunt u opties instellen, waardoor het bereik van de opdracht wordt beperkt.
Om alle beschikbare opties van netstat te zien, typt u man netstat bij de opdrachtprompt om de man-pagina (afkorting van "manual") van netstat weer te geven. U kunt ook een online versie van de man-pagina van netstat bekijken.
Syntaxis
Het is belangrijk op te merken dat netstat op macOS niet op dezelfde manier werkt als netstat op Windows en Linux. Het gebruik van vlaggen of syntaxis van die implementaties van netstat resulteert mogelijk niet in het verwachte gedrag.
Gebruik de volgende syntaxis om vlaggen en opties toe te voegen aan netstat op macOS:
netstat [-AabdgiLlmnqrRsSvWx] [-c wachtrij] [-f adres_familie] [-I interface] [-p protocol] [-w wacht]
Als de bovenstaande steno er totaal onbegrijpelijk uitziet, leer dan de syntaxis van de opdracht te lezen.
Handige vlaggen
Hier zijn enkele van de meest gebruikte vlaggen:
- - a bevat serverpoorten in de uitvoer van netstat, die niet zijn opgenomen in de standaarduitvoer.
- - g geeft informatie weer die is gekoppeld aan multicast-verbindingen.
- - I interface levert pakketgegevens voor de gespecificeerde interface. Alle beschikbare interfaces kunnen worden bekeken met de - i vlag, maar en0 is typisch de standaard uitgaande netwerkinterface. (Let op de kleine letter.)
- - n onderdrukt het label van externe adressen met namen. Dit versnelt de uitvoer van netstat terwijl slechts beperkte informatie wordt geëlimineerd.
- - p protocol geeft het verkeer weer dat is gekoppeld aan een specifiek netwerkprotocol. De volledige lijst met protocollen is beschikbaar op /etc/protocols, maar de belangrijkste zijn udp en tcp.
- - r geeft de routeringstabel weer, die laat zien hoe pakketten door het netwerk worden gerouteerd.
- - s toont de netwerkstatistieken voor alle protocollen, ongeacht of de protocollen actief zijn.
- - v vergroot de breedsprakigheid, met name door een kolom toe te voegen met de proces-ID (PID) die is gekoppeld aan elke open poort.
Netstat-voorbeelden
Beschouw deze voorbeelden:
netstat -apv TCP
Deze opdracht retourneert alleen TCP-verbindingen op je Mac, inclusief open poorten en actieve poorten. Het maakt ook gebruik van uitgebreide uitvoer, met een lijst van de PID's die aan elke verbinding zijn gekoppeld.
netstat -a | grep -ik "luister"
Deze combinatie van netstat en grep onthult open poorten, dit zijn poorten die naar een bericht luisteren. Het pipe-teken | stuurt de uitvoer van een commando naar een ander commando. Hier wordt de uitvoer van netstat doorgeleid naar grep, zodat u kunt zoeken op het trefwoord "luisteren" en de resultaten kunt vinden.
Toegang tot Netstat via netwerkhulpprogramma
Je hebt ook toegang tot een deel van de functionaliteit van netstat via de Network Utility-app, die is opgenomen in macOS-versies tot en met Catalina (het is niet inbegrepen in Big Sur).
Om naar Network Utility te gaan, typt u Network Utility in Spotlight Search om de app te starten en selecteert u vervolgens het tabblad Netstat om toegang te krijgen tot de grafische interface.
Opties binnen Netwerkhulpprogramma zijn beperkter dan die beschikbaar zijn via de opdrachtregel. Elk van de vier keuzerondjes voert een vooraf ingestelde netstat-opdracht uit en geeft de uitvoer weer.
De netstat-opdrachten voor elk keuzerondje zijn als volgt:
- Routeringstabelinformatie weergeven draait netstat -r.
- Toon uitgebreide netwerkstatistieken voor elk protocol draait netstat -s.
- Multicast-informatie weergeven draait netstat -g.
- Toon de status van alle huidige socketverbindingen draait netstat.
Netstat aanvullen met Lsof
De macOS-implementatie van netstat bevat niet veel van de functionaliteit die gebruikers verwachten en nodig hebben. Hoewel het zijn nut heeft, is netstat niet zo handig op macOS als op Windows. Een ander commando, lsof, vervangt veel van de ontbrekende functionaliteit.
Lsof geeft bestanden weer die momenteel in apps zijn geopend. U kunt het ook gebruiken om app-geassocieerde open poorten te inspecteren. Voer lsof -i uit om de lijst met applicaties te zien die via internet communiceren. Dit is meestal 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.
Lsof-vlaggen en opties
Het weergeven van elk geopend bestand of internetverbinding is meestal uitgebreid. Daarom wordt lsof geleverd met vlaggen voor het beperken van resultaten met specifieke criteria. De belangrijkste staan hieronder.
Voor informatie over meer vlaggen en technische uitleg van elk, bekijk de man-pagina van lsof of voer man lsof uit bij een Terminal-prompt.
- - i toont open netwerkverbindingen en de naam van het proces dat de verbinding gebruikt. Door een 4 toe te voegen, zoals in - i4, worden alleen IPv4-verbindingen weergegeven. Door in plaats daarvan een 6 toe te voegen (- i6) worden alleen IPv6-verbindingen weergegeven.
- De - i vlag kan ook worden uitgebreid om verdere details te specificeren. -iTCP of -iUDP retourneert 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.
- Het gebruik van [email protected] retourneert alleen verbindingen naar het IPv4-adres 1.2.3.4. IPv6-adressen kunnen op dezelfde manier worden opgegeven. De @-precursor 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 dwingt normaal gesproken lsof om de bestandsgrootte weer te geven. Maar in combinatie met de - i vlag, werkt - s anders. In plaats daarvan kan de gebruiker het protocol en de status specificeren voor de opdracht die moet worden geretourneerd.
- - p beperkt lsof tot een bepaalde 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, wat specifiek PID 456 zou uitsluiten.
- - P schakelt de conversie van poortnummers naar poortnamen uit, waardoor de uitvoer wordt versneld.
- - n schakelt de conversie van netwerknummers naar hostnamen uit. Bij gebruik met - P hierboven, kan het de uitvoer van lsof aanzienlijk versnellen.
- - u gebruiker retourneert alleen opdrachten die eigendom zijn van de genoemde gebruiker.
lsof Voorbeelden
Hier zijn een paar manieren om lsof te gebruiken.
lsof -nP [email protected]:513
Dit complex ogende commando geeft een lijst van de TCP-verbindingen met de hostnaam lsof.itap en de poort 513. Het voert ook lsof uit zonder namen verbinden met IP-adressen en poorten, waardoor de opdracht merkbaar sneller wordt uitgevoerd.
lsof -iTCP -sTCP:LISTEN
Deze opdracht retourneert elke TCP-verbinding met de status LISTEN, waardoor de open TCP-poorten op de Mac zichtbaar worden. Het vermeldt ook de processen die aan die open poorten zijn gekoppeld. Dit is een belangrijke upgrade ten opzichte van netstat, die maximaal PID's weergeeft.
sudo lsof -i -u^$(whoami)
Andere netwerkopdrachten
Andere Terminal-netwerkopdrachten die van belang kunnen zijn bij het onderzoeken van uw netwerk zijn arp, ping en ipconfig.