如何在 20.04 中编辑 DNSname 以便我可以使用我的本地 DNS?

如何在 20.04 中编辑 DNSname 以便我可以使用我的本地 DNS?

我使用 Ubuntu 20.04 配置了两个本地 DNS,有时有效,有时无效

我使用 GUI 定义了我的本地 DNS: 在此处输入图片描述

为什么它有时有效,有时无效,在本地 DNS 一段时间后从解析器中消失。互联网速度很慢,出现超时,无法访问公共 DNS。然后出现下一个 DNSnames 服务器,这是我的本地 DNS。然后我就可以访问我的本地 URL。

执行时systemd-resolve --status | sed -n '/DNS Servers/,/^$/p'我得到:

DNS Servers: 10.0.2.3    
                      192.168.1.70
                      192.168.1.1 
          DNS Domain: ~.

但据我所知,我从未定义过 DNS 服务器 10.0.2.3。

有时,当我使用本地 DNS 时,一切都按预期运行。我可以使用以下命令进行检查:

resolvectl status

如果它返回(我删除了一些内容):

Link 2 (enp0s3)
      Current Scopes: DNS         
DefaultRoute setting: yes         
       LLMNR setting: yes         
MulticastDNS setting: no          
  DNSOverTLS setting: no          
      DNSSEC setting: no          
    DNSSEC supported: no          
  Current DNS Server: 192.168.1.70
         DNS Servers: 10.0.2.3    
                      192.168.1.70
                      192.168.1.1 
          DNS Domain: ~. 

因此,当前的 DNS 服务器:192.168.1.70 是想要的。但情况并非总是如此。我想让我的系统更稳定,它将始终使用 192.168.1.70

cat /run/systemd/resolve/resolv.conf我看到 10.0.2.3 确实已定义时。我无法(也不应该)编辑此文件,但可以编辑 /etc/resolv.conf。

查看时cat /etc/resolv.conf没有显示 DNS 服务器 10.0.2.3 但是确实显示nameserver 127.0.0.53并且我不应该编辑此文件。

这很奇怪。首先,从生成的文件中,我被指向一个用于生成该文件的文件,我应该编辑该文件。其次,该文件中提到了一个不同的 DNS 名称服务器,因此它似乎run/systemd/resolve/resolv.conf是从其他地方生成的。

根据https://askubuntu.com/tags/resolvconf/info是编辑 resolv.conf 的程序。所以我尝试使用它。

bernard@VBoxMain20:/etc$ resolvconf

Command 'resolvconf' not found, but can be installed with:

sudo apt install openresolv  # version 3.10.0-1, or
sudo apt install resolvconf  # version 1.82

bernard@VBoxMain20:/etc$ sudo apt install openresolv 

因此我执行了resolvconf但发现没有办法编辑 resolv.conf

我也尝试使用 Ubuntu 18.04+ 提供的 netplan,但没有成功。

我只想使用我在 GUI 中自己定义的 DNS 名称服务器,不做任何其他事情。我该怎么做?

答案1

愚蠢的问题:这个 VirtualBox 实例是否使用 NAT 网络?如果是,您有两个选择:

  1. 切换到“桥接网络”,这将导致虚拟机完全控制其网络资源
  2. 使用主机的解析器作为 DNS 代理。根据文档

为了解析网络名称,NAT 引擎的 DHCP 服务器提供了主机的已注册 DNS 服务器列表。如果出于某种原因您需要隐藏此 DNS 服务器列表并使用主机的解析器设置,从而强制 VirtualBox NAT 引擎拦截 DNS 请求并将其转发到主机的解析器,请使用以下命令:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

请注意,此设置类似于 DNS 代理模式,但是代理模式仅将 DNS 请求转发到适当的服务器,而解析器模式将解释 DNS 请求并使用主机的 DNS API 查询信息并将其返回给客户机。

我通常以桥接模式运行所有 VBox 实例,因为它可以避免此类问题。

希望这能满足您的需求

相关内容