Netstat-kommandoen på macOS er en Terminal-kommando som brukes til å vise detaljert informasjon om din Macs nettverkskommunikasjon. Nettverkskommunikasjonen inkluderer alle måtene din Mac snakker med omverdenen, på tvers av alle porter og alle applikasjoner. Etter mastering av netstat kan Mac-brukere raskt forstå hvilke forbindelser datamaskinene deres lager og hvorfor.
Kjører Netstat
Netstat-kommandoen er som standard tilgjengelig på Mac. Det trenger ikke å lastes ned eller installeres.
For å kjøre netstat, åpne et Terminal-vindu. Hvis du ikke er kjent med Terminal, er den funnet på /Applications/Utilities/Terminal.app. Type netstat og trykk Enter for å utføre kommandoen.
Du vil legge merke til at en stor mengde kryptisk tekst begynner å rulle av på skjermen. Dette er normalt og forventet. Uten tilleggsalternativer, rapporterer netstat alle aktive nettverksforbindelser på din Mac. Med tanke på antall funksjoner som en moderne nettverksenhet utfører, kan du forvente at listen skal være lang. En standard nettstatrapport kan løpe godt over 1000 linjer.
Filtrering av netstatens utdata er viktig for å forstå hva som skjer på Mac-aktive porter. Du kan filtrere netstatens utgang med de innebygde flaggene. Disse flaggene gir deg mulighet til å angi alternativer, og begrenser nettstatens omfang og utgang.
Netstat-flagg og alternativer
For å se alle nettstatistikkens tilgjengelige alternativer, skriv mann netstat på ledeteksten. Dette vil avsløre netstatens man side. Du kan også se en online versjon av netstat man siden.
netstat -AabdgiLlmnqrRsSvWx -c kø -f address_family -JEG grensesnitt -p protokollen -w vente
Netstat på macOS virker ikke på samme måte som netstat på Windows eller netstat på Linux. Bruk av flagg eller syntaks fra de implementeringer av netstat kan ikke resultere i forventet oppførsel.
Tips: Hvis ovennevnte stenografi ser helt uforståelig ut, lær hvordan du leser kommandosyntaxen.
-r viser rutingstabellen, og viser hvordan pakker blir rutet rundt nettverket.
-p protokollen Viser trafikk tilknyttet en bestemt nettverksprotokoll. Mens den fullstendige listen over protokoller kan bli funnet på / etc / protokoller, er de viktigste som er utp og tcp.
-V øker verbositet, spesielt ved å legge til en kolonne som viser prosess-ID (PID) assosiert med hver åpen port.
-JEG grensesnitt gir pakkedata for det angitte grensesnittet. Alle tilgjengelige grensesnitt kan sees med -i-flagget, men en0 er vanligvis det standard utgående nettverksgrensesnittet. Legg merke til små bokstaver.
-g viser informasjon knyttet til multicast-tilkoblinger.
-s viser nettverksstatistikken for alle protokoller, uansett om de er aktive eller ikke.
-n undertrykker merket av eksterne adresser med navn. Dette øker dramatisk opp nettstats produksjon mens man bare ofrer begrenset informasjon.
-en Inkluderer serverporte i netstatens utgang, som ikke er inkludert i standardutgangen.
Netstat Eksempler
For å sette vår forståelse i praksis, la oss se på noen netstat eksempler.
netstat -apv TCP
Denne kommandoen returnerer bare TCP-tilkoblinger på din Mac, inkludert åpne porter og aktive porter. Det vil også bruke verbose output, oppføring av PIDene knyttet til hver tilkobling. netstat -a | grep -i "listen"
Denne kombinasjonen av netstat og grep vil avsløre åpne porter på din Mac. Åpne porter er porter som lytter etter en melding. Hvis du ikke er kjent med syntaksen, er det rørkarakteren | brukes til å sende utgangen fra en kommando til en annen kommando. Vi piper utgangen fra netstat til grep, slik at vi kan søke etter søkeordet "lytte" og finne våre resultater. I tillegg til fullverdig bruk gjennom Terminal-kommandolinjegrensesnittet, er noen av nettstatistikkfunksjonene også tilgjengelige gjennom nettverket Nettverksverktøy. Denne innebygde MacOS-appen finnes på / Programmer / Verktøy / Network Utility.app. Åpne appen og klikk på netstat kategorien for å få tilgang til det grafiske grensesnittet for netstat. Valg i Nettverksverktøy er klart langt mer begrenset enn de som er tilgjengelige via kommandolinjen. De fire valgknappene velger bare en forhåndsinnstilt netstat-kommando og viser utgangen på skjermen nedenfor. Netstat-kommandoene for hver radioknapp er som følger: Faktum er at macOS implementeringen av netstat ikke inkluderer mye av funksjonaliteten som brukerne forventer og trenger. Selv om den har sine bruksområder, er nettstat nesten ikke like nyttig på macOS som den er på Windows. En annen kommando, lsof, kan erstatte mye av den manglende funksjonaliteten. lsof viser alle filer som for øyeblikket er åpne av noen apps. Dette kan også brukes til å inspisere åpne porter knyttet til apper. Kjør lsof -i, og du vil se en liste over alle applikasjonene som kommuniserer over internett. Dette er vanligvis målet når du bruker netstat på Windows-maskiner. Den eneste meningsfulle måten å oppnå oppgaven på macOS er imidlertid ikke med netstat, men med lsof. Vise hver eneste åpen fil eller Internett-tilkobling er ofte overveldende.Derfor kommer lsof med en rekke flagg for å begrense resultatene med spesifikke kriterier. Det er mange nyttige flagg som utvider kommandoens verktøy. De viktigste er nedenfor. For ytterligere lesing, inkludert flere flagg og tekniske forklaringer på hvert flaggs gjennomføring, sjekk ut lsofs mannsside eller løp mann lsof på en terminal-spørring. -Jeg viser alle åpne nettverksforbindelser og navnet på prosessen som bruker tilkoblingen. Legge til en 4, som i -i4, vil bare vise IPv4-tilkoblinger. Legge til en 6 i stedet (-i6) vil bare vise IPv6-tilkoblinger. De -Jeg flagget kan også utvides for å spesifisere ytterligere detaljer. -iTCP eller -iUDP vil bare returnere TCP- og UDP-tilkoblinger. -iTCP: 25 returnerer bare TCP-tilkoblinger på port 25. En rekke porter kan spesifiseres med et dash, som det -iTCP: 25-50. Ved å bruke [email protected] returneres bare tilkoblinger til IPv4-adressen 1.2.3.4. IPv6-adresser kan angis på samme måte. @ Forløperen kan også brukes til å spesifisere vertsnavn på samme måte, men både eksterne IP-adresser og vertsnavn kan ikke brukes samtidig. -s krever vanligvis lsof for å vise filstørrelsen. Men når sammenkoblet med -Jeg flagg, -s fungerer annerledes. I stedet lar brukeren spesifisere protokollen og statusen for kommandoen å returnere. -p begrenser lsof til en bestemt prosess ID (PID). Flere PIDer kan settes ved å bruke commons, for eksempel -p 123,456,789. Prosess-IDer kan også utelukkes med ^, som i 123, ^ 456, som spesielt ville utelukke PID 456. -P deaktiverer konvertering av portnumre til portnavn, og øker hastigheten på utgangen. -n deaktiverer konvertering av nettverksnumre til vertsnavn. Når det brukes sammen med -P ovenfor, kan det øke hastigheten på lsofs utgang. -u bruker Returnerer bare kommandoer som eies av den navngitte brukeren. Som netstat, vil å se noen eksempler på lsof bidra til å øve vår forståelse. [email protected]: 513
Denne komplekse ser kommandoen vil liste alle TCP-tilkoblinger med vertsnavnet lsof.itap og havnen 513. Den vil også kjøre lsof uten å koble navn til IP-adresser og porter, slik at kommandoen kjøres merkbart raskere. lsof -iTCP -sTCP: LISTEN
Dette returnerer hver TCP-tilkobling med statusen LYTTE. Dette avslører alle åpne TCP-porter på din Mac. Den viser også prosessene knyttet til de åpne porter. Dette er en signifikant oppgradering over netstat, som maksimalt viser PID-er. sudo lsof -i -u ^ $ (whoami)
Returnerer alle tilkoblinger ikke eid av den nåværende innloggede brukeren. Denne kommandoen er litt forskjellig fra de andre, så vi vil bryte den ned i detalj. The caret ^ brukes til negasjon. Alt som samsvarer med teksten etter caret vil bli fjernet fra resultatene. Vi får navnet på den innloggede brukeren ved å kjøre hvem er jeg inne i kommandoen lsof, omgitt av $() å gi tilgang til sin produksjon som tekst. Ved å kjøre med sudo kan du se oppgaver som ikke eies av deg selv. Kjører denne kommandoen uten sudo vil returnere en tom liste. Andre Terminal Networking kommandoer som kan være av interesse for å undersøke nettverket ditt, inkluderer arp, ping og ipconfig. Tilgang til netstat via nettverksverktøy
Tilskudd til nettostat med lsof
lsof flagg og alternativer
lsof eksempler
Andre nettverkskommandoer