我遇到了DNS的问题,为了帮助缩小问题,我被要求手动配置我的机器的DNS设置,只指定一个DNS服务器,而不是通过DHCP返回的两个DNS服务器,因此服务器管理员可以确定我的问题是只发生在一个DNS服务器上,还是同时发生在两个DNS服务器上。
但是,我一直无法配置systemd解决方案,以至于它将手动接受我的DNS配置。
我尝试了以下方法,即使在重新启动systemd-networkd和systemd-resolved之后,所有这些仍然在两个服务器之间随机发送DNS请求:
DNS=1.2.3.4的[Resolve]部分中指定/etc/systemd/resolved.confDNS=1.2.3.4的[Network]部分指定/etc/systemd/network/eth0.conf (此文件夹中的唯一文件)/etc/resolv.conf并注释掉其中一个服务器所有这些都没有改变任何事情,resolvectl仍然列出了这两个DNS服务器都是可用的,当我执行测试时,DNS查询被分割到了这两个服务器之间,而不是只使用我指定的一台服务器。
如何告诉systemd只使用我指定的单个DNS服务器,而不使用通过DHCP返回的服务器?
发布于 2021-07-28 07:02:32
我没有尝试过这一点,但后来我发现有一个选项可以忽略来自DHCP响应的DNS服务器。在systemd .network文件中,如果还不存在DHCP部分,则添加它,并使用UseDNS选项:
[Network]
DNS=8.8.8.8 # Specify your DNS server manually
[DHCPv4]
UseDNS=no # Don't use DNS servers from DHCP发布于 2023-03-06 20:27:06
我没有足够的代表对马尔维诺的S回答发表评论。虽然他的回答是正确的,但nspawn容器需要命名文件80-container-host0.network来覆盖主机的系统默认值。
来自系统d-n产卵文档:
注意,systemd-networkd.service(8)默认包括一个与以这种方式创建的主机端接口相匹配的网络文件
/usr/lib/systemd/network/80-container-ve.network,其中包含通过DHCP在创建的虚拟链接上启用自动地址配置的设置,以及到主机外部网络接口上的自动IP路由。它还包含与以这种方式创建的容器端接口相匹配的/usr/lib/systemd/network/80-container-host0.network,其中包含通过DHCP启用客户端地址分配的设置。如果systemd既在主机上运行,也在容器内部运行,则可以使用从容器到主机的自动IP通信,并进一步连接到外部网络。
/etc/systemd/network/80-container-host0.network:
# https://www.freedesktop.org/software/systemd/man/systemd.network.html#UseDNS=
#
# Disable adding the DNS from DHCP
#
[Match]
Virtualization=container
Name=host0
[Network]
DHCP=ipv4
DNS=
[DHCPv4]
UseDNS=false发布于 2020-04-15 00:46:15
如果可以设置静态IP,则可以指定DNS服务器。向网络管理员询问您可以使用的静态IP,并尝试这样做。不要为此只使用任何IP,你很容易就会得到一个副本。
https://unix.stackexchange.com/questions/579911
复制相似问题