“ โหมดเครื่องบิน” ใน 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

ขึ้นอยู่กับวัตถุประสงค์ของฉัน (ฉันควรกังวลเกี่ยวกับการปิดอินเทอร์เฟซข้อมูลด้วยหรือไม่) ฉันสามารถเลือกแผนตาม:

แผน Aสำหรับ (1) ส่วนต่อประสานเครือข่ายและ (2) ส่วนต่อประสานข้อมูล

แผนขสำหรับ (1) การเชื่อมต่อเครือข่าย


(Plan 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

(Plan A #?) (ไม่บังคับ) รับรายการอินเตอร์เฟสเครือข่ายเท่านั้น:

grepขั้นตอนนี้ทำให้ผมง่ายต่อการ

$ networksetup -listallnetworkservices

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

(Plan 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) ค้นหาairportคำสั่งหรือตั้งชื่อแทนสำหรับairportคำสั่งหากไม่ได้รับการยอมรับ:

ระบบของฉันไม่สามารถรับรู้คำสั่งเพื่อให้ฉันได้เพิ่มด้านล่างบรรทัดairport.bash_profile

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

(แผน B # 2) ตรวจสอบสถานะ 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 

(แผน A & B # 3) การเปิด / ปิด 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

(แผน 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
ยินดีต้อนรับสู่เว็บไซต์และขอขอบคุณสำหรับการวิเคราะห์ สิ่งเดียวที่ขาดหายไปในคำตอบของคุณ (และสิ่งหนึ่งที่ผู้เยี่ยมชมในอนาคตจะมองหา) คือสคริปต์ที่รวมสิ่งที่ค้นพบทั้งหมดไว้ในโซลูชัน คุณช่วยเพิ่มสิ่งนี้ด้วยได้ไหม
nohillside

1
@patrix ฉันยังเขียนสคริปต์ไม่เสร็จและ (ฉันคิดว่า) มันอาจจะยาวไปนิดที่จะโพสต์ที่นี่ .. ฉันวางแผนที่จะโพสต์มันบน GitHub แทน ฉันจะอัปเดตที่อยู่เป็น GitHub ในภายหลัง ขอบคุณสำหรับคำทักทายของคุณ!
melvynkim

1
สวัสดีครับ! ฉันได้ลบคำถามของคุณใน Super User เนื่องจากการข้ามคำต่อคำไม่ได้รับอนุญาตอย่างแน่นอน มันคงจะดีถ้าอยู่ในเว็บไซต์ทั้งสองแค่ FYI
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.