"Flugzeugmodus" in OS X. Alternativer Befehl für "rfkill"?


9

Mac OS X erkennt es nicht an rfkillseinem Terminal und ich suche nach einem alternativen Befehl mit ähnlicher Funktionalität (Umschalten des "Flugzeugmodus").

HINWEIS: Ich möchte kein .appzum Umschalten öffnen . Ich möchte den Befehl über die Befehlszeile oder innerhalb eines Skripts in Bash (oder Äquivalenten) ausführen.


Mit „Flugzeugmodus“, meinte ich den Begriff von iOS - Support - Seite zu leihen hier . Ich möchte die gesamte eingehende / ausgehende Netzwerkkommunikation von meinem System deaktivieren.

Antworten:


10

Erstellen Sie einen Ad-hoc-Speicherort mit dem Namen isolatedoder an airplanedem alle Netzwerkschnittstellen vorhanden und deaktiviert sind .

Wechseln Sie zu diesem tauben Ort mit:

networksetup -switchtolocation isolated

Dies ist möglicherweise interessanter, als rfkillda Sie sich vor einem unbemerkten Ethernet-Kabel schützen können, das möglicherweise Ihre gesamte Kommunikation abhört (und das sind viele): [. Führen Sie Folgendes aus, um zu überprüfen, ob wirklich alles ausgeschaltet ist:

ifconfig -a | grep '[<,]UP[,>]' | grep -v '[<,]LOOPBACK[,>]'

Wenn dieser Befehl nichts anzeigt, sind alle Ihre Schnittstellen ausgefallen , alles ist in Ordnung.

Wenn dieser Befehl etwas ausgibt, wie hier:

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

dann bedeutet dies, dass der Schnittstellenname (hier en1der drahtlose auf diesem Mac) dort ist, wo er nicht sein sollte. Dies ist das Zeichen dafür, dass entweder die vorgenommene Konfiguration fehlschlägt oder dass ein Trojaner sie aktiviert hat, um über das Internet zu seinem Steuerungsserver zu gelangen.


6

Abhängig von meinem Ziel (Sollte ich mir auch Gedanken über das Herunterfahren der Datenschnittstelle machen?) Kann ich den Plan entsprechend auswählen:

Plan A für (1) Netzwerkschnittstellen und (2) Datenschnittstelle

Plan B für (1) Netzwerkschnittstellen


(Plan A # 1) Informationen zu installierten Hardwareschnittstellen (einschließlich Datenschnittstellen) abrufen:

Zunächst möchte ich wissen, über wie viele und welche Arten von Schnittstellen ich mir Sorgen machen sollte.

$ networksetup -listallhardwareports

Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A

Hardware Port: Ethernet
Device: en0
Ethernet Address: ff:ff:ff:ff:ff:ff

Hardware Port: FireWire
Device: fw0
Ethernet Address: ff:ff:ff:ff:ff:ff:ff:ff

Hardware Port: Wi-Fi
Device: en1
Ethernet Address: ff:ff:ff:ff:ff:f

(Plan A #?) (Optional) Nur die Liste der Netzwerkschnittstellen abrufen:

Dieser Schritt macht es mir leicht grep.

$ networksetup -listallnetworkservices

An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi

(Plan A # 2) Ruft den Gerätenamen der Netzwerkschnittstellen ab.

Ich möchte wissen, welche Netzwerkschnittstelle (n) aktiv ist / sind.

$ ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff 
    media: autoselect (none)
    status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff 
    inet6 ffff::ffff:ffff:ffff:ffff%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.fff netmask 0xffffff00 broadcast 192.168.1.fff
    media: autoselect
    status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
    lladdr ff:ff:ff:ff:ff:ff:ff:ff 
    media: autoselect <full-duplex>
    status: inactive

(Plan B # 1) Suchen Sie den airportBefehl oder legen Sie den Alias ​​für den airportBefehl fest, wenn er nicht erkannt wird:

Mein System konnte den airportBefehl nicht erkennen , daher musste ich die folgende Zeile hinzufügen .bash_profile.

alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'

(Plan B # 2) Überprüfen Sie den aktuellen AirPort-Status:

$ ./airport -I

     agrCtlRSSI: -10
     agrExtRSSI: 0
    agrCtlNoise: -10
    agrExtNoise: 0
          state: running
        op mode: station 
     lastTxRate: 100
        maxRate: 100
lastAssocStatus: 0
    802.11 auth: open
      link auth: fffffffffffffffff
          BSSID: ff:ff:ff:ff:ff:ff
           SSID: MelvNetwork
            MCS: 15
        channel: 6 

(Plan A & B # 3) Ein- und Ausschalten des AirPort:

# For OS X 10.7 and later
$ networksetup -setairportpower en1 on   # Turn on Airport
$ networksetup -setairportpower en1 off  # Turn off Airport

# for OS X 10.6 and below
$ networksetup -setairportpower on       # Turn on AirPort
$ networksetup -setairportpower off      # Turn off AirPort

(Plan A & B # 4) Ein- und Ausschalten des BlueTooth:

Laden Sie blueutil hier .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

Skript:

Nachdem ich alle Zutaten habe, kann ich das Skript für OS X 10.7 schreiben!


Letzte Kommentare:

(1) Einige der Ausgaben sind mit dem Zeichen 'f' maskiert.

(2) Entsprechend $ man networksetupkönnen Sie auch den Proxy, TCP / IP, PPPoE konfigurieren (nicht getestet).

(3) Der Vorschlag von @ RichHomolka networksetup --enableuserprofileist für OS X 10.7 veraltet (in anderen Versionen nicht getestet).

(4) Wenn jemand, der das oben beschriebene Verfahren befolgt, auf ein Problem stößt, können Sie es bitte im Kommentar (oder in einer separaten Antwort) ansprechen?


1
Willkommen auf der Website und vielen Dank für die Analyse. Das einzige Teil, das in Ihrer Antwort fehlt (und das, wonach zukünftige Besucher suchen werden), ist das Skript, das alle Ergebnisse zu einer Lösung kombiniert. Könnten Sie dies bitte auch hinzufügen?
Nohillside

1
@patrix Ich habe das Skript noch nicht fertig geschrieben und (ich denke) es kann etwas lang sein, hier zu posten. Ich plane, es stattdessen auf Github zu posten. Ich werde die Adresse später auf den Github aktualisieren. Danke für deine Grüße!
Melvynkim

1
Hi melv! Ich habe Ihre Frage zu Super User gelöscht, da wörtliches Crossposting definitiv nicht erlaubt ist. Es wäre in Ordnung gewesen, auf beiden Seiten zu bleiben, nur zu Ihrer Information.
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.