ओएस एक्स में "एयरप्लेन मोड" `rfkill` के लिए वैकल्पिक आदेश?


9

मैक ओएस एक्स rfkillअपने टर्मिनल से पहचान नहीं करता है , और मैं एक वैकल्पिक कमांड की तलाश कर रहा हूं जिसमें समान कार्यक्षमता है ("एयरप्लेन मोड")।

नोट: मैं एक .appटॉगल खोलने की इच्छा नहीं करता । मैं कमांड लाइन से या बैश (या समतुल्य) में स्क्रिप्ट के भीतर कमांड निष्पादित करना चाहता हूं।


"एयरप्लेन मोड" द्वारा, मेरा मतलब यहाँ 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जो इस मैक पर वायरलेस है) वह है जहां यह नहीं होना चाहिए। यह संकेत है कि या तो बनाया गया कॉन्फ़िगरेशन विफल हो रहा है या कि कुछ ट्रोजन हॉर्स ने इसे इंटरनेट के माध्यम से अपने नियंत्रण सर्वर तक पहुंचा दिया है।


6

मेरे उद्देश्य के आधार पर (क्या मुझे डेटा इंटरफ़ेस बंद करने के बारे में भी चिंता करनी चाहिए?), मैं तदनुसार योजना चुन सकता हूं:

(1) नेटवर्क इंटरफेस और (2) डेटा इंटरफेस के लिए प्लान ए

(1) नेटवर्क इंटरफेस के लिए प्लान बी


(प्लान ए # 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

(प्लान ए # 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

(प्लान बी # 1) यदि मान्यता नहीं है, तो कमांड का पता लगाएँ airportया कमांड सेट करें airport:

मेरा सिस्टम airportकमांड को पहचान नहीं सका , इसलिए मुझे नीचे की पंक्ति को जोड़ना पड़ा .bash_profile

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

(प्लान बी # 2) वर्तमान एयरपोर्ट स्थिति की जाँच करें:

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

(योजना ए और बी # 3) एयरपोर्ट चालू / बंद करना:

# 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

(योजना ए और बी # 4) ब्लूटूथ को चालू / बंद करना:

blueutil यहाँ डाउनलोड करें

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

स्क्रिप्ट:

अब जब मेरे पास सभी सामग्रियां हैं, तो मैं ओएस एक्स 10.7 के लिए स्क्रिप्ट लिख सकता हूं!


अंतिम टिप्पणियाँ:

(1) कुछ आउटपुट 'f' अक्षर के साथ होते हैं।

(2) के अनुसार $ man networksetup, आप प्रॉक्सी, टीसीपी / आईपी, पीपीपीओई को कॉन्फ़िगर कर सकते हैं (परीक्षण नहीं किया गया)।

(3) @ रिचहोमोलका का सुझाव, networksetup --enableuserprofileओएस एक्स 10.7 के लिए पदावनत किया गया है (अन्य संस्करणों में परीक्षण नहीं किया गया है)।

(४) यदि उपरोक्त प्रक्रिया का पालन करने वाला व्यक्ति किसी समस्या का सामना करता है, तो क्या आप उन्हें टिप्पणी में संबोधित कर सकते हैं (या एक अलग उत्तर में)?


1
साइट पर आपका स्वागत है और विश्लेषण के लिए धन्यवाद। आपके उत्तर में गायब एकमात्र टुकड़ा (और भविष्य के आगंतुकों की एक चीज की तलाश होगी) सभी निष्कर्षों को एक समाधान में संयोजित करने वाली स्क्रिप्ट है। क्या आप कृपया इसे जोड़ सकते हैं?
nohillside

1
@patrix मैंने अभी तक स्क्रिप्ट लिखना समाप्त नहीं किया है, और मुझे लगता है कि यहां पोस्ट करने में बहुत कम समय लग सकता है..मैं इसे गिथब पर पोस्ट करने की योजना बना रहा हूं। मैं बाद में जीथब को पता अपडेट करूंगा। आपके अभिवादन के लिए धन्यवाद!
मेल्विनकिम

1
हाय मेल्व! मैंने सुपर यूजर पर आपके प्रश्न को हटा दिया है, क्योंकि शब्दशः क्रॉस पोस्टिंग की अनुमति नहीं है। हालांकि, वित्तीय वर्ष के दौरान किसी भी साइट पर बने रहना ठीक रहेगा।
22:00
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.