![如何设置 DNS 和 resolv.conf 文件](https://linux22.com/image/913280/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20DNS%20%E5%92%8C%20resolv.conf%20%E6%96%87%E4%BB%B6.png)
我已经使用 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
),这应该可以解决问题。