在 Ubuntu 上,当我在静态和 DHCP 之间更改 eth0 网络接口配置时,接口设置会很好地更新,但更新 DNS 似乎存在问题。
在更改之前,我可以通过主机名 gkgw-ea16 从 Windows 8 引用 Ubuntu 计算机。但在更改 IP 地址后,似乎更改未传播到路由器(我假设它有一个 DNS 服务器),并且我不再能够通过主机名引用 gkgw-ea16。
C:\Windows\System32>ping gkgw-ea16
Pinging gkgw-ea16 [192.168.1.78] with 32 bytes of data:
Request timed out.
Reply from 192.168.1.42: Destination host unreachable.
Reply from 192.168.1.42: Destination host unreachable.
Request timed out.
Ping statistics for 192.168.1.78:
Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),
事实上,Windows 仍然认为它的 IP 地址是相同的。如果我从 Windows ping Ubuntu 的新 IP 地址或反之亦然,主机名就会神奇地变得可解析。
我不确定这个问题的根本原因是否与 Ubuntu 或路由器有关,但是将设备的 IP 地址更改传播到 LAN 上的 DNS 服务器的正确方法是什么?
答案1
您需要在 DNS 中为静态 IP 地址创建合适的 A 记录。具体如何操作完全取决于所使用的 DNS 服务器以及您可用的工具/权限。
答案2
可能发生以下两种情况之一:
- 您的路由器的 DNS 转发服务从 DHCP 服务器获取主机信息,这就是您的客户端进行解析的方式。 域名管理系统是执行此操作的 DNS/DHCP 服务的一个示例。
- 您正在使用多播 DNS (移动DNS)。
对于这两种情况,您的系统都会缓存对方主机名的副本。您可以执行以下两项操作之一:
- 清除 Windows 系统上的 DNS 缓存:
ipconfig /flushdns
- 重新开始avahi 守护进程在你的 Linux 系统上:
sudo service avahi-daemon restart
然后尝试连接到其他系统。
为了完全避免这个问题,您可以使用静态 IP、静态 DHCP 租约或更长的租约到期时间。