如何使用 NetPlan 在 Ubuntu 18.04 中设置 DNS 搜索顺序如何使用 NetPlan 在 Ubuntu 18.04 中设置 DNS 搜索顺序如何使用 NetPlan 在 Ubuntu 18.04 中设置 DNS 搜索顺序如何使用 NetPlan 在 Ubuntu 18.04 中设置 DNS 搜索顺序
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何使用 NetPlan 在 Ubuntu 18.04 中设置 DNS 搜索顺序

在 Ubuntu 18.04 之前,DNS 名称服务器通常使用 /etc/resolv.conf 配置文件进行配置。长期以来,该文件允许快速轻松地配置 DNS 名称服务器,如下面的示例 resolv.conf 文件所示。

nameserver 1.1.1.1
nameserver 1.0.0.1

从 Ubuntu 18.04 开始,包括名称服务器在内的网络设置现在通过 NetPlan 界面进行控制。即使在 18.04 之前,您仍然可以对原始 resolv.conf 进行更改,但该文件实际上是由 NetworkManager 及其配置文件控制的,通常位于 /etc/网络/接口 目录。

那么,是什么促使这种改变使用新的 NetPlan 界面呢?简单性和灵活性。使用人类可读的 YAML 文件可以更轻松地配置复杂的网络配置。此外,调试速度更快,错误更容易跟踪。

在 NetPlan 中更改名称服务器

随着界面的这种变化,我们如何实际更新 Ubuntu 18.04 系统的名称服务器?不要使用 /etc/resolv.conf,导航到 /etc/netplan,您可能会在那里找到一系列 *.yaml 文件。如果还没有定义,您应该按照推荐的命名格式创建一个,##-name.yaml,例如01-netconfig.yaml。 NetPlan 将按以下目录优先顺序加载这些文件,然后按前面的编号顺序加载。

  • /run/netplan/*.yaml
  • /etc/netplan/*.yaml
  • /lib/netplan/*.yaml

查找现有 IP 配置

在更改 NetPlan 网络配置之前,了解现有接口配置是明智的。 NetPlan 本身不监视活动状态,而是我们使用 ip 命令来显示它。

user> ip a

输出应该类似于下面的屏幕截图,但请记住,每个网络接口可能因系统而异。

在此配置中,您将找到活动接口。在这种情况下,出于本教程的目的,我们正在寻找 eth0 配置。

更新配置

选择一个现有的 YAML 文件进行编辑或创建一个新文件并添加以下配置,并根据您的配置进行必要的修改。

此配置假定您使用的是静态 IP,并且 eth0 是您从上述 ip a 命令中了解到的主要接口。

network:
  version: 2
  ethernets:
    eth0:
			addresses:
        - 10.10.10.2/24
        gateway4: 10.10.10.1
      nameservers:
        addresses:
        - 1.1.1.1
        - 1.0.0.1
        - 2606:4700:4700::1111
        - 2606:4700:4700::1001
        search: []

此处使用的名称服务器是公共 Cloudflare 名称服务器,但请使用最适合您的名称服务器。还包括 IPv6 解析器。

如果要使用 DHCP,可以将 eth0 部分下的静态 IP 配置替换为 dhcp4: yes。

此外,如果您使用 DHCP,则需要为名称服务器设置覆盖。

dhcp4-overrides:
	use-dns: false

您可能会注意到地址列在 addresses 下方的列表中,但也可以在数组配置中定义这些地址。

addresses: [1.1.1.1, 1.0.0.1, "2606:4700:4700::1111", "2606:4700:4700::1001"]

渲染器

在某些配置中,您可能会看到列出的 renderer 配置。有两种可用类型:NetworkManager 和 networkd。默认情况下,使用 networkd。区别在于 NetworkManager 是 Ubuntu 使用的 GUI 管理器,而 networkd 是 Systemd 使用的。没有必要定义这个,因为默认配置在大多数情况下应该有效。

测试名称服务器更改

创建配置文件后,运行以下命令临时尝试新设置,如果配置错误则恢复。

如果出现故障,配置将在 120 秒后自动恢复。您可以打开第二个 shell 来测试应用时的任何配置。如果设置按预期工作,您可以按 Enter 键以保留这些设置,如果没有,则还原。这允许您修改配置直到它工作。

应用更改

最后,在确保更改准确无误后,需要应用更改。为此,请像这样运行 netplan apply 命令。

sudo netplan apply

如果接口只是切换名称服务器,则通常不需要重新启动。如果进行了较大的配置更改,则可能需要重新启动系统才能使更改生效。

启动和关闭接口

以前,ifconfig 用于打开和关闭接口。不过,如前所述,ip 命令正在取代 ifconfig。在下面的示例中,eth0 被关闭然后重新启动。

ip link set eth0 down
ip link set eth0 up

如果 eth0 是您唯一的接口,请注意不要在无法远程连接到系统的情况下关闭该接口。

调试 NetPlan

配置出错时会发生什么?有几种方法可以探索 NetPlan 配置并找出可能发生故障的位置。确定是否主动应用了正确配置的一种方法是验证在 /run/systemd/network 中生成的配置文件。例如,您可以导航到该目录并找到匹配的 *.network 配置文件,然后验证该配置是否符合您的预期。

另一个可以很好地验证生成的配置是否正确的命令是使用以下命令:

sudo netplan --debug generate

请记住,以下屏幕截图可能因您的配置而异。

结论

NetPlan 是对现有 Ubuntu 网络的重大改变,但它旨在简化和创建更灵活的配置。结合使用现有命令和新的 NetPlan 命令,我们可以快速创建和应用复杂的网络配置。

通过引入基于 YAML 的配置并通过 ip 命令更新功能,创建复杂的配置以处理最独特的情况比以往任何时候都容易。

©2015-2025 艾丽卡 support@alaica.com