我的网络上有一台服务器(我们称之为主机名server
),我可以使用解析为其本地地址的主机名访问 LAN 上的机器server.local
(我们称之为 192.168.1.50)。大多数设备通过 WiFi 与这台机器通信,但为了提高性能,我最近通过以太网电缆将另一台机器直接连接到它。此接口上的服务器 IP 地址是 10.0.0.1,连接到它的机器(client1
)上的 IP 地址是 10.0.0.2。我注意到过了一会儿我可以 pingserver.local
通client1
,它解析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 地址),并且“本地”在不同的系统上具有不同的含义。dnsmasq
man 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
”路由。