DNS 不工作/如何确定哪个程序/服务正在定义网络配置?

DNS 不工作/如何确定哪个程序/服务正在定义网络配置?

我有一台客户端 ubuntu 18.04 PC,它已连接到互联网,但 DNS 不起作用。起初我以为我必须配置 netplan yaml 文件,我确实喜欢:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp2s0:
      dhcp4: no
      addresses: [10.246.5.248/24]
      gateway4: 10.246.5.254
      nameservers:
        addresses: [10.246.5.1, 127.0.0.53]
        search: [<my_domain_name>]

sudo netplan --debug apply没有返回任何错误并且我重新启动了网络管理器,但是无论我如何编辑 yaml 文件,网络配置都不会改变。

然后,按照答案这个问题,我从 yaml 文件中删除了以太网配置,编辑了我的 /etc/network/interfaces 并重新启动了网络管理器,但 IP 地址和名称服务器仍然没有发生任何变化。

然后,我尝试运行nm-connection-editor。那里没有列出任何接口,因此我尝试使用我的配置添加一个接口。即使重新启动网络管理器后,网络配置也没有变化。

我的 /etc/resolv.conf 文件有一个指向 /run/systemd/resolve/stub-resolv.conf 的符号链接。如果我使用 DNS 配置编辑存根,DNS 就会开始工作,但只能在我重新启动之前。

我是不是漏掉了什么?我猜是其他服务/程序正在更改 resolv.conf。我该如何确定是哪个服务/程序,并在那里配置我的 DNS?

答案1

答案已经在您发布的配置中了。

该行renderer: NetworkManager表示所有网络配置都将由 NetworkManager(系统上的配置实用程序)处理。您需要做的是删除为接口添加的附加 netplan 配置,并删除/etc/network/interfaces您可能已设置的任何配置,然后在 Network Manager 中配置您的网络接口。

DNS 由systemd-resolvedSystemD 处理,存根解析器项在那里很好。

systemd-resolve --status您可以通过运行并查找“DNS 服务器”行来获取您正在使用的当前 DNS 服务器。

答案2

假设这是一个桌面安装,而不是服务器安装...

撤消对 /etc/network/interfaces 所做的更改

编辑你的 netplan .yaml 使其看起来像这样:

network:
  version: 2
  renderer: NetworkManager

sudo netplan generate

sudo netplan apply

reboot

然后使用 NetworkManager GUI 为您的以太网接口配置固定地址。

以下是使用 nm-connection-editor 的示例(如果愿意,可以使用常规 NetworkManager GUI):

使用设备弹出窗口选择您的以太网 MAC 地址...

在此处输入图片描述

在此处输入图片描述

相关内容