Skip to main content

Sådan bruges Netstat-kommandoen på Mac

In depth with Dana White: McGregor, Diaz, Poirier, Till and more - UFC 229 (Kan 2025)

In depth with Dana White: McGregor, Diaz, Poirier, Till and more - UFC 229 (Kan 2025)
Anonim

Netstat-kommandoen på macOS er en Terminal-kommando, der bruges til at vise detaljerede oplysninger om din Macs netværkskommunikation. Netværkskommunikationen omfatter alle måder, som din Mac taler med omverdenen på tværs af alle porte og alle applikationer. Efter mastering netstat kan Mac-brugere hurtigt forstå, hvilke forbindelser deres computer gør, og hvorfor.

Kører Netstat

Netstat-kommandoen er som standard tilgængelig på Mac. Det behøver ikke at blive downloadet eller installeret.

For at køre netstat skal du åbne et Terminal vindue. Hvis du ikke er bekendt med Terminal, findes den på /Applications/Utilities/Terminal.app. Type netstat og tryk Enter for at udføre kommandoen.

Du vil bemærke en enorm mængde kryptisk tekst begynder at rulle forbi på skærmen. Dette er normalt og forventet. Uden yderligere muligheder, rapporterer netstat alle aktive netværksforbindelser på din Mac. I betragtning af antallet af funktioner, som en moderne netværksenhed udfører, kan du forvente, at listen bliver lang. En standard netstat rapport kan løbe godt over 1000 linjer.

Filtrering af netstatens output er afgørende for at forstå, hvad der sker på dine Mac-aktive porte. Du kan filtrere netstats output med de indbyggede flag. Disse flag giver dig mulighed for at indstille muligheder, hvilket begrænser netstats omfang og output.

Netstat Flag og Options

For at se alle netstat tilgængelige muligheder, skriv man netstat på kommandoprompten. Dette vil afsløre netstats man side. Du kan også se en online version af netstat man siden.

netstat -AabdgiLlmnqrRsSvWx -c -f address_family -JEG grænseflade -p protokol -w vente

Netstat på macOS fungerer ikke på samme måde som netstat på Windows eller netstat på Linux. Brug af flag eller syntaks fra disse implementeringer af netstat kan ikke resultere i den forventede adfærd.

Tip: Hvis ovenstående stenografi ser helt uforståeligt ud, lær hvordan man læser kommandosyntax.

-r viser rutingstabellen, der viser, hvordan pakker routes rundt om netværket.

-p protokol lister trafik, der er forbundet med en bestemt netværksprotokol. Mens den fulde liste over protokoller kan findes på / etc / protokoller, er de vigtigere udp og tcp.

-v øger verbositet, specifikt ved at tilføje en kolonne, der viser proces ID (PID), der er forbundet med hver åben port.

-JEG grænseflade leverer pakkedata til den angivne grænseflade. Alle tilgængelige grænseflader kan ses med -i-flag, men en0 er typisk standard udgående netværksgrænseflade. Bemærk små bogstaver.

-g viser oplysninger, der er forbundet med multicast-forbindelser.

-s viser netværksstatistikken for alle protokoller, uanset om de er aktive eller ikke.

-n undertrykker mærket af fjernadresser med navne. Dette øger dramatisk netstatens produktion samtidig med at det kun giver begrænset information.

-en Inkluderer serverporte i netstatens output, som ikke er inkluderet i standard output.

Netstat-eksempler

For at sætte vores forståelse i praksis, lad os se på nogle netstat eksempler.

netstat -apv TCP

Denne kommando returnerer kun TCP-forbindelser på din Mac, herunder åbne porte og aktive porte. Det vil også bruge verbose output, der angiver de PID'er, der er knyttet til hver forbindelse.

netstat -a | grep -i "listen"

Denne kombination af netstat og grep vil afsløre åbne porte på din Mac. Åbne porte er porte, der lytter til en besked. Hvis du ikke er bekendt med syntaksen, er røret karakteren | bruges til at sende output fra en kommando til en anden kommando. Vi rør output fra netstat til grep, så vi kan søge det efter søgeordet "lyt" og find vores resultater.

Adgang til netstat via Netværksværktøj

Ud over den komplette brug via Terminal-kommandolinjegrænsefladen er nogle af netstats funktionaliteter også tilgængelige via programmet Network Utility. Denne indbyggede MacOS app kan findes på / Applications / Utilities / Network Utility.app. Åbn appen og klik på knappen netstat fanen for at få adgang til den grafiske grænseflade til netstat.

Valg inden for Netværksværktøj er klart langt mere begrænset end dem, der er tilgængelige via kommandolinjen. De fire valgknapper vælger simpelthen en forudindstillet netstat-kommando og viser output på skærmen herunder.

Netstat-kommandoerne for hver radioknap er som følger:

  • Vis rutebordoplysninger kører netstat -r
  • Vis omfattende netværksstatistikker for hver protokol kører netstat -s
  • Vis multicast information kører netstat -g
  • Vis tilstanden for alle nuværende stikkontakter kører netstat

Supplerende netstat med lsof

Faktum er, at macOS implementering af netstat ikke indeholder meget af funktionaliteten, som brugerne forventer og har brug for. Selv om det har sine anvendelser, er netstat ikke så lige så nyttigt på macOS som det er på Windows. En anden kommando, lsof, kan erstatte meget af den manglende funktionalitet.

lsof viser alle filer, der for øjeblikket er åbne af nogen apps. Dette kan også bruges til at inspicere åbne porte, der er forbundet med apps. Kør lsof -i, og du vil se en liste over alle applikationer, der kommunikerer via internettet. Dette er typisk målet, når du bruger netstat på Windows-maskiner. Men den eneste meningsfulde måde at udføre denne opgave på macOS er ikke med netstat, men med lsof.

Viser hver enkelt åben fil eller internetforbindelse er ofte overvældende verbose.Derfor kommer lsof med en række flag til at begrænse resultaterne med specifikke kriterier. Der er mange nyttige flag, der udvider kommandos hjælpeprogram. De vigtigste er nedenfor. For yderligere læsning, herunder flere flag og tekniske forklaringer af hvert flags implementering, tjek lsofs man side eller kør mand lsof ved en terminal prompte.

lsof flag og muligheder

-jeg viser alle åbne netværksforbindelser og navnet på den proces, der bruger forbindelsen. Tilføjelse af en 4, som i -i4, vil kun vise IPv4-forbindelser. Tilføjelse af en 6 i stedet (-i6) vil kun vise IPv6-forbindelser.

Det -jeg flag kan også udvides til 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 et bindestreg, da det er -iTCP: 25-50.

Ved hjælp af [email protected] returneres kun forbindelser til IPv4-adressen 1.2.3.4. IPv6-adresser kan angives på samme måde. @ Forløberen kan også bruges til at angive værtsnavne på samme måde, men begge fjerntliggende IP-adresser og værtsnavne kan ikke bruges samtidigt.

-s kræfter typisk lsof for at vise filstørrelsen. Men når parret med -jeg flag, -s fungerer forskelligt. I stedet giver det brugeren mulighed for at angive protokollen og status for kommandoen til at returnere.

-p begrænser lsof til et bestemt proces ID (PID). Flere PID'er kan indstilles ved hjælp af commons, såsom -p 123,456,789. Proces-id'er kan også udelukkes med ^, som i 123, ^ 456, som specifikt ville udelukke PID 456.

-P deaktiverer konvertering af portnumre til portnavne og fremskynder output.

-n deaktiverer konvertering af netværksnumre til værtsnavne. Når den bruges sammen med -P ovenfor, kan det betydeligt fremskynde lsofs output.

-u bruger Returnerer kun kommandoer, der ejes af den navngivne bruger.

eksempler

Ligesom netstat vil det være muligt at øve vores forståelse ved at se nogle eksempler på lsof.

[email protected]: 513

Denne komplekse udseende kommando vil liste alle TCP forbindelser med værtsnavnet lsof.itap og havnen 513. Det vil også køre lsof uden at forbinde navne til IP-adresser og porte, hvilket gør kommandoen køre mærkbart hurtigere.

lsof -iTCP -sTCP: LISTEN

Dette returnerer hver TCP-forbindelse med statusen LYT. Dette afslører alle åbne TCP porte på din Mac. Det lister også på processerne i forbindelse med de åbne porte. Dette er en betydelig opgradering over netstat, der højst noterer PID'er.

sudo lsof -i -u ^ $ (whoami)

Returnerer alle tilslutninger ikke ejes af den bruger, der er logget ind. Denne kommando er lidt anderledes end de andre, så vi vil bryde den ned i detaljer.

The caret ^ bruges til negation. Alt, der matcher teksten efter caret, fjernes fra resultaterne. Vi får navnet på den bruger, der er logget ind, ved at køre hvem er jeg inde i kommandoen lsof, omgivet af $() for at give adgang til dens output som tekst. At køre med sudo giver dig mulighed for at se opgaver, der ikke ejes af dig selv. Hvis du kører denne kommando uden sudo, returneres en tom liste.

Andre netværkskommandoer

Andre kommandoer til terminalenetværk, der kan være af interesse for at undersøge dit netværk, inkluderer arp, ping og ipconfig.