“Modalità aereo” in OS X. Comando alternativo per `rfkill`?


9

Mac OS X non riconosce rfkilldal suo terminale e sto cercando un comando alternativo che abbia funzionalità simili (alternando "Modalità aereo").

NOTA: non desidero aprire un .apptoggle. Vorrei eseguire il comando dalla riga di comando o all'interno dello script in Bash (o equivalenti).


Con "Modalità aereo" intendevo prendere in prestito il termine dalla pagina di supporto di iOS qui . Vorrei disabilitare tutte le comunicazioni di rete in entrata / in uscita dal mio sistema.

Risposte:


10

Crea una posizione ad hoc denominata isolatedo in airplanecui tutte le interfacce di rete sono presenti e disattivate .

Passa a questa posizione per non udenti con:

networksetup -switchtolocation isolated

Potrebbe essere più interessante rispetto a rfkillquando puoi proteggerti da un cavo Ethernet inosservato che potrebbe ascoltare tutte le tue comunicazioni (e sono molte): [. Per verificare che tutto sia veramente spento, esegui:

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

Se questo comando non visualizza nulla, tutte le interfacce sono inattive , tutto è OK.

Se questo comando emette qualcosa, come qui:

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

allora significa che il nome dell'interfaccia (qui en1che è quello wireless su questo Mac) è dove non dovrebbe. Questo è il segnale che la configurazione effettuata non riesce o che alcuni cavalli di Troia l'hanno attivata per raggiungere il suo server di controllo via Internet.


6

A seconda del mio obiettivo (dovrei preoccuparmi di chiudere anche l'interfaccia dei dati?), Posso scegliere il piano di conseguenza:

Pianificare A per (1) interfacce di rete e (2) interfaccia dati

Piano B per (1) interfacce di rete


(Piano A n. 1) Ottieni informazioni sulle interfacce hardware installate (comprese le interfacce dati):

Innanzitutto, vorrei sapere quante e quali tipi di interfacce dovrei preoccuparmi.

$ 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 #?) (Opzionale) Ottieni solo l'elenco delle interfacce di rete:

Questo passaggio mi rende facile grep.

$ networksetup -listallnetworkservices

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

(Piano A # 2) Ottieni il nome del dispositivo delle interfacce di rete.

Vorrei sapere quali sono le interfacce di rete attive / attive.

$ 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

(Piano B # 1) Individua il airportcomando o imposta l'alias per il airportcomando se non riconosciuto:

Il mio sistema non è stato in grado di riconoscere il airportcomando, quindi ho dovuto aggiungere la riga sotto a .bash_profile.

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

(Piano B # 2) Verifica lo stato corrente di AirPort:

$ ./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 

(Piano A e B # 3) Attivazione / disattivazione di 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

(Piano A e B # 4) Attivazione / disattivazione di BlueTooth:

Scarica blueutil qui .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

script:

Ora che ho tutti gli ingredienti, posso scrivere lo script per OS X 10.7!


Ultimi commenti:

(1) Alcuni degli output sono mascherati con il carattere 'f'.

(2) Secondo $ man networksetup, è possibile configurare anche proxy, TCP / IP, PPPoE (non testato).

(3) Il suggerimento di @ RichHomolka networksetup --enableuserprofileè obsoleto per OS X 10.7 (non testato in altre versioni).

(4) Se qualcuno che segue la procedura sopra descritta incontra un problema, potresti per favore affrontarlo nel commento (o come in una risposta separata)?


1
Benvenuti nel sito e grazie per l'analisi. L'unico pezzo mancante nella tua risposta (e l'unica cosa che i futuri visitatori cercheranno) è la sceneggiatura che combina tutti i risultati in una soluzione. Potresti aggiungere anche questo?
Nohillside

1
@patrix Non ho ancora finito di scrivere la sceneggiatura, e (penso) potrebbe essere un po 'lungo pubblicare qui ... Sto pensando invece di pubblicarlo su github. Aggiornerò l'indirizzo su github più tardi. Grazie per il tuo saluto!
melvynkim,

1
Ciao melv! Ho eliminato la tua domanda su Super User, poiché il cross posting testuale non è assolutamente consentito. Sarebbe stato bello rimanere su entrambi i siti, solo FYI.
slhck,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.