OS X'te “Uçak Modu”. `Rfkill` için alternatif komut?


9

Mac OS X rfkillterminalinden tanımaz ve benzer işlevselliğe sahip alternatif bir komut arıyorum ("Uçak Modu" arasında geçiş).

NOT: Bir .appgeçiş yapmak istemiyorum . Komutu komut satırından veya Bash (veya eşdeğerleri) içindeki komut dosyasında yürütmek istiyorum.


"Uçak Modu" ile, terimi burada iOS destek sayfasından ödünç almak istedim . Sistemimden gelen / giden tüm ağ iletişimini devre dışı bırakmak istiyorum.

Yanıtlar:


10

Adlandırılmış isolatedveya airplanetüm ağ arabirimlerinin bulunduğu ve kapatıldığı geçici bir konum oluşturun .

Şunlarla bu sağır konuma geçin:

networksetup -switchtolocation isolated

Sizi rfkill, tüm iletişimlerinizi dinleyebilecek fark edilmeyen bir Ethernet kablosundan koruyabileceğinizden daha ilginç olabilir (ve bunlar çoktur): [. Her şeyin gerçekten kapalı olup olmadığını kontrol etmek için şunu çalıştırın:

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

Bu komut hiçbir şey görüntülemezse, tüm arabirimleriniz çalışmıyor , her şey yolunda.

Bu komut burada olduğu gibi bir şey çıkarırsa:

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

o zaman arayüz adının ( en1bu Mac'te kablosuz olan) burada olmaması gerektiği yerde olduğu anlamına gelir. Bu, yapılan yapılandırmanın başarısız olduğunun veya bazı Truva atlarının kontrol sunucusuna Internet üzerinden ulaşmak için açtığının işaretidir.


6

Hedefime bağlı olarak (Veri arayüzünü de kapatmayla ilgilenmeli miyim?), Planı buna göre seçebilirim:

(1) Ağ Arayüzleri ve (2) Veri Arayüzü için Plan A

(1) Ağ Arayüzleri için B Planı


(Plan A # 1) Kurulu donanım arayüzleri bilgisini alın (veri arayüzleri dahil):

İlk olarak, kaç tane ve ne tür arayüz hakkında endişelenmem gerektiğini bilmek istiyorum.

$ 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 #?) (İsteğe bağlı) Yalnızca ağ arabirimlerinin listesini alın:

Bu adım beni kolaylaştırıyor grep.

$ networksetup -listallnetworkservices

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

(Plan A # 2) Ağ arayüzlerinin cihaz adını alın.

Hangi ağ arayüz (ler) inin aktif olduğunu bilmek istiyorum.

$ 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) airportKomutu bulun veya airporttanınmadığı takdirde komutun diğer adını ayarlayın :

Sistemim airportkomutu tanıyamadı , bu yüzden aşağıdaki satırı eklemek zorunda kaldım .bash_profile.

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

(Plan B # 2) Mevcut AirPort durumunu kontrol edin:

$ ./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 ve B # 3) AirPort'u açma / kapatma:

# 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 ve B # 4) BlueTooth'u açma / kapatma:

blueutil Buradan indirin .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

Senaryo:

Artık tüm malzemelere sahibim, OS X 10.7 için senaryo yazabilirim!


Son Yorumlar:

(1) Çıktının bir kısmı 'f' karakteriyle maskelenir.

(2) Buna göre $ man networksetupproxy, TCP / IP, PPPoE'yi de (test edilmemiş) yapılandırabilirsiniz.

(3) @ RichHomolka'nın önerisi, networksetup --enableuserprofileOS X 10.7 için kaldırılmıştır (diğer sürümlerde test edilmemiştir).

(4) Yukarıdaki prosedürü izleyen herhangi biri bir sorunla karşılaşırsa, lütfen yorumda (veya ayrı bir cevapta olduğu gibi) bunları ele alabilir misiniz?


1
Siteye hoş geldiniz ve analiz için teşekkürler. Cevabınızda eksik olan tek parça (ve gelecekteki ziyaretçilerin arayacağı tek şey), tüm bulguları bir çözüm haline getiren komut dosyasıdır. Lütfen bunu da ekler misiniz?
nohillside

1
@patrix Henüz senaryoyu yazmayı bitirmedim ve (sanırım) burada yayınlamak biraz uzun olabilir ... Bunun yerine github'da yayınlamayı planlıyorum. Daha sonra adresi github'a güncelleyeceğim. Tebriğiniz için teşekkürler!
melvynkim

1
Merhaba melv! Sözlü çapraz gönderiye kesinlikle izin verilmediği için sorunuzu Süper Kullanıcı'da sildim. Her iki sitede de olsa, sadece FYI kalmak iyi olurdu.
Mart'ta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.