为什么我连个 Wi-Fi 都会使用终端来完成?
前段时间使用 SmartConfig 给网关进行一键配网,需要频繁修改 Wi-Fi 密码进行测试。于是在我修改密码后,再用 macOS 的图形界面连同一个 Wi-Fi 的时候,却提示如下图所示,而不是提示密码错误。
我用的 macOS 版本为 Mojave 10.14.6,这或许是 macOS 的一个 bug。
我也找到了两种解决方法:
- 在钥匙串中删除该 Wi-Fi SSID 存储的密码。
- 在终端使用
networksetup
命令连接 Wi-Fi(推荐)
方法一,使用 networksetup 命令连接 Wi-Fi(推荐)
从Snow Leopard(Mac OS X v10.6.x)或更早版本开始,您可以执行以下操作:
1 | networksetup -setairportnetwork $INTERFACE $SSID $PASSWORD |
$INTERFACE
是您的AirPort卡的“ enX”样式标识符(通常是en1
,但en0
在MacBook Air和en2
Mac Pro中使用,并且由于其他原因也会有所不同)那么如何确定你的电脑使用 en0 还是 en1 还是 en2 呢?
有两种方法:
- 你一个个试,如果是 INTERFACE 错误,会提示
enX is not a Wi-Fi interface.
。 - 先通过图形界面连接 Wi-Fi,然后使用
ifconfig
命令查找 Wi-Fi interface。
- 你一个个试,如果是 INTERFACE 错误,会提示
$SSID
是您的网络名称,例如"Simon's SSID"
。如果包含空格,请用引号引起来。$PASSWORD
是您的WEP,WPA-PSK或WPA2-PSK密码。
使用该命令,连接成功没有输出,失败会输出错误信息。
查看 Wi-Fi 信息
如果你想查看当前连接的 Wi-Fi 信息,使用如下命令:
1 | /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I |
如果仅仅想获取连接的 SSID 名称,使用如下命令:
1 | /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep -w SSID | awk '{print $2}' |
或
1 | /Sy*/L*/Priv*/Apple8*/V*/C*/R*/airport -I | awk '/ SSID:/ {print $2}' |
方法二,在钥匙串中删除该 SSID 后再连接
如果你不熟悉命令行,可以使用此方法。
打开钥匙串,用你 Wi-Fi 对应的 SSID 搜索,找到后删除。
再通过图形界面连接。
为什么我连个 Wi-Fi 都会使用终端来完成?