You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2016下无法通过hosts别名访问远程共享路径

解决Windows Server 2016中Hosts映射无法访问SMB共享的问题

这种情况我之前碰到过好几次,核心原因是Windows的SMB共享访问逻辑和单纯的hosts解析不是一回事——哪怕hosts能把别名映射到正确IP,SMB可能还是走NetBIOS或其他机制,没用到hosts的配置。下面是几个亲测有效的排查和解决方法:

1. 让SMB客户端优先用DNS解析

Windows默认可能优先通过NetBIOS找主机,忽略hosts里的映射。可以通过注册表强制SMB用DNS解析:

  • 打开注册表编辑器(运行regedit),导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  • 新建DWORD(32位)值,命名为DNSNameResolutionRequired,设置值为1
  • 重启LanmanWorkstation服务:Restart-Service LanmanWorkstation

2. 清除旧缓存避免干扰

本地的NetBIOS或DNS缓存可能存了错误记录,先清掉试试:

  • 管理员权限打开命令提示符,执行nbtstat -R(注意是大写R)清除NetBIOS缓存
  • 再执行ipconfig /flushdns刷新DNS缓存

3. 尝试用完整域名访问

如果你的环境有域,建议在hosts里添加完整FQDN(比如txe-build-svr.yourdomain.com 10.10.10.10),然后用\\txe-build-svr.yourdomain.com\c$访问;如果没有域,可以在系统的DNS后缀设置里加一个临时后缀,强制触发DNS解析逻辑。

4. 先手动建立共享连接

有时候解析没问题,但身份验证阶段卡壳,导致路径“不存在”的错误。可以先用net use命令手动建立连接:

net use \\txe-build-svr\c$ /user:your-account-name

输入密码连接成功后,再执行Get-ChildItem \\txe-build-svr\c$应该就能正常访问了。

5. 检查SMB协议版本兼容性

确保客户端和服务器的SMB版本匹配,Windows Server 2016默认支持SMB 3.1.1,但如果服务器端限制了版本,可能需要调整客户端配置:

  • 执行Get-SmbClientConfiguration查看当前客户端SMB配置
  • 如果需要强制启用SMB 2/3,在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters下,把SMB1设为0,SMB2设为1,然后重启服务。

内容的提问来源于stack exchange,提问作者Tomek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:46:39