Mac OS X не распознает rfkill
из своего терминала, и я ищу альтернативную команду с аналогичной функциональностью (переключение «Режим полета»).
ПРИМЕЧАНИЕ. Я не хочу открывать .app
для переключения. Я хотел бы выполнить команду из командной строки или в сценарии в Bash (или эквивалентах).
Под «режимом полета» я имел в виду заимствование термина со страницы поддержки iOS здесь . Я хотел бы отключить все входящие/исходящие сетевые соединения моей системы.
Создайте специальное место с именем isolated
или airplane
где все сетевые интерфейсы присутствуют и отключены .
Переключитесь на это глухое место с помощью:
networksetup -switchtolocation isolated
Это может быть интереснее, rfkill
так как вы можете защитить себя от незамеченного кабеля Ethernet, который может прослушивать все ваши сообщения (а их много) :[. Чтобы убедиться, что все действительно выключено, запустите:
ifconfig -a | grep '[<,]UP[,>]' | grep -v '[<,]LOOPBACK[,>]'
Если эта команда ничего не отображает, то все ваши интерфейсы не работают , все в порядке.
Если эта команда выводит что-либо, как здесь:
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
тогда это означает, что имя интерфейса (здесь en1
это беспроводной интерфейс на этом Mac) находится там, где его не должно быть. Это признак того, что либо сделанная конфигурация дает сбой, либо какой-то троянский конь включил ее для доступа к управляющему серверу через Интернет.
В зависимости от моей цели (должен ли я также беспокоиться об отключении интерфейса данных?), я могу выбрать соответствующий план:
План A для (1) сетевых интерфейсов и (2) интерфейса данных
План Б для (1) сетевых интерфейсов
Во-первых, я хотел бы знать, сколько и каких типов интерфейсов мне следует опасаться.
$ 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
Этот шаг позволяет мне легко grep
.
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi
Я хотел бы знать, какие сетевые интерфейсы активны.
$ 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
airport
команду или установите псевдоним для airport
команды, если она не распознана:Моя система не могла распознать airport
команду, поэтому мне пришлось добавить строку ниже в .bash_profile
.
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/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
# 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
Скачать blueutil
здесь .
$ blueutil status # Check status of BlueTooth
Status: on
$ blueutil on # Turn BlueTooth on
$ blueutil off # Turn BlueTooth off
Теперь, когда у меня есть все ингредиенты, я могу написать сценарий для OS X 10.7!
(1) Часть вывода маскируется символом 'f'.
(2) Согласно $ man networksetup
, вы также можете настроить прокси, TCP/IP, PPPoE (не тестировалось).
(3) Предложение @RichHomolka networksetup --enableuserprofile
устарело для OS X 10.7 (не тестировалось в других версиях).
(4) Если кто-то, следуя описанной выше процедуре, столкнется с проблемой, не могли бы вы обратиться к ней в комментарии (или как в отдельном ответе)?
без холма
мелвинким
шлхк