OS Xの「飛行機モード」。`rfkill`の代替コマンド?


9

Mac OS Xはrfkillターミナルから認識しません。同様の機能を持つ代替コマンド(「機内モード」の切り替え)を探しています。

注:.appトグルを開きたくありません。コマンドラインから、またはBashのスクリプト内でコマンドを実行したい(または同等のもの)。


「機内モード」とは、こちらの iOSサポートページから借用することを意味しました。システムからのすべての着信/発信ネットワーク通信を無効にしたいと思います。

回答:


10

名前の付いた、isolatedまたはairplaneすべてのネットワークインターフェイスが存在しオフになっているアドホックな場所を作成ます。

この聴覚障害者の場所に切り替えるには:

networksetup -switchtolocation isolated

rfkillすべての通信をリッスンしている可能性のある気づかれていないイーサネットケーブルから保護することができるため(そしてそれらは多くの場合)、より興味深いかもしれません。すべてが本当にオフであることを確認するには、次のコマンドを実行します。

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

このコマンドで何も表示されない場合は、すべてのインターフェースがダウンしており、すべて問題ありません。

このコマンドが次のように何かを出力する場合:

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

次に、インターフェイス名(en1このMacではワイヤレスの名前)が、本来あるべきではない場所にあることを意味します。これは、構成が失敗したか、一部のトロイの木馬がインターネットを介して制御サーバーに到達するために有効にしたことを示しています。


6

目的に応じて(データインターフェイスのシャットダウンについても心配する必要がありますか?)、それに応じて計画を選択できます。

(1)ネットワークインターフェイスと(2)データインターフェイスのプランA

(1)ネットワークインターフェイスのプランB


(プランA#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

(プランA#?)(オプション)ネットワークインターフェースのみのリストを取得します。

このステップは私を簡単にしgrepます。

$ networksetup -listallnetworkservices

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

(プランA#2)ネットワークインターフェイスのデバイス名を取得します。

どのネットワークインターフェイスがアクティブであるかを知りたい。

$ 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

(プランB#1)認識されない場合はairportairportコマンドを見つけるか、コマンドのエイリアスを設定します。

私のシステムはairportコマンドを認識できなかったため、以下の行をに追加する必要がありました.bash_profile

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

(プランB#2)現在のAirMacステータスを確認します。

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

(プランA&B#3)AirMacのオン/オフ:

# 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

(プランA&B#4)BlueToothのオン/オフ:

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)上記の手順に従っている誰かが問題に遭遇した場合、コメントで(または別の回答のように)対処していただけませんか?


1
サイトへようこそ。分析に感謝します。回答に欠けている唯一の部分(および将来の訪問者が探している1つのこと)は、すべての調査結果をソリューションに結合するスクリプトです。これも追加していただけませんか?
ノーヒルサイド

1
@patrixまだスクリプトの作成が完了していないため、ここに投稿するには少し時間がかかると思います。代わりにgithubに投稿する予定です。アドレスは後でgithubに更新します。ご挨拶ありがとうございます!
melvynkim 2013年

1
こんにちはmelv!逐語的なクロスポストは絶対に許可されないため、スーパーユーザーの質問を削除しました。ただし、どちらか一方のサイトに留まれば問題ないでしょう。
slhck 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.