背景介绍
我们有一个 Windows 2008 服务器,用户使用它来存储各种数据。
它具有到特定文件夹的 smb 共享,需要通过 cifs 由多个 Ubunutu 服务器访问。
- 一切都运行良好,直到最近我们不得不修补 Windows 服务器以抵御 WannaCry 攻击。
- 还更新了 Ubuntu 服务器(运行 Ubuntu 16.04.02 LTS)
- 除了更新之外没有任何变化 - 所有配置都相同,并且运行良好好几年。
- 网络无变化
问题:
现在,如果客户端不访问 Windows 2008 服务器上的 samba 共享,它会在几分钟(大约 10 分钟)后超时。(通常每隔几个小时就会发生一次,当需要从共享中提取导入或导出或保存到共享时)。要清楚的是 - 共享安装在 Ubuntu 客户端上并按预期工作,如果没有进程使用该连接,它会在几分钟后超时。
临时解决方案:我们设置了 cron 任务,每 5 分钟触碰一次 Windows 共享上的文件以保持连接)。- 这没有帮助
最终设置了一个 cron 任务,由 sudo 用户mount -a
每 5 分钟运行一次。
我想找出这个问题的原因并提出一个长期的解决方案。
编辑:
根据评论:
/etc/fstab 中的挂载命令(用大写字母替换敏感信息)
//SERVER.HOST.NAME/apidata /var/www/pai3/shared/data/production/k_drive/data cifs username=USER,password=PASS,iocharset=utf8,sec=ntlm,workgroup=DOMAIN.COM,rw,uid=1000 0 0
答案1
空闲连接定时器
这是连接在断开之前可以处于空闲状态的时间量。空闲连接定义为没有现有打开句柄(没有打开的文件、目录、搜索上下文等)且没有待处理操作的连接。空闲连接计时器是特定于实现的。当服务器收到消息时,Server.Connection.IdleTime 设置为当前时间加上 Server.AutoDisconnectTimeout [MS-CIFS]。
在 Windows 服务器上,可以通过 Autodisconnect 注册表项 [KB297684] 进行配置。\HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\ 值类型:Dword 值名称:Autodisconnect 默认值:15(分钟)
还可以通过组策略配置自动断开连接:计算机配置\Windows 设置\安全设置\本地策略\安全选项“Microsoft 网络服务器:暂停会话前所需的空闲时间量”
也许更新改变或重置了其中一个参数。
我建议您首先尝试使用组策略,如果失败,则直接编辑注册表。