我的 MacBook Pro 无法自动连接到隐藏 SSID 的无线网络。它让我在 Airport 菜单(系统托盘中)中选择“加入其他网络...”,在那里我需要输入网络名称,然后输入安全类型、密码并等待它连接。这变得越来越烦人每一个我回到办公桌前的时候。
我运行的是 Mac OS X 10.5,似乎没有连接到特定网络的选项,而是“首选网络”。我设置为首选的唯一网络是我的家庭网络,但它仍然无法自动连接。我无法控制网络是否公开可见,所以我只能使用当前设置。
读者文摘版:如何让我的 MacBook Pro 自动连接到具有隐藏 SSID 的 WiFi 网络,而无需每次连接时都进行“配置”?
答案1
自动连接到具有隐藏 SSID 的网络是一个坏主意。
由于你的计算机无法被动侦听 SSID 广播并在看到 SSID 时自动连接(它不会显示在信标广播中,因为这是隐藏 SSID 的工作原理),它必须积极发送带有网络 SSID 的探测数据包,即使它离接入点很远,然后等待响应。这意味着,接入点不必一直广播其名称,而是所有计算机均配置为自动连接到它一直广播着自己的名字,无论他们身在何处。
更不用说,为了能够在具有相同 SSID 的多个接入点之间漫游,计算机必须知道它们的 BSSID(本质上是 AP 的 MAC 地址)。通常它们通过监听接入点广播的信标来实现这一点。由于信标没有 SSID(嘿,它是隐藏的!),计算机必须定期发送探测请求即使已经连接到接入点。即使只有一台计算机连接到网络,入侵者也很容易找到 SSID。更不用说解除关联攻击了。
因此,它几乎得不到任何安全性(找到 SSID 仍然太容易了),并且失去了更多的安全性(客户端计算机不断向全世界宣布“嘿,我是一台属于 XYZ 公司员工的计算机!”即使离 XYZ 公司很远)。最终结果是负面的。
减少甚至避免安全损失的唯一方法是手动连接而不是自动连接。这似乎是 Apple 正在做的事情。(据我所知,当您尝试将 Windows Vista 设置为自动连接时,它会警告您存在安全问题。大多数 Linux 发行版使用的 NetworkManager 似乎也让您从下拉列表中手动选择已保存的连接。)
理论上,可以保存每个 ESSID 的已知 BSSID,并且仅在收到其中一个 BSSID 的信标时(即,当您靠近过去曾用于该 SSID 的接入点时)发送探测请求。我不知道为什么似乎没有人尝试过。
答案2
不确定如何具体回应约翰对乔丹卡塔尔多的回答的不合理评论,所以对新的答案表示歉意。但是 - 不,iJohn,您可以通过脚本编辑器将此 applescript 保存到 .app 中,该 .app 可以放置在用户的登录项中(在系统首选项中的帐户下)。然后,您将在启动时自动登录到隐藏网络。
根据 Jordan 的例子,我编写了以下脚本来登录到可能尚不可用的隐藏网络,用于服务器与客户端位于同一电源板上且需要一段时间才能启动的情况(这种情况确实很少见)。博物馆展品有不同寻常的需求;)
set networkResult to false
repeat while not networkResult
try
do shell script "networksetup -setairportnetwork NetworkName networkPassword | /bin/bash"
-- network found and joined.
set networkResult to true
on error errorMsg
-- network not yet available;
-- wait five seconds and try again.
set networkResult to false
delay 5
end try
end repeat
答案3
我谷歌了一下,发现似乎有很多人跟你的情况一样。Apple 承诺的修复从未实现。似乎唯一的解决方案就是取消隐藏路由器上的 SSID。请注意,现在隐藏 SSID 并不能保护你免受任何影响。
答案4
如果您“愿意”,您可以使用命令脚本并将其设置为启动或作为启动文件放在 dock 中:只需进入您的终端并使用以下命令保存(使用您的 SSID 和密钥)
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport --associate=yourSSID --password=yourkey
希望这对某些人有帮助。如果你想“做”更多,请查看:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -h