Są (przynajmniej) cztery różne sposoby, aby wyłączyć Wi-Fi na komputerze Mac:
- Kliknij ikonę Wi-Fi na pasku menu i wybierz „Wyłącz Wi-Fi”
- Preferencje systemowe-> Sieć, wybierz Wi-Fi, kliknij Ząb, wybierz Uaktywnij usługę
sudo ifconfig en0 down
networksetup -setnetworkserviceenabled Wi-Fi off
Pierwsze dwa są równoważne, tzn. Zmieniają to samo ustawienie.
Chciałbym zrozumieć, na niskim poziomie, jakie są podstawowe różnice między 1, 3 a 4?
Odpowiedzi:
Wyłączenie Wi-Fi za pomocą paska menu jest równoznaczne z:
networksetup -setairportpower en0 off
... i tak samo jak wyłączenie w ustawieniach sieciowych.
Nie mogę mówić do niskich poziomów, ale
networksetup
jest dodatkiem Apple, podczas gdyifconfig
jest standardem nie tylko dla BSD, ale także dla Linuksa. (Mimo że oba narzędzia są ostatecznie różne, nie tylko w ich implementacji, ale także w interfejsie API)Gdybym musiał zgadywać i zgadnę, ponieważ wewnętrzne elementy Apple'a nie są dokładnie przezroczyste (proszę, jeśli ktoś jest w stanie poprawić mnie),
networksetup
ma on kontrolować rzeczywisty sprzęt, urządzenie Wi-Fi, podczas gdyifconfig
jest to czysto system operacyjny -poziomowe narzędzie. Podobnie jak w przypadku aplikacji do czatowania wideo, umieść kawałek taśmy nad kamerą.Kilka rzeczy, które mogę zweryfikować:
en0
musi być zarówno UP (tak,ifconfig en0 up
), jak i WŁĄCZONA moc portu lotniczego (więc `networksetup -setairportpower en0 on).down
ingiface
i zwracając airportpoweroff
, będzie świadczyć symbol Pasek menu w postaci wydrążonego konturu.on
, jeśliifconfig ... up
nie został uruchomiony po uruchomieniuifconfig ... down
, symbol nie będzie pusty, a macOS będzie gorączkowo skanować w poszukiwaniu sieci, ale nie będzie w stanie: (1) połączyć się z siecią ( 2) przywołajiface0
(3) zmień tablicę routinguTen symbol Wi-Fi wydaje się być wynikiem zmiany stanu, a nie stanu faktycznego. W związku z tym rzeczywisty stan tego, czy Wi-Fi jest pokazywany jako zdolny do połączenia, nie jest podłączony do wskaźnika wizualnego. Ale interfejs, nawet jeśli w dół, wydaje się jakoś zeskanować w taki sposób, że jeśli zawrócić
on
doairportpower
tego, „status:” nadany przezifconfig
zamieni się szybko z powrotem i naprzód międzyactive
iinactive
, nawet jeśli rzeczywisty interfejs nie jest UP.Jest więc niespójność. Ale tak jest, ponieważ nie byłoby powodu wyłączać drugiego po zrobieniu tego pierwszego. A ponieważ pragnienia Apple'a i idealny API różnią się od tych z BSD.
źródło