9 votes

"Airplane Mode" dans OS X. Commande alternative à `rfkill` ?

Mac OS X ne reconnaît pas rfkill à partir de son terminal, et je cherche une commande alternative qui a une fonctionnalité similaire (basculer le "mode avion").

REMARQUE : Je ne souhaite pas ouvrir une .app pour basculer. Je voudrais exécuter la commande à partir de la ligne de commande ou à l'intérieur de script dans Bash (ou équivalents).


Par "Mode avion", je voulais emprunter le terme à la page d'assistance d'iOS. aquí . Je voudrais désactiver toutes les communications réseau entrantes/sortantes de mon système.

10voto

Rich Points 2429

Créer un emplacement ad hoc nommé isolated o airplane où toutes les interfaces réseau sont présents y éteint .

Passez à cet emplacement sourd avec :

networksetup -switchtolocation isolated

Cela pourrait être plus intéressant que rfkill puisque vous pouvez vous protéger d'un câble Ethernet inaperçu qui pourrait écouter toutes vos communications. communications (et il y en a beaucoup) :[. Pour vérifier que tout est bien éteint, exécutez :

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

Si cette commande n'affiche rien, alors tous vos interfaces sont en bas tout est OK.

Si cette commande sort quelque chose, comme ici :

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

alors cela signifie que le nom de l'interface (ici en1 qui est le sans fil sur ce Mac) est allumé là où il ne devrait pas l'être. C'est le signe que la configuration effectuée est défaillante ou qu'un cheval de Troie l'a activé pour atteindre son serveur de contrôle via Internet.

6voto

Jack M Points 2678

En fonction de mon objectif (dois-je me préoccuper de la fermeture de l'interface de données également ?), je peux choisir le plan en conséquence :

Plan A pour (1) les interfaces de réseau et (2) l'interface de données.

Plan B pour (1) Interfaces réseau


(Plan A #1) Obtenir des informations sur les interfaces matérielles installées (y compris les interfaces de données) :

Tout d'abord, j'aimerais savoir combien et quels types d'interfaces je dois craindre.

$ 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 # ?) (Facultatif) Obtenez la liste des interfaces réseau uniquement :

Cette étape me rend facile à grep .

$ networksetup -listallnetworkservices

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

(Plan A #2) Obtenez le nom du périphérique des interfaces réseau.

J'aimerais savoir quelle(s) interface(s) réseau est/sont active(s).

$ 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) Localiser airport ou définir un alias pour la commande airport si elle n'est pas reconnue :

Mon système n'a pas pu reconnaître airport j'ai donc dû ajouter la ligne suivante à la commande .bash_profile .

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

(Plan B #2) Vérifier le statut actuel de l'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 

(Plan A & B #3)Allumer/éteindre le 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)Allumer/éteindre le BlueTooth :

Télécharger blueutil aquí .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

script :

Maintenant que j'ai tous les ingrédients, je peux écrire le script pour OS X 10.7 !


Derniers commentaires :

(1) Certaines des sorties sont masquées par le caractère 'f'.

(2) Selon $ man networksetup Vous pouvez également configurer le proxy, TCP/IP, PPPoE (non testé).

(3) Suggestion de @RichHomolka, networksetup --enableuserprofile est déprécié pour OS X 10.7 (non testé dans les autres versions).

(4) Si quelqu'un qui suit la procédure ci-dessus rencontre un problème, pourriez-vous l'aborder dans le commentaire (ou dans une réponse séparée) ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X