Unterschied zwischen Netzwerkdienst deaktiviert, inaktiv und Schnittstelle ausgefallen

Es gibt (mindestens) vier verschiedene Möglichkeiten, wie ich mein WLAN auf meinem Mac deaktivieren kann:

  1. Klicken Sie auf das WLAN-Symbol in der Menüleiste und wählen Sie „WLAN ausschalten“.
  2. Systemeinstellungen->Netzwerk, wählen Sie Wi-Fi, klicken Sie auf Cog, wählen Sie Dienst deaktivieren
  3. sudo ifconfig en0 down
  4. networksetup -setnetworkserviceenabled Wi-Fi off

Die ersten beiden sind gleichwertig, dh sie ändern dieselbe Einstellung.

Was ich auf niedrigem Niveau verstehen möchte, ist, was die grundlegenden Unterschiede zwischen 1, 3 und 4 sind?

Antworten (1)

Das Ausschalten des WLANs über die Menüleiste ist gleichbedeutend mit:

networksetup -setairportpower en0 off

... und so, das gleiche wie das Ausschalten in den Netzwerkeinstellungen.

Ich kann nicht zu den niedrigen Ebenen sprechen, aber networksetupes ist eine Apple-Ergänzung, während ifconfiges nicht nur für BSD, sondern auch für Linux Standard ist. (Obwohl sich die beiden Dienstprogramme letztendlich nicht nur in ihrer Implementierung, sondern auch in ihrer API unterscheiden)

Wenn ich raten müsste, und ich werde raten, da Apples Interna nicht genau transparent sind (bitte korrigiert mich jemand, wenn Sie dazu in der Lage sind), soll die networksetupeigentliche Hardware, das Wi-Fi-Gerät, gesteuert werden, während ifconfiges sich um ein reines Betriebssystem handelt -Level-Dienstprogramm. Ähnlich wie Sie Ihre Video-Chat-App beenden können, anstatt ein Stück Klebeband über die Kamera zu legen.

Ein paar Dinge, die ich überprüfen kann:

  1. Um zu funktionieren, muss sowohl die Schnittstelle, sagen wir en0, UP (so, ifconfig en0 up) als auch airportpowerON (so, networksetup -setairportpower en0 on) sein.
  2. Sowohl downdas Drücken von ifaceals auch das Drehen von airportpower offwird das Menüleistensymbol als hohlen Umriss darstellen.
  3. ABER, wenn beides DOWN/off ist, wenn Sie airportpower mitbringen on, wenn ifconfig ... upes nach dem Ausführen nicht ausgeführt wurde ifconfig ... down, dann wird das Symbol nicht leer sein und macOS wird hektisch nach Netzwerken suchen, aber nicht in der Lage sein: (1) sich mit einem Netzwerk zu verbinden ( 2) Bringen Sie UP iface0(3) ändern Sie die Routing-Tabelle

Dieses WLAN-Symbol scheint also das Ergebnis einer Zustandsänderung zu sein, nicht des tatsächlichen Zustands. Dabei ist der tatsächliche Zustand, ob Wi-Fi als verbindungsfähig angezeigt wird oder nicht, nicht mit der visuellen Anzeige verbunden. Aber die Schnittstelle scheint, selbst wenn sie DOWN ist, irgendwie zu scannen, da, wenn Sie ondie zurückdrehen airportpower, der von angegebene "Status:" schnell zwischen und hin und her ifconfigwechselt , selbst wenn die eigentliche Schnittstelle nicht UP ist.activeinactive

Es liegt also eine Inkonsistenz vor. Aber es ist so, weil es keinen Grund gäbe, den zweiten nach dem ersten auszuschalten. Und weil sich Apples Wünsche und ideale API von denen von BSD unterscheiden.