我正在尝试将拆分 DNS 添加到 wireguard 隧道(这实际上不是一个 wireguard 问题)。
我有一个 PostUp 命令:resolvectl dns %i 10.160.20.15
翻译为:resolvectl dns wg0 10.160.20.15
但它不起作用。
当我以 root 身份运行该命令时,似乎没有任何变化。没有 DNS 服务器添加到 resolvectl 状态。如果我启用 DEBUG 级别的日志记录,我会收到大量消息,journalctl
但我看不到失败的原因。
它太长了,无法在这里发布;但error-message
所有日志中唯一没有填充的字段n/a
是Link lan0 is managed
,它有另一个error-name
值为的字段org.freedesktop.resolve1.LinkBusy
lan0
是我的主以太网的名称(在中重命名netplan
),并且据我所知,实际上不应该涉及该命令?
如果我很天真,并且以某种方式lan0
参与其中,我该如何使其不忙(不受管理);这样我就可以在不同的接口上设置 DNS?
编辑:在org.freedesktop.resolve1上发现以下内容:
org.freedesktop.resolve1.LinkBusy
无法进行请求的配置更改,因为 systemd-networkd(8) 已经占有该接口并为其提供了配置数据。
所以我想我需要知道networkd
“占有”是什么意思?以及如何重新占有?