![SMB 共享和 UNC 名称解析 Windows 7](https://linux22.com/image/1299372/SMB%20%E5%85%B1%E4%BA%AB%E5%92%8C%20UNC%20%E5%90%8D%E7%A7%B0%E8%A7%A3%E6%9E%90%20Windows%207.png)
我在公司网络内的一台装有 CentOS 的虚拟机上有一个 Samba 共享。为了进行身份验证,只添加了一个用户,运行正常。
security = user
username map = /etc/samba/smbusers
此外,我启用了 ntlmv2 支持
client ntlmv2 auth = yes
共享配置如下:
[ShareName]
comment = Comment string
path = /usr/data/path/to/shared/folder/
read only = no
browseable = yes
inherit acls = yes
guest only = no
force user = forcedUserName
CentOS 映像在 /etc/sysconfig/network-scripts/ifcfg-eth0 配置脚本中有以下配置:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
HWADDR=XX:XX:XX:XX:XX:XX
DHCP_HOSTNAME=hostname
这是因为 VM 映像必须在不同的公司之间分发,所以我们也没有将 VM 的 IP 添加到本地 DNS 服务器。
我的问题是,使用 UNC 名称的“主机名”名称解析仅在网络内的某些计算机上有效。我只是无法弄清楚名称解析有效的计算机和无效计算机之间的区别。使用虚拟机的 IP 地址 (\\abcd\ShareName) 也适用于所有计算机。所有计算机都位于同一子网 (255.255.128.0) 中,并使用相同的 DHCP 服务器和 wins 服务器。
但是,在同一个虚拟机上也安装了 DokuWiki,并且使用任何浏览器的名称解析都可以在办公室内的所有机器上正常工作。
因此 Samba 共享肯定存在问题。
我需要在每台机器上进行有效的名称解析,以便我们的办公室女孩可以在不使用 IP 地址的情况下在 samba 共享内创建快捷方式。
PS:防火墙也不是问题。
答案1
最后我终于找出了问题所在,虽然花了我一段时间。有趣的是,名称解析根本不是问题。抱歉标题误导了大家,但症状也相当误导人。
在随机尝试更改可能配置错误的设置后,我还尝试将一台机器上的共享映射为网络驱动器。GUI 版本给我一个错误,即无法找到用户名,显然是假的。“net use ...”命令给了我
System error 86 has occurred.
The specified network password is not correct.
最终是什么让我看到了这个论坛帖子:
这为我的问题提供了解决方案。问题是有些机器默认启用了 NTLM 身份验证,而从一开始就运行该身份验证的机器默认启用了 NTLMv2。这仍然很奇怪,因为使用带有 IP 地址的 unc 名称没有任何问题。
我的结论是永远不要完全相信互联网上发布的内容(让我相信 Windows 7 始终使用 NTLMv2),也永远不要完全相信 Windows 错误消息,因为它们的信息价值甚至比“我用完了卫生纸”之类的信息更糟糕。