Samba 无法在没有互联网连接的 LAN 上运行

Samba 无法在没有互联网连接的 LAN 上运行

我的局域网中的 CentOS 7.2 服务器上有一个 Samba 4 共享,我可以从一些 Windows 10 客户端访问
该共享。客户端使用服务器 IP 访问共享,并且 Samba 配置为独立服务器,而不是域成员服务器。

当互联网连接建立时,一切都按预期正常工作,但是当没有互联网连接时,客户端需要最多 20 分钟才能显示登录凭据窗口。

这似乎不是与网络相关的问题:客户端可以访问服务器,像往常一样快速 ping 服务器,使用其他协议(如 HTTP 或 SSH),并且通常可以完美地通过 LAN 执行所有其他网络活动。
此外,有用经过长时间的等待后,提示我该过程涉及某种超时。

如果断开本地路由器的 WAN 电缆并尝试从客户端访问 Samba 共享,它会开始等待某些操作(地址栏上的绿色加载进度缓慢移动),但只要我再次插入 WAN 电缆,客户端就会显示登录窗口。

Samba 日志(调试级别 5)没有显示任何异常,但似乎有许多连接尝试确实被服务器接受:

[2016/11/15 16:18:34.378116, 3] ../source3/lib/access.c:338(allow_access) Allowed connection from 192.168.100.5 (192.168.100.5) [2016/11/15 16:18:34.436829, 5] ../lib/dbwrap/dbwrap.c:178(dbwrap_check_lock_order) check lock order 2 for /var/lib/samba/serverid.tdb [2016/11/15 16:18:34.436924, 5] ../lib/dbwrap/dbwrap.c:146(dbwrap_lock_order_state_destructor) release lock order 2 for /var/lib/samba/serverid.tdb ... ... this is repeated an unbelievably lot of times ... ...

我倾向于认为这是一个与 Windows 10 相关的问题,而不是网络/samba/服务器问题。

答案1

我遇到了和你完全一样的情况——当 WAN 端口开启时,LAN 中的 Samba 运行良好,但如果 WAN 端口关闭,速度就会非常慢。我最终使用 tcpdump 找到了原因。

Samba 尝试解析其主机名。

我的 Samba 服务器在 中没有自己的主机名条目/etc/hosts,因此它会尝试在 Internet 上解析它,如果 WAN 发生故障,这将需要很长时间。

将 Samba 服务器的 A / PTR 记录添加到您的 LAN 名称服务器(Samba 使用),或者仅在/etc/hostsSamba 上添加主机名条目。不再有绿色进度条!

答案2

使用 IP 地址挂载共享并不意味着不涉及名称解析。
存在反向名称解析。
当客户端尝试根据服务器的 IP 找出服务器的 FQDN 时,就会发生这种情况。(想想dig -x ipaddress这种交易)

为了进行快速测试,我建议在客户端文件上的共享 IP 地址中添加一些名称C:\Windows\system32\drivers\etc\hosts,看看这是否有帮助。
您可以在此处找到带有示例的详细说明https://support.rackspace.com/how-to/modify-your-hosts-file/

您还可以在客户端上安装 wireshark,并在出现问题时捕获网络流量。然后按端口 53(DNS)进行过滤。您应该查看是否有任何反向名称解析正在进行。

答案3

这似乎是与 DNS 相关的问题:客户端或服务器正在尝试解析(或反向解析)另一台机器,这导致超时/连接缓慢。由于许多路由器支持 DNS 转发,请尝试以下操作:

  • 在路由器上设置 Google 的 DNS(8.8.8.8 和 8.8.4.4)
  • 两个都客户端和服务器,将路由器的内部 IP 地址设置为两个都网关和 DNS
  • 断开 WAN 电缆并重试连接

这有什么改变吗?

相关内容