Hvad du skal vide
- For at køre netstat og se detaljerede data om din Macs netværk skal du åbne et nyt Terminal vindue, skrive netstat, og trykke påEnter.
- Begræns netstats output med flag og muligheder. For at se netstats tilgængelige muligheder skal du skrive man netstat ved kommandoprompten.
- Brug lsof-kommandoen til at kompensere for netstats manglende eller begrænsede funktionalitet, herunder visning af filer, der i øjeblikket er åbne i alle apps.
Denne artikel forklarer, hvordan du kører kommandoen netstat Terminal i macOS, så du kan se detaljerede oplysninger om din Macs netværkskommunikation, inklusive måden din Mac taler til omverdenen på, på tværs af alle porte og alle programmer.
Sådan kører du Netstat
At lære at bruge netstat kan hjælpe dig med at forstå de forbindelser, din computer laver, og hvorfor. Netstat-kommandoen er som standard tilgængelig på Mac-computere. Du behøver ikke at downloade eller installere det.
For at køre netstat:
-
Gå til Finder > Go > Utilities.
-
Dobbeltklik Terminal.
-
I det nye terminalvindue skal du skrive netstat og trykke Return (eller Enter) for at udføre kommandoen.
-
En enorm mængde tekst begynder at rulle på din skærm. Hvis du ikke bruger nogen af de tilgængelige flag (se nedenfor), rapporterer netstat de aktive netværksforbindelser på din Mac. I betragtning af antallet af funktioner, en moderne netværksenhed udfører, kan du forvente, at listen bliver lang. En standardrapport kan køre over 1.000 linjer.
Netstat-flag og muligheder
Filtrering af netstats output er afgørende for at forstå, hvad der sker på din Macs aktive porte. Netstats indbyggede flag giver dig mulighed for at indstille indstillinger, hvilket begrænser kommandoens omfang.
For at se alle netstats tilgængelige muligheder, skriv man netstat ved kommandoprompten for at afsløre netstats man-side (forkortelse for "manual"). Du kan også se en onlineversion af netstats man-side.
Syntaks
Det er vigtigt at bemærke, at netstat på macOS ikke fungerer på samme måde som netstat på Windows og Linux. Brug af flag eller syntaks fra disse implementeringer af netstat resulterer muligvis ikke i den forventede adfærd.
For at tilføje flag og muligheder til netstat på macOS skal du bruge følgende syntaks:
netstat [-AabdgiLlmnqrRsSvWx] [-c kø] [-f address_family] [-I interface] [-p protokol] [-w wait]
Hvis ovenstående stenografi ser fuldstændig uforståelig ud, så lær at læse kommandosyntaks.
Nyttige flag
Her er nogle af de mest brugte flag:
- - a inkluderer serverporte i netstats output, som ikke er inkluderet i standardoutputtet.
- - g viser oplysninger forbundet med multicast-forbindelser.
- - I interface giver pakkedata til den angivne grænseflade. Alle tilgængelige grænseflader kan ses med - i flaget, men en0 er typisk standard udgående netværksgrænseflade. (Bemærk det lille bogstav.)
- - n undertrykker etiketten på fjernadresser med navne. Dette fremskynder netstats output og eliminerer kun begrænset information.
- - p protokol viser trafik forbundet med en specifik netværksprotokol. Den fulde liste over protokoller er tilgængelig på /etc/protocols, men de vigtigste er udp og tcp.
- - r viser rutetabellen, der viser, hvordan pakker dirigeres rundt på netværket.
- - s viser netværksstatistikken for alle protokoller, uanset om protokollerne er aktive eller ej.
- - v øger omfanget, specifikt ved at tilføje en kolonne, der viser proces-id'et (PID), der er knyttet til hver åben port.
Netstat-eksempler
Overvej disse eksempler:
netstat -apv TCP
Denne kommando returnerer kun TCP-forbindelser på din Mac, inklusive åbne porte og aktive porte. Den bruger også detaljeret output, som viser de PID'er, der er knyttet til hver forbindelse.
netstat -a | grep -i "lyt"
Denne kombination af netstat og grep afslører åbne porte, som er porte, der lytter efter en besked. Rørtegnet | sender output fra en kommando til en anden kommando. Her går outputtet fra netstat til grep, så du kan søge efter søgeordet "lyt" og finde resultaterne.
Adgang til Netstat via Network Utility
Du kan også få adgang til nogle af netstats funktioner gennem Network Utility-appen, som er inkluderet i macOS-versioner op til Catalina (den er ikke inkluderet i Big Sur).
For at komme til Network Utility skal du skrive Network Utility i Spotlight Search for at starte appen, og vælg derefter fanen Netstat for at få adgang til grafisk grænseflade.
Valgmuligheder i Network Utility er mere begrænsede end dem, der er tilgængelige via kommandolinjen. Hver af de fire valg af radioknapper kører en forudindstillet netstat-kommando og viser outputtet.
Netstat-kommandoerne for hver radioknap er som følger:
- Vis oplysninger om rutetabellen kører netstat -r.
- Vis omfattende netværksstatistik for hver protokol kører netstat -s.
- Vis multicast-oplysninger kører netstat -g.
- Vis status for alle aktuelle stikforbindelser kører netstat.
Supplerer Netstat med Lsof
MacOS-implementeringen af netstat inkluderer ikke meget af den funktionalitet, som brugerne forventer og har brug for. Selvom det har sine anvendelser, er netstat ikke så nyttigt på macOS, som det er på Windows. En anden kommando, lsof, erstatter meget af den manglende funktionalitet.
Lsof viser filer, der i øjeblikket er åbne i apps. Du kan også bruge den til at inspicere app-associerede åbne porte. Kør lsof -i for at se listen over applikationer, der kommunikerer over internettet. Dette er typisk målet ved brug af netstat på Windows-maskiner; den eneste meningsfulde måde at udføre denne opgave på på macOS er dog ikke med netstat, men med lsof.
Lsof flag og muligheder
Visning af alle åbne filer eller internetforbindelser er typisk omfattende. Det er derfor, lsof kommer med flag til at begrænse resultater med specifikke kriterier. De vigtigste er nedenfor.
For information om flere flag og tekniske forklaringer af hver, tjek lsofs man-side eller kør man lsof ved en terminalprompt.
- - i viser åbne netværksforbindelser og navnet på den proces, der bruger forbindelsen. Tilføjelse af et 4, som i - i4, viser kun IPv4-forbindelser. Tilføjelse af et 6 i stedet (- i6) viser kun IPv6-forbindelser.
- - i flaget kan også udvides for at specificere yderligere detaljer. -iTCP eller -iUDP returnerer kun TCP- og UDP-forbindelser. -iTCP:25 returnerer kun TCP-forbindelser på port 25. En række porte kan angives med en bindestreg, da det -iTCP:25-50.
- Using [email protected] returnerer kun forbindelser til IPv4-adressen 1.2.3.4. IPv6-adresser kan angives på samme måde. @-prækursoren kan også bruges til at angive værtsnavne på samme måde, men både eksterne IP-adresser og værtsnavne kan ikke bruges samtidigt.
- - s tvinger typisk lsof til at vise filstørrelse. Men når det er parret med - i flaget, fungerer - s anderledes. I stedet giver det brugeren mulighed for at angive protokollen og status for kommandoen, der skal returneres.
- - p begrænser lsof til et bestemt proces-id (PID). Flere PID'er kan indstilles ved at bruge commons, såsom -p 123, 456, 789. Proces-ID'er kan også udelukkes med en ^, som i 123, ^456, hvilket specifikt ville udelukke PID 456.
- - P deaktiverer konverteringen af portnumre til portnavne, hvilket fremskynder output.
- - n deaktiverer konverteringen af netværksnumre til værtsnavne. Når det bruges med - P ovenfor, kan det fremskynde lsof's output betydeligt.
- - u bruger returnerer kun kommandoer, der ejes af den navngivne bruger.
lsof eksempler
Her er et par måder at bruge lsof på.
lsof -nP [email protected]:513
Denne kommando med et komplekst udseende viser TCP-forbindelserne med værtsnavnet lsof.itap og porten 513. Den kører også lsof uden forbinder navne til IP-adresser og porte, hvilket får kommandoen til at køre mærkbart hurtigere.
lsof -iTCP -sTCP:LISTEN
Denne kommando returnerer hver TCP-forbindelse med status LISTEN, hvilket afslører de åbne TCP-porte på Mac'en. Den viser også de processer, der er forbundet med disse åbne porte. Dette er en betydelig opgradering i forhold til netstat, som højst viser PID'er.
sudo lsof -i -u^$(whoami)
Andre netværkskommandoer
Andre Terminal-netværkskommandoer, der kan være af interesse for at undersøge dit netværk, omfatter arp, ping og ipconfig.