Chế độ máy bay của máy bay trực thăng trong OS X. Lệnh thay thế cho `rfkill`?


9

Mac OS X không nhận ra rfkilltừ thiết bị đầu cuối của nó và tôi đang tìm kiếm một lệnh thay thế có chức năng tương tự (bật "Chế độ trên máy bay").

LƯU Ý: Tôi không muốn mở một .appchuyển đổi. Tôi muốn thực thi lệnh từ dòng lệnh hoặc trong tập lệnh trong Bash (hoặc tương đương).


Theo "Chế độ trên máy bay", tôi muốn mượn thuật ngữ từ trang hỗ trợ iOS tại đây . Tôi muốn vô hiệu hóa tất cả các giao tiếp mạng đến / đi từ hệ thống của tôi.

Câu trả lời:


10

Tạo một vị trí đặc biệt có tên isolatedhoặc airplanenơi tất cả các giao diện mạng có mặttắt .

Chuyển sang vị trí điếc này với:

networksetup -switchtolocation isolated

Nó có thể thú vị hơn rfkillvì bạn có thể bảo vệ bạn khỏi cáp Ethernet không được chú ý có thể đang lắng nghe tất cả các thông tin liên lạc của bạn (và chúng rất nhiều): [. Để kiểm tra xem mọi thứ đã thực sự tắt chưa, hãy chạy:

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

Nếu lệnh này không hiển thị bất cứ điều gì, thì tất cả các giao diện của bạn đều bị hỏng , mọi thứ đều ổn.

Nếu lệnh này xuất ra bất cứ điều gì, như ở đây:

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

thì có nghĩa là tên giao diện (đây en1là tên không dây trên máy Mac này) nằm ở nơi không nên dùng. Đây là dấu hiệu cho thấy cấu hình được thực hiện không thành công hoặc một số con ngựa thành Troia đã bật nó để đến máy chủ điều khiển của nó thông qua Internet.


6

Tùy thuộc vào mục tiêu của tôi (Tôi có nên lo lắng về việc tắt giao diện dữ liệu không?), Tôi có thể chọn gói phù hợp:

Kế hoạch A cho (1) Giao diện mạng và (2) Giao diện dữ liệu

Kế hoạch B cho (1) Giao diện mạng


(Kế hoạch A # 1) Nhận thông tin giao diện phần cứng được cài đặt (bao gồm giao diện dữ liệu):

Đầu tiên, tôi muốn biết có bao nhiêu và loại giao diện nào tôi nên lo lắng.

$ 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

(Gói A #?) (Tùy chọn) Chỉ nhận danh sách các giao diện mạng:

Bước này làm cho tôi dễ dàng grep.

$ networksetup -listallnetworkservices

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

(Kế hoạch A # 2) Lấy tên thiết bị của giao diện mạng.

Tôi muốn biết (các) giao diện mạng nào đang hoạt động.

$ 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

(Gói B # 1) Xác định vị trí airportlệnh hoặc đặt bí danh cho airportlệnh nếu không được nhận dạng:

Hệ thống của tôi không thể nhận ra airportlệnh, vì vậy tôi phải thêm dòng dưới đây vào .bash_profile.

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

(Gói B # 2) Kiểm tra trạng thái AirPort hiện tại:

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

(Gói A & B # 3) Bật / tắt 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

(Kế hoạch A & B # 4) Bật / tắt BlueTooth:

Tải về blueutil tại đây .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

Kịch bản:

Bây giờ tôi có tất cả các thành phần, tôi có thể viết kịch bản cho OS X 10.7!


Nhận xét cuối cùng:

(1) Một số đầu ra được che dấu bằng ký tự 'f'.

(2) Theo đó $ man networksetup, bạn cũng có thể định cấu hình proxy, TCP / IP, PPPoE (không được kiểm tra).

(3) Đề xuất của @ RichHomolka, networksetup --enableuserprofilekhông được dùng cho OS X 10.7 (không được thử nghiệm trong các phiên bản khác).

(4) Nếu bất kỳ ai làm theo quy trình trên gặp phải vấn đề, bạn có thể vui lòng giải quyết chúng trong phần bình luận (hoặc như trong một câu trả lời riêng) không?


1
Chào mừng đến với trang web và cảm ơn đã phân tích. Phần duy nhất còn thiếu trong câu trả lời của bạn (và một điều khách truy cập trong tương lai sẽ tìm kiếm) là kịch bản kết hợp tất cả các phát hiện vào một giải pháp. Bạn có thể vui lòng thêm điều này là tốt?
nohillside

1
@patrix Tôi chưa viết xong kịch bản và (tôi nghĩ) có thể sẽ hơi lâu để đăng ở đây..Tôi đang dự định đăng nó trên github. Tôi sẽ cập nhật địa chỉ lên github sau. Cảm ơn lời chào của bạn!
melvynkim

1
Chào melv! Tôi đã xóa câu hỏi của bạn trên Super User, vì đăng bài nguyên văn chắc chắn không được phép. Mặc dù vậy, sẽ rất ổn nếu ở trên một trong hai trang web, chỉ là FYI.
slhck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.