Netstat-kommandoen i macOS er en terminal kommando som viser detaljert informasjon om datamaskinens nettverkskommunikasjon. Nettverkskommunikasjonen inkluderer alle måtene Mac-en din snakker med omverdenen, på tvers av alle porter og alle applikasjoner. Erobrer netstat kan hjelpe deg med å forstå tilkoblingene datamaskinen din lager og hvorfor.
Kjører Nettstat
Netstat-kommandoen er tilgjengelig på Mac-er som standard. Du trenger ikke å laste ned eller installere den.
For å kjøre netstat, åpne et terminal vindu på applikasjoner > verktøy > terminal. Skriv inn netstat og trykk Enter å utføre kommandoen.
wakila / Getty Images
En enorm mengde tekst vil begynne å rulle på skjermen. Hvis du ikke bruker noen av de tilgjengelige flaggene (se nedenfor), netstat vil rapportere alle de aktive nettverkstilkoblingene på din Mac. Med tanke på antall funksjoner en moderne nettverksenhet utfører, kan du forvente at listen vil være lang. En standardrapport kan kjøre godt over 1000 linjer.
Filtrering av netstats utdata er viktig for å forstå hva som skjer på Mac-ens aktive porter. Med de innebygde flaggene kan du angi alternativer, og begrense kommandoens omfang.
Netstat-flagg og alternativer
For å se alle netstats tilgjengelige alternativer, skriv inn mann netstat ved ledeteksten for å avsløre netstats man-side. Du kan også se en online versjon av netstats man-side.
"Man" er en forkortelse for "manual".
Syntax
For å legge til flagg og alternativer til netstat, bruk følgende syntaks:
netstat [-AabdgiLlmnqrRsSvWx] [-c kø] [-f address_family] [-I interface] [-p protocol] [-w wait]
netstat på macOS fungerer ikke på samme måte som netstat på Windows og Linux. Bruk av flagg eller syntaks fra implementeringene av netstat kan ikke føre til forventet oppførsel.
Hvis den forkortelsen ovenfor ser helt uforståelig ut, kan du lære å lese kommando syntaks.
Nyttige flagg
Her er noen av de mest brukte flaggene:
- -a inkluderer server porter i netstatens utgang, som ikke er inkludert i standard utgangen.
- -g viser informasjon tilknyttet multicast-tilkoblinger.
- -I grensesnittet gir pakkedata for det angitte grensesnittet. Alle tilgjengelige grensesnitt kan vises med
- -i flagg, men en0 er vanligvis standard utgående nettverksgrensesnitt. (Legg merke til små bokstaver.)
- -n undertrykker merkingen av eksterne adresser med navn. Dette øker nettstats produksjon dramatisk, samtidig som det kun ofrer begrenset informasjon.
- -p protokoll viser trafikk assosiert med en spesifikk nettverksprotokoll. Den komplette listen over protokoller er tilgjengelig på / etc / protokoller, men de viktigste er udp og tcp.
- -r viser rutetabellen, som viser hvordan pakker blir rutet rundt nettverket.
- -s viser nettverks statistikken for alle protokoller, uansett om de er aktive eller ikke.
- -v øker detaljnivået, spesielt ved å legge til en kolonne som viser prosess-ID (PID) assosiert med hver åpen port.
Netstat eksempler
Tenk på disse eksemplene:
netstat -apv TCP
Denne kommandoen returnerer bare TCP-tilkoblinger på din Mac, inkludert åpne porter og aktive porter. Den bruker også detaljert utgang, og viser PID-er tilknyttet hver tilkobling.
netstat -a | grep-jeg "hør"
Denne kombinasjonen av netstat og grep avslører åpne porter — porter som lytter etter en melding. Rør karakteren | sender utdataene fra en kommando til en annen kommando. Her er produksjonen av netstat rør til grep, slik at du kan søke etter søkeordet "lytte" og finne resultatene.
Tilgang til Netstat gjennom nettverksverktøy
Du kan også få tilgang til noen av netstat's funksjonalitet gjennom Network Utility-appen på system > Bibliotek > Core > applikasjoner.
Klikk på netstat kategorien for å få tilgang til det grafiske grensesnittet.
Alternativene i Network Utility er langt mer begrensede enn de som er tilgjengelige via kommandolinjen. Hvert av de fire valg knappene kjører en forhåndsinnstilt netstat kommandoen og viser utdataene.
Netstat-kommandoene for hver radio knapp er som følger:
- Vis informasjon om rutetabell går netstat -r.
- Vis omfattende nettverks statistikk for hver protokoll går netstat -s.
- Vis informasjon om multicast går netstat -g.
- Vis tilstanden til alle gjeldende stikkontakter går netstat.
Supplerer Netstat med Lsof
MacOS-implementeringen av netstat inkluderer ikke mye av funksjonaliteten brukere forventer og trenger. Selv om det har sine bruksområder, er netstat ikke så nyttig på macOS som det er på Windows. En annen kommando, lsof, erstatter mye av den manglende funksjonaliteten.
Lsof viser alle filer som er åpne i apper. Du kan også bruke den til å inspisere app relaterte åpne porter. Løpe 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 meningsfylte måten å utføre den oppgaven på macOS på, er imidlertid ikke med netstat, men med lsof.
Lsof Flagg og opsjoner
Å vise hver eneste åpne fil eller internettforbindelse er vanligvis verbose. Derfor kommer lsof med flagg for å begrense resultater med spesifikke kriterier. De viktigste er under.
For informasjon om flere flagg og tekniske forklaringer om hver, sjekk ut lsofs man-side eller kjør mann lsof ved en terminal melding.
- -i viser alle åpne nettverkstilkoblinger 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 for (-i6) vil bare vise IPv6-tilkoblinger.
- De -i flagget kan også utvides for å spesifisere ytterligere detaljer. -iTCP eller -iUDP returnerer bare TCP- og UDP-tilkoblinger. -iTCP: 25 vil bare returnere TCP-tilkoblinger på port 25. Et utvalg av porter kan spesifiseres med en bindestrek, da det -iTCP: 25-50.
- Ved å bruke [email protected] returneres bare tilkoblinger til IPv4-adressen 1.2.3.4. IPv6-adresser kan spesifiseres 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 tvinger vanligvis lsof til å vise filstørrelse. Men når paret med -i flagg, -s fungerer annerledes. I stedet lar den brukeren spesifisere protokollen og statusen for kommandoen som skal returneres.
- -p begrenser lsof til en bestemt prosess-ID (PID). Flere PID-er kan stilles inn ved å bruke commons, for eksempel -p 123,456,789. Prosess-ID kan også ekskluderes med a ^, som i 123, ^ 456, som spesifikt ekskluderer PID 456.
- -P deaktiverer konvertering av portnumre til portnavn, og fremskynder produksjonen.
- -n deaktiverer konvertering av nettverksnummer til vertsnavn. Når det brukes med -P ovenfor kan det øke hastigheten på lsof betydelig.
- -u bruker returnerer bare kommandoer som eies av den navngitte brukeren.
Eksempler
Her er noen måter å bruke lsof på.
lsof -nP [email protected]: 513
Denne kompliserte kommandoen viser alle TCP-tilkoblinger med vertsnavnet lsof.itap og havnen 513. Den kjører også lsof uten å koble navn til IP-adresser og porter, noe som gjør at kommandoen kjøres merkbart raskere.
lsof -iTCP -sTCP: LYTT
Denne kommandoen returnerer hver TCP-forbindelse med statusen LYTT, avslører alle åpne TCP-porter på din Mac. Den viser også prosessene knyttet til de åpne portene. Dette er en betydelig oppgradering over netstat, som maksimalt viser PID.
sudo lsof -i -u ^ $ (whoami)
Denne kommandoen returnerer alle tilkoblinger som ikke eies av den påloggede brukeren.
Vaktmesteren (^) er for negasjon. Resultatene inkluderer ikke noe som samsvarer med teksten etter salget. Du kan få navnet til den påloggede brukeren ved å kjøre whoami Inne i lsof kommando, omgitt av $ () å la lsof få tilgang til utdataene som tekst. Å kjøre med sudo lar deg se oppgaver som ikke eies av deg. Å kjøre denne kommandoen uten sudo returnerer en tom liste.
Andre nettverks kommandoer
Andre kommandoer for terminal nettverk som kan være av interesse for å undersøke nettverket ditt, inkluderer arp, ping og ipconfig.