我曾经在我最近(3周龄)的MacBook Pro上访问我当地的Windows 2008文件服务器的SMB共享没有问题。但是,几天后,它从睡眠模式唤醒后无法(重新)连接到服务器。
Finder只显示“连接......”并无限期挂起。当我从命令行尝试它时会发生同样的事情( mount -t smbfs
)。这通过WiFi和电缆发生,我也尝试关闭和重新打开网络。唯一有帮助的是重启。
任何提示?
编辑澄清:这是Mac正在睡觉,而不是服务器。我还发现,如果我在让它进入睡眠状态之前断开它的连接,它将能够在唤醒后重新连接。
另一个编辑:
我做了一些调查,并嗅探了网络流量。 Mac向服务器发送NetBIOS名称查询和状态请求(NBSTAT),服务器响应,一切似乎都很好。之后,Mac应该打开SMB连接,但它没有做任何事情。不再有数据包了。
然后我发现真正的问题更深层次。它似乎没有打开一个新连接,因为它认为旧的连接,当然在服务器端超时,仍然是活动的。但是,任何试图访问其挂载点或只是/ Volumes目录的程序都会挂起,甚至无法终止。 umount /Volumes/share
- 挂起 ls /Volumes
- 挂起 kill -9
任何这些 - 没有帮助。此外,在任何应用程序中打开文件打开对话框也会导致它挂起!
唯一有帮助的是硬重启。在我看来,如果超时连接可以触发这样的事情,OSX的SMB实现中存在根本性的错误。
net.inet.tcp.delayed_ack=0 net.inet.tcp.mssdflt=1440 kern.ipc.maxsockbuf=500000 net.inet.tcp.sendspace=250000 net.inet.tcp.recvspace=250000
重新启动后,我连接到我的SMB共享(已经花费的时间比以前少了很多),经过几次睡眠之后,我仍然可以完美地访问它们。