Differenza tra servizio di rete disabilitato, inattivo e interfaccia verso il basso

1

Ci sono (almeno) quattro modi diversi per disabilitare il mio Wi-Fi sul mio Mac:

  1. Fai clic sull'icona Wi-Fi nella barra dei menu e seleziona "Disattiva Wi-Fi"
  2. Preferenze di sistema - > Rete, seleziona Wi-Fi, fai clic su Cog, seleziona Rendi il servizio non attivo
  3. sudo ifconfig en0 down
  4. networksetup -setnetworkserviceenabled Wi-Fi off

I primi due sono equivalenti, cioè cambiano la stessa impostazione.

Quello che vorrei capire è, a un livello basso, quali sono le differenze fondamentali tra 1, 3 e 4?

    
posta Andrew Parker 26.05.2017 - 10:15
fonte

1 risposta

2

Disattivare la rete Wi-Fi tramite la barra dei menu equivale a:

networksetup -setairportpower en0 off

... e così, lo stesso di spegnerlo nelle impostazioni di rete.

Non posso parlare ai livelli bassi, ma networksetup è un'aggiunta di Apple, mentre ifconfig è standard non solo per BSD, ma anche per Linux. (Anche se i due strumenti sono in definitiva distinti, non solo nella loro implementazione ma API)

Se dovessi indovinare, e suppongo che gli interni di Apple non siano esattamente trasparenti (per favore, qualcuno mi corregga se sei in grado), networksetup è pensato per controllare l'hardware attuale, il dispositivo Wi-Fi , mentre ifconfig è un'utilità puramente a livello di sistema operativo. Proprio come si può uscire dall'app di video chat, contro mettere un pezzo di nastro sulla fotocamera.

Alcune cose che posso verificare:

  1. L'interfaccia, ad esempio en0 , deve essere sia UP (quindi, ifconfig en0 up ), sia airportpower che è ON (quindi, 'networksetup -setairportpower en0 on).
  2. Sia down ing an iface , che gira airportpower off , renderà il simbolo Barra dei menu come una struttura vuota.
  3. BUT, se entrambi DOWN / off, se porti aeroportopower on , se ifconfig ... up non è stato eseguito dopo aver eseguito ifconfig ... down , il simbolo non sarà vuoto, e macOS eseguirà una scansione frenetica per le reti, ma essere in grado di: (1) connettersi a una rete (2) portare UP il iface0 (3) modificare la tabella di routing

Quindi, quel simbolo wifi sembra essere il risultato di uno stato di cambiamento, non stato reale. In questo, lo stato effettivo della presenza o meno del Wi-Fi in quanto in grado di connettersi non è collegato all'indicatore visivo. Ma l'interfaccia, anche se GIÙ, sembra in qualche modo scansionare in un modo, nel senso che se si restituisce on airportpower , lo "stato:" dato da ifconfig si scambierà rapidamente indietro & avanti tra active e inactive , anche se l'interfaccia effettiva non è UP.

Quindi, c'è incoerenza. Ma è così perché non ci sarebbe alcun motivo per disattivare la seconda dopo aver fatto così il primo. E perché i desideri di Apple & le API ideali differiscono da quelle di BSD.

    
risposta data 15.03.2018 - 11:15
fonte

Leggi altre domande sui tag