"Modalità aereo" in OS X. Comando alternativo per 'rfkill'?

8

Mac OS X non riconosce rfkill dal suo terminale, e sto cercando un comando alternativo con funzionalità simili (commutazione di "Modalità aereo").

NOTA: non desidero aprire .app per attivare. Mi piacerebbe 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 iOS qui . Vorrei disabilitare tutte le comunicazioni di rete in entrata / in uscita dal mio sistema.

    
posta melvynkim 21.03.2013 - 23:01
fonte

2 risposte

8

Crea una posizione ad hoc denominata isolated o airplane in cui tutte le interfacce di rete sono presenti e disattivate .

Passa a questa posizione sorda con:

networksetup -switchtolocation isolated

Potrebbe essere più interessante di rfkill dal momento che puoi proteggerti da un cavo Ethernet inosservato che potrebbe essere in ascolto di tutti i tuoi comunicazioni (e sono molte): [. Per verificare che tutto sia davvero disattivato, esegui:

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

Se questo comando non visualizza nulla, quindi tutte le tue interfacce sono in basso , tutto è OK.

Se questo comando produce qualcosa, come qui:

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

allora significa che il nome dell'interfaccia (qui en1 che è il wireless uno su questo Mac) è su dove non dovrebbe. Questo è il segno che la configurazione eseguita ha esito negativo o che alcuni cavalli di Troia l'hanno acceso per raggiungere il proprio server di controllo via Internet.

    
risposta data 24.03.2013 - 17:39
fonte
6

A seconda del mio obiettivo (dovrei preoccuparmi anche della chiusura dell'interfaccia dati?), posso scegliere il piano di conseguenza:

Pianifica A per (1) Interfacce di rete e (2) Interfaccia dati

Piano B per (1) Interfacce di rete

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

In primo luogo, mi piacerebbe sapere quanti 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

(Piano A #?) (Facoltativo) Ottieni solo l'elenco delle interfacce di rete:

Questo passaggio mi rende facile a 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 interfacce di rete sono / sono 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 comando airport o imposta l'alias per il comando airport se non riconosciuto:

Il mio sistema non ha riconosciuto il comando airport , quindi ho dovuto aggiungere sotto la riga a .bash_profile .

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

(Piano B # 2) Controlla 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 & 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 & B # 4) Accensione / spegnimento del 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 , puoi configurare anche il proxy, TCP / IP, PPPoE (non testato).

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

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

    
risposta data 22.03.2013 - 05:40
fonte

Leggi altre domande sui tag