首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使系统解析忽略DNS服务器,只使用我指定的服务器。

问使系统解析忽略DNS服务器,只使用我指定的服务器。
EN

Unix & Linux用户
提问于 2020-04-14 04:00:48
回答 3查看 2.1K关注 0票数 3

我遇到了DNS的问题,为了帮助缩小问题,我被要求手动配置我的机器的DNS设置,只指定一个DNS服务器,而不是通过DHCP返回的两个DNS服务器,因此服务器管理员可以确定我的问题是只发生在一个DNS服务器上,还是同时发生在两个DNS服务器上。

但是,我一直无法配置systemd解决方案,以至于它将手动接受我的DNS配置。

我尝试了以下方法,即使在重新启动systemd-networkd和systemd-resolved之后,所有这些仍然在两个服务器之间随机发送DNS请求:

  • 在DNS=1.2.3.4的[Resolve]部分中指定/etc/systemd/resolved.conf
  • 在DNS=1.2.3.4的[Network]部分指定/etc/systemd/network/eth0.conf (此文件夹中的唯一文件)
  • 编辑/etc/resolv.conf并注释掉其中一个服务器

所有这些都没有改变任何事情,resolvectl仍然列出了这两个DNS服务器都是可用的,当我执行测试时,DNS查询被分割到了这两个服务器之间,而不是只使用我指定的一台服务器。

如何告诉systemd只使用我指定的单个DNS服务器,而不使用通过DHCP返回的服务器?

EN

回答 3

Unix & Linux用户

发布于 2021-07-28 07:02:32

我没有尝试过这一点,但后来我发现有一个选项可以忽略来自DHCP响应的DNS服务器。在systemd .network文件中,如果还不存在DHCP部分,则添加它,并使用UseDNS选项:

代码语言:javascript
复制
[Network]
DNS=8.8.8.8  # Specify your DNS server manually

[DHCPv4]
UseDNS=no  # Don't use DNS servers from DHCP
票数 1
EN

Unix & Linux用户

发布于 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:

代码语言:javascript
复制
# 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
票数 1
EN

Unix & Linux用户

发布于 2020-04-15 00:46:15

如果可以设置静态IP,则可以指定DNS服务器。向网络管理员询问您可以使用的静态IP,并尝试这样做。不要为此只使用任何IP,你很容易就会得到一个副本。

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/579911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档