我遇到了 DNS 问题。我在 Ubuntu 机器上的 LAN 内(我家)设置了一个 Samba 共享,主机名为einstein
。当我从 Windows 操作系统(Windows 10)执行时ping einstein
,为了确保einstein
我的计算机知道这一点,我收到以下输出:
> ping einstein
Pinging einstein.uwaterloo.ca [129.97.47.170] with 32 bytes of data:
因此,我将einstein
主机名更改为turing
(更改/etc/hostname
、/etc/hosts
和smb.conf
文件)并收到以下输出:
> ping turing
Pinging turing.cs.uwaterloo.ca [129.97.186.70] with 32 bytes of data:
此时,我应该提到我是滑铁卢大学 ( uwaterloo.ca
) 的学生,并且我使用 Cisco Anywhere Connect 客户端从校园远程访问大学资源。因此,我认为这可能是 DNS 缓存问题,我刷新了我的 DNS 缓存(ipconfig /flushdns
几次)并重新启动了我的 Windows 计算机(几次),但无济于事。
怎么了?
答案1
通过键入 检查您的 DNS 后缀搜索列表ipconfig /all
。
如果您没有引用完整限定域名 (FQDN)。这可以解释为什么您的计算机会将“cs.uwaterloo.ca”和“uwaterloo.ca”添加到您的 ping 中。
此外,你学校的 DNS 服务器可能有一个通配符记录,它会将任何请求但不存在的名称解析为特定的 IP 地址。很多时候,这是为了在用户进入未知网站时向他们显示“搜索页面”。例如,如果我尝试浏览http://www.googletypo.com/我不会得到“页面未找到”的提示,而是会得到一个搜索页面,它可能有助于为我指明正确的方向。
为了解决这个问题,您可以在 Windows 10 计算机的“hosts”文件中添加一个条目。该文件位于 %systemroot%\system32\drivers\etc\hosts。添加到此文件的任何条目都将覆盖您的计算机从其 DNS 服务器获取的任何内容。
编辑
您还可以通过在主机名后面添加一个点(“.”)来告诉客户端将该名称视为 FQDN,从而解决这个问题。因此,ping einstein.
。
答案2
正如您所说,您遇到了 DNS 问题。您的 Windows 10 计算机正在查询 DNS 以找出您的图灵和爱因斯坦计算机的 IP。当您更改 /etc 中的文件时,您并没有更改 DNS,您只是更改了您的计算机认为它拥有的主机名。DNS 是一个分布式数据库,如果您想更改其中的某些内容,您应该联系您的网络管理员。