我如何控制 host.local 解析到哪个接口?

我如何控制 host.local 解析到哪个接口?

我的网络上有一台服务器(我们称之为主机名server),我可以使用解析为其本地地址的主机名访问 LAN 上的机器server.local(我们称之为 192.168.1.50)。大多数设备通过 WiFi 与这台机器通信,但为​​了提高性能,我最近通过以太网电缆将另一台机器直接连接到它。此接口上的服务器 IP 地址是 10.0.0.1,连接到它的机器(client1)上的 IP 地址是 10.0.0.2。我注意到过了一会儿我可以 pingserver.localclient1,它解析server.local为 10.0.0.1 而不是 192.168.1.50。

这很棒,因为这意味着我不必明确指定 IP 地址(这对于网页在 IP 地址更改时忘记其状态很有用),但我定期看到性能缓慢,当我 ping 时,server.local我看到它已切换回 192.168.1.50。过了一会儿,它又回到了 10.0.0.1。

我如何才能server.local确定以太网接口的 IP 地址,至少对于连接的机器来说是这样?如果网络上的所有机器都必须解析为同一个地址,那么现在就可以了,因为目前直接连接的机器是唯一使用它的机器。

答案1

域名通过(参见).local进行解析(转换为 IP 地址),并且“本地”在不同的系统上具有不同的含义。dnsmasqman dnsmasq systemd-dnsmasq

无需尝试欺骗.local,只需将主机名和 IP 地址添加到/etc/hosts

sudoedit /etc/hosts
servereth   10.0.0.1
serverwifi  192.168.1.50

man sudoedit hosts

IP 地址与实际接口名称的连接是通过“数据包路由”完成的,请参阅man ip ip-route、执行ip route,并记住几乎所有数据包都使用“ default”路由。

相关内容