我正在尝试使用 hosts/lmhosts 文件在我的新 Windows 2019 Server 上创建各种别名。它位于企业 Active Directory 域中。在 TCP/IP 属性中选中了“使用 LMHOSTS”。
在场景 1 中,我想为同一台机器创建一些别名。我将以下几行放入C:\Windows\System32\drivers\etc\lmhosts
:
# loopback alias
127.0.0.1 myname1
# real IP alias
10.1.2.3 myname2
相应地C:\Windows\System32\drivers\etc\hosts
:
127.0.0.1 myname1
10.1.2.3 myname2
然后我重新启动了server
和lmhosts
服务,并尝试使用 和 Windows 资源管理器访问它们net use \\myname1/2
。它们都提示输入登录凭据,并反复拒绝我。这些名称在其他地方不存在,因为当我使用hosts
和lmhosts
空白尝试它们时,我收到“未找到网络路径”的消息。我可以 ping 名称,它显示正确的 IP。
在场景 2 中,我正在尝试为另一台服务器创建hosts
/lmhosts
别名。
10.11.12.13 alias1
我像以前一样重新启动,然后net use
出现“系统错误 53 已发生。您未连接,因为网络上存在重复的名称。”当然,别名 1 并不存在于任何地方。我没有与真实服务器建立任何其他连接。我使用net use
和验证了这一点netstat
。
在场景 3 中,我尝试创建一个hosts
/lmhosts
覆盖另一台服务器。
10.1.2.3 otherserver
我像以前一样重新启动,这次net use
出现“发生系统错误 64。指定的网络名称不再可用。”当我 ping 其他服务器时,它使用我指定的本地计算机的正确 IP 地址。
所以我最大的疑问是这个。我到底做错了什么,还是微软在 2019 年对 LMHOSTS 做了什么导致它崩溃?我试过了ipconfig /flushdns
。nbtstat -R
我试过#PRE
lmhosts 指令。什么都没用。
还有一件事,我已打开 SMB 审核,在 SMBServer/Security 事件日志中,有相应的 SMB 会话身份验证失败条目。客户端地址是本地计算机。有一行突出的内容:“SPN:在可以查询 SPN 之前会话设置失败”。
我愿意尝试创建机器别名的其他方法。但主要任务是屏蔽另一台服务器,以便其 UNC 路径在本地解析。
谢谢。
答案1
我到底做错了什么
最有可能的不是名称解析(这是在您的主机中完成的),而是文件服务器名称本身。Windows 服务器确实会监听对其名称的请求。
您可以使用以下命令为您的服务器添加别名 netdom
:
c:\> netdom computername <computername> /add:<aliasname.fqdn.local>
你会不是netdom
如果使用正确,则需要修补您的 hosts/lmhosts 。
答案2
正如另一个答案所说,Windows将要如果您尝试调用一个与其自身名称不同的服务器,则会发出抱怨;netdom
可以修复该问题。
但在域环境中,还需要考虑 Kerberos。为了使身份验证成功,服务器需要具有与您调用它的名称相匹配的服务主体名称。
因此您还需要为服务器注册一个额外的 SPN:
setspn -S CIFS/Alias Servername
(其中“Alias”是新名称,“Servername”是服务器的实际主机名)