如何让 systemd-resolve 在热插拔后正确生效?

如何让 systemd-resolve 在热插拔后正确生效?

设置

我正在玩一个运行 Debian Jessie 的小型嵌入式板。我正在systemd尽可能多地使用东西,包括网络东西。我已经添加了文件:

/etc/systemd/network/eth0-dhcp.network:

[Match]
Name=eth0

[Network]
DHCP=yes

我将/etc/resolv.conf文件修复为符号链接/run/systemd/resolve/resolv.conf

systemd 报告的版本是 215。

我已将开发板插入我的 MacBookPro,它正在将其 wifi 连接作为以太网共享。

会发生什么

1)第一次启动时,一切正常。ifconfig显示我有一个由 MacBook 分发的有效 IP 地址。我可以ping 0.debian.pool.ntp.org并得到有效的答复。cat /etc/resolv.conf显示有效nameserver地址。这一切都在预料之中,也是一件好事(tm)

2) 如果我断开以太网电缆,我会在控制台上收到一组消息,指示链路已关闭。此时,ifconfig不再显示ip地址。cat /etc/resolv.conf现在是空的。当然,ping 也不再起作用了。这也都在意料之中。

3)我重新连接电缆。现在我收到一组消息,表明链接已打开。此时,ifconfig说明我又拥有了有效的ip地址。但/etc/resolv.conf里面什么也没有。所以我的 ping 命令不起作用,没有地址。但是我可以ping 204.2.134.162(该主机之前报告的地址)。因此,我得出的结论是,虽然我的网络层通过电缆热插拔正确地恢复正常,但systemd-resolved不是吗?

执行完后systemctl restart systems-resolved/etc/resolv.conf再次显示一个条目,但解析的 IP 地址现在不同,并且仍然无法 ping 通。

有人可以向我解释这里发生了什么吗?在网络热插拔事件发生后,如何才能使名称解析再次工作?随意迂腐,我的大部分网络知识都是凭经验学到的轶事和反复试验。

更新

有人指出,Debian 池地址可能确实不同并且无法 ping 通。相反google.com,该部分总是可以正常工作。所以剩下的问题是

网络热插拔后如何让systemd-resolved重新启动?

相关内容