为什么Mac OS X(10.6)Finder不能连接到Windows电脑?

我们在连接到“服务器”(实际上是运行Windows XP Pro的戴尔)的Windows机器中有一台Mac(MacBook Pro Unibody)来访问文档。 这在大多数情况下都可以正常工作,但有时从睡眠中醒来后,无法连接到networking上的任何 Windows计算机。

尝试通过Finder的networking浏览进行连接时,以及按名称或IP使用“连接到服务器”菜单时,控制台应用程序中都没有错误(甚至没有消息)。

我试过Finder的“重新启动”,切换文件共享,禁用和重新启用机场,但没有使Mac能够再次连接,直到我重新启动!

其他电脑可以连接到机器,所以这绝对是Mac的错。

有没有人find任何解决方法? 有没有办法重新启动桑巴客户端?

编辑:

笔记本电脑确实使用无线,但所有的networking连接工作,Mac可以ping它试图连接到和浏览互联网的XP主机就好了。 我已经尝试在“连接到服务器”菜单项中使用主机的IP地址; 现在在上面提到。

[编辑:删除你在编辑中回答的问题,提出新的问题,作出澄清。]

  1. 装入的SMB共享(或具有相同名称的文件夹)是否仍显示在/Volumes
  2. mount命令报告什么?
  3. umount /Volumes/<name of share>做任何事情? (请注意,这是“卸载”,而不是“卸载”)。

请注意,Mac OS X的控制台日志通常仅报告来自作为当前用户运行的应用程序的消息。 以根(或“nobody”或任何默认的受限系统帐户(如“www”)运行的软件)一般会login到/var/log/system.log或其他日志。 在10.6中,最有可能包含文件系统消息的内核消息转到/var/log/kernel.log,所以也请看那里。 控制台应用程序可让您浏览所有这些日志,如果您点击“显示日志列表”。 Mac OS X的SMB客户端( 我似乎记得苹果自己的实现,而不是基于Samba的 Boris Popov的FreeBSD smbfs,它不是基于Samba的),可能不会像当前用户那样运行,所以它可能不会login到控制台日志。 查看system.log和kernel.log。

我强烈build议你在这里检查TCP ACK修复 。 我已经在很多情况下将其应用于Mac OS X客户端在Windows环境中窒息而且效果很好。 这里详细解释。

这是一个简短的版本:Mac OS X TCP堆栈处理TCP ACK的方式存在不匹配错误,这种错误基本上导致数据包丢失。 旋转的沙滩球? 连接速度慢? 像这样的东西。 像这样的修复不会冒损坏数据的风险,因为它正在改变发送/接收的TCP数据包的行为方式。 因此,不使用有缺陷的实现Nagle的algorithm,该设置禁用该algorithm,因此可以在不等待的情况下发送/接收数据包

现在开始,从terminal检查:

 sysctl net.inet.tcp.delayed_ack 

它应该是4个数字之一:

  • 0 =每个数据包响应(OFF)
  • 1 =总是使用延迟的ACK,6个数据包可以得到1个ACK
  • 2 =第二个数据包后立即应答,每个ACK有2个数据包(兼容模式)
  • 3 =应该自动检测何时使用延迟确认,每个确认4个数据包。 (默认)

99%的时间,Mac将设置为选项3 ,这是连接到非Mac服务器时窒息的Mac。 两个选项尝试是02 。 我现在默认使用0,并没有任何问题。

这会将delayed_ack设置为0:

 sudo sysctl -w net.inet.tcp.delayed_ack=0 

卸载文件共享和重新连接。 事情应该会更好。

现在,如果要在重新启动时保留该设置,则需要创build一个sysctl.conf

 sudo nano /etc/sysctl.conf 

并将其粘贴到它:

 net.inet.tcp.delayed_ack=0 

如果你想testing你是否这样做,只需重新启动你的机器,再次执行sysctl net.inet.tcp.delayed_ack 。 应该是0

希望这可以帮助!