除非使用 FQDN 指定服务器,否则 Win7 在恢复后会失去与网络共享的连接

除非使用 FQDN 指定服务器,否则 Win7 在恢复后会失去与网络共享的连接

我的 Win7 客户端与 Linux 服务器及其共享文件夹建立了连接。当计算机从睡眠状态唤醒时,如果其中一个共享文件夹无法访问,则会出现问题。我收到以下消息:错误代码:80070035,未找到网络路径。只有一个特定文件夹有问题。当我重新启动计算机时,这个有问题的文件夹又可以访问了。当我在睡眠状态之前注销时,唤醒后该文件夹就可以访问了。如果我尝试使用服务器的 FQDN 或服务器 IP 访问该文件夹,也可以访问。作为临时解决方案,我使用 FQDN 将文件夹映射到网络驱动器,虽然运行正常,但这很不方便,因为服务器上的其他每个文件夹都可以访问。

总结一下:

  • \\server\problematicshare恢复后不再工作(Samba 服务器看到我的客户端连接,然后在几秒钟后断开连接,同时我收到上述错误消息)
  • \\server\othershare恢复后工作
  • \\fqdn.of.server\problematicshare总是有效
  • \\ip.of.server\problematicshare总是有效
  • 一旦问题出现,我就无法重新启动“工作站”服务(它没有响应)
  • 重新启动“计算机浏览器”服务没有明显效果
  • 事件日志不包含任何看似相关的内容
  • “ping 服务器”有效

数据包转储链接:http://pastebin.ca/2836628

此数据包跟踪是在客户端从暂停状态恢复后立即使用 wireshark 获得的。

解释:

  • 192.168.1.110 是我的客户端
  • 192.168.3.255 是本地广播地址(这是一个 /22 网络)
  • 192.168.0.58 是 Samba 域控制器,也是共享有问题的共享的服务器
  • 192.168.1.254 是 DNS 服务器

数据包跟踪已进行后处理(所有 IP 地址都已通过替换前缀进行更改;域、服务器和客户端名称已被替换为相同长度的不同字符串)。

您会注意到,客户端尝试在 DNS 中解析“SERVERNAM。”(即不限定服务器名称),结果为 nxdomain。如果此查找成功,则与共享的连接可能有效。但是,“SERVERNAM”应该可以通过 WINS 解析;此外,是什么导致暂停时的行为发生变化?在暂停之前,相同的 DNS 查找以相同的方式失败。

还有一些相关的 samba 日志消息,它们将在适当的点散布在数据包跟踪中。

[2014/08/28 09:54:56.541088,  0] rpc_server/srv_pipe.c:500(pipe_schannel_auth_bind) pipe_schannel_auth_bind: Attempt to bind using schannel without successful serverauth2
[2014/08/28 09:54:56.661321,  0] rpc_server/netlogon/srv_netlog_nt.c:976(_netr_ServerAuthenticate3) _netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client WORKSTATION--7 machine account WORKSTATION--7$

(如果机器帐户本身存在问题,则使用服务器的 fqdn 访问共享也是不可能的,因此,虽然这可能相关,但肯定不是根本原因。)

答案1

对于这种类型的网络连接来说,睡眠是一件坏事。Linux 机器无法判断您是进入睡眠状态还是断开了连接。900 秒的沉默后,您的连接将被故意关闭,您必须重新实例化一个新连接。您将需要某种类型的 keepalive 来保持连接。您的“恢复连接”将尝试重新打开预先存在的连接,并且在调用新连接时没有任何技能。这就是为什么您必须让服务重新启动连接的原因。注销、登录应该启动一个新连接。

它们是否都在同一个逻辑 DNS 子域上?
它们是否都为该子域设置了搜索域信息?

其次,我怀疑您的 samba 配置(在 Linux 主机上)需要全名,即使您的服务器正在连接到正确的主机。

相关内容