如何设置 DNS 和 resolv.conf 文件

如何设置 DNS 和 resolv.conf 文件

我已经使用 Ubuntu Server 18.04 几个星期了。有一段时间我的网络接口从未连接过。我最终得到了一个正确的 netplan YAML 文件设置。我现在可以从网络上的另一台计算机 ping 我的服务器 IP,而不是主机名,也可以 ping 外部 IP,而不是域名。如上所述,我无法使用任何域名。因此,像ping google.com和这样的操作sudo apt update都会失败。我相信这是一个 DNS 问题,但我不能 100% 确定。

的结果ping google.com

ping: google.com: Temporary failure in name resolution

的结果sudo apt update

 Err3: http://archive.ubuntu.com/ubuntu bionic InRelease
     Temporary failure in resolving 'archive.ubuntu.com'

更新时出现了一些错误,但它们都无法解析“archive.ubuntu.com”。

我的 netplan 文件是/etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s25:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.40/22]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.4.4, 8.8.8.8, 1.1.0.0, 1.1.1.1]

我看过很多帖子和文章谈论/etc/resolv.conf,但我的一直都不存在。如果我尝试cat输出内容,我会得到一个错误no such file or directory。我想这就是我的问题所在,但我对 Linux 网络的了解也不够,无法意识到问题所在。

有些人能够通过创建或修复指向 的符号链接来修复此问题/etc/resolv.conf。但是,他们使用了run/systemd/resolve/resolv.conf/run/resolvconf/resolv.conf和其他文件。这些文件/服务在我的计算机上不存在。我只有一个位于 下的与网络相关的文件/run/run/systemd/network/10-netplan-enp0s25.network它的内容是:

[Match]
Name=enp0s25

[Network]
LinkLocalAddressing=ipv6
Address=192.198.1.40/22
Gateway=192.168.1.1
DNS=8.8.4.4
DNS=8.8.8.8
DNS=1.1.0.0
DNS=1.1.1.1

/etc/resolv.conf我创建了一个从到 的符号链接/run/systemd/network/10-netplan-enp0s25.network。我的 内容resolv.conf与 完全相同10-netplan-enp0s25.network

我不知道还需要做什么才能配置我的机器。到目前为止,我找到的所有东西都很矛盾,而且没有帮助。


答案1

在 Ubuntu 18.04 系统上,/etc/resolv.conf应始终是 的符号链接/run/systemd/resolve/stub-resolv.conf,除非resolvconf安装了软件包(不推荐用于新系统),在这种情况下它应该是 的符号链接/run/resolvconf/resolv.conf。如果/run/systemd/resolve/stub-resolv.conf不存在,请检查systemd-resolved服务是否正在运行(systemctl status systemd-resolved)。如果它未处于活动状态,请启用并启动它(sudo systemctl enable systemd-resolved && sudo systemctl start systemd-resolved),这应该可以解决问题。

相关内容