macos终端可通过airport和networksetup命令实现wi-fi扫描、分析与连接:用airport -s扫描热点并解析参数;用grep/awk过滤结果;用networksetup连接已知或隐藏ssid网络;用airport -i查看当前连接详情。

如果您希望在 macOS 系统中绕过图形界面,直接通过终端对 Wi-Fi 进行扫描、分析与连接操作,则可依赖内置的 airport 工具及 networksetup 命令。以下是实现这些功能的具体步骤:
一、使用 airport -s 扫描并列出所有可见 Wi-Fi 热点及其底层参数
该命令调用系统私有框架中的 airport 工具,执行一次完整的无线扫描,输出包含 SSID、BSSID、信号强度(RSSI)、信道、HT/VHT 支持状态、国家码(CC)以及完整安全协议标识的结构化表格,是获取周边网络物理层信息最直接的方式。
1、打开“应用程序”→“实用工具”→“终端”。
2、输入以下完整命令并回车:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s。
3、等待扫描完成(通常耗时 3–5 秒),观察输出中各列含义:第一列为 SSID(网络名称),第二列为 BSSID(接入点 MAC 地址),第三列为 RSSI(单位 dBm,负值越小表示信号越弱),第四列为信道编号,第五列为 HT 标识(支持高吞吐即显示 YES),第六列为国家码(如 CN、US),第七列为加密与认证组合(例如 WPA2(PSK/AES/AES))。
二、使用 airport 配合管道与过滤命令精简扫描结果
当周围 Wi-Fi 数量较多时,原始 airport -s 输出易被冗余信息干扰。通过 grep 或 awk 可按需提取关键字段,例如仅保留 SSID 与 RSSI,或筛选特定频段(如 5GHz)信道。
1、仅显示含 SSID 名称、信道及 RSSI 的行,输入:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | grep -E "^[^ ]|Channel|RSSI"。
2、单独筛选 5GHz 网络(信道为 36、40、44、48、149、153、157、161 或 165),运行:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk '$4 ~ /^(36|40|44|48|149|153|157|161|165)$/'。
3、将完整扫描结果保存至桌面文本文件以便离线分析,追加重定向:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s > ~/Desktop/wifi_scan_output.txt。
三、使用 networksetup 命令行连接指定 SSID 的 Wi-Fi 网络
该方法适用于已知网络名称(SSID)与密码的情形,通过调用系统网络配置服务直接触发关联与认证流程,无需图形界面参与,特别适合自动化脚本或远程维护场景。
1、先确认 Wi-Fi 接口设备名,输入:networksetup -listallhardwareports,在输出中查找 “HardwarePort: Wi-Fi” 对应的 “Device”,通常为 en0。
2、执行连接命令,格式为:networksetup -setairportnetwork [接口名] [SSID] [密码],例如:networksetup -setairportnetwork en0 MyHomeWiFi 12345678。
3、若提示 “Failed to join network”,请检查:SSID 拼写是否完全一致(区分大小写、空格与特殊字符);路由器是否确实在广播该网络(或已启用隐藏网络模式);所用接口名是否正确(非 en0 的机型需以实际查询结果为准)。
四、连接隐藏网络(未广播 SSID)的专用操作流程
对于关闭了 SSID 广播的无线网络,airport -s 仍可能侦测到其 BSSID 与信号强度(显示为空白或 “(unknown)”),但无法获知真实 SSID。此时必须手动提供 SSID 与凭证,由 systemconfiguration 框架完成强制关联。
1、确保已通过其他设备(如手机)确认目标网络的真实 SSID 和密码,并验证其处于发射状态。
2、在终端中执行连接命令:networksetup -setairportnetwork en0 "HiddenNetworkName" "CorrectPassword"(注意:SSID 必须用英文双引号包裹,尤其含空格或特殊字符时)。
3、若连接失败且确认信息无误,尝试先禁用再启用网卡接口:sudo ifconfig en0 down → 等待 2 秒 → sudo ifconfig en0 up → 再次执行 networksetup 命令。
五、获取当前已连接网络的实时接口级参数
该操作不进行扫描,而是读取当前活跃 Wi-Fi 接口的运行时状态,包括关联的 BSSID、信号质量(RSSI)、传输速率、MCS 索引、噪声底、信道宽度等,可用于即时诊断连接质量异常问题。
1、打开终端,输入命令:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I。
2、观察输出中关键字段:agrCtlRSSI(当前接收信号强度)、lastTxRate(最近上行协商速率)、channel(当前工作信道及带宽,如 36,80)、BSSID(已连接 AP 的 MAC 地址)。











