Cerca il comando per visualizzare l'utilizzo della rete su macOS

1

ifconfig può essere usato su linux per controllare i byte trasferiti in rete in ogni interfaccia come di seguito:

eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:05  
          inet addr:172.17.0.5  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20782 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16290 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:28527924 (28.5 MB)  TX bytes:1386216 (1.3 MB)

i byte RX e i byte TX mostrano i dati correnti trasferiti nell'interfaccia eth0 . Tuttavia, ifconfig su Mac non mostra queste informazioni per me.

Esiste un comando equivalente su Mac? Sto cercando un comando nativo senza installare la libreria di terze parti.

    
posta Zhao Yi 05.02.2018 - 03:38
fonte

1 risposta

2

Assolutamente sì.
Stavo per suggerire l'alternativa GUI, tramite la scheda Network Utility o l'opzione + Click sull'icona WiFi nella barra dei menu per visualizzare le statistiche correnti. Una serie di passaggi facili da seguire che sono ben documentati in questo articolo .

Tuttavia stai chiedendo un "comando nativo" e quindi sei interessato a quanto segue:

  • Comando: netstat -i : contiene Incoming e Outgoing Pacchetti (solo un altro nome per RX e TX ). Di default, ogni interfaccia restituisce i suoi dati ma puoi restringerla facilmente usando netstat -i | grep en0 .
  • Comando: netstat -I en1 (nota il% capital-I) produrrà un output solo per quella specifica interfaccia (qui, en0 ). Questo è un approccio più diretto che non richiede ulteriori filtri come l'operazione grep sopra.

Fammi sapere se hai successo con qualsiasi combinazione di quanto sopra, o se c'è qualcosa che non capisci / vuoi perfezionare.

Spiegazione aggiuntiva
In un commento, si menziona la visualizzazione di tre righe di output quando si esegue un'interrogazione dell'interfaccia utilizzando netstat -I e si chiede come gestire tali dati. Sono tutti gli stessi valori perché si collegano alla stessa interfaccia, leggono solo una riga (di solito la prima) e non li aggiungono tutti insieme come suggerito.

Perché?
Nell'output del Terminale, quelle 3 linee si riferiscono alla stessa interfaccia perché a essa sono associati più indirizzi. In parole povere, è come avere più numeri di telefono che inoltrano le chiamate al telefono cellulare anziché squillare nella loro posizione fisica.

Nel mio caso (su un iMac, interrogando en1 ), la colonna Indirizzo della prima riga mostra l'indirizzo MAC della mia scheda di rete (ethernet). Che viene generalmente definito come il più affidabile tra le tre voci perché è hardcoded e unico per la scheda di rete stessa (quindi non cambierà a meno che l'unità fisica non venga sostituita).
La seconda riga è (almeno nel mio caso) associata a un IPv6, mentre la terza è un indirizzo IPv4. Questi sono suscettibili di modifiche in base alla configurazione e alla posizione della rete. Ecco perché la prima linea è solitamente la più affidabile di tutte. Pensa alla linea 1 come al tuo telefono cellulare a cui le linee 2 e 3 stanno inoltrando le chiamate: è anche l'unica voce con registrazione di errore ( Ierrs e Oerrs ).

Perché gli errori vengono registrati solo lì?
Bene, pensateci come riferimento / scorciatoia diretto, se questo è tutto ciò che sono (connessioni logiche), non esistono fisicamente - l'unica interfaccia fisica è dove risiede l'indirizzo MAC e quindi l'unica posizione per i pacchetti da verificare e l'errore segnalazione per avere luogo.

Spero davvero che abbia senso, so che stavi solo dopo la procedura in cima, ma ho pensato che un po 'di spiegazione non avrebbe danneggiato. È utile in qualche modo?

    
risposta data 05.02.2018 - 07:40
fonte

Leggi altre domande sui tag