我正在运行全新安装的 Linux Mint Nadia (14)。我正在按照 Vagrant Getting Started上的说明进行操作,但在Provisioning上遇到了困难。似乎 Vagrant 盒子无法连接到外部,所以我无法使用 Chef 或 Puppet 安装任何东西。
在基本的 Vagrantresolve.conf
中包含nameserver 10.0.2.3
. 但是用那个设置我不能 ping us.archive.ubuntu.com
。
如果我将其更改为8.8.8.8
然后我可以 pingus.archive.ubuntu.com
但它不会保持设置状态,并且在重新启动后它会变回10.0.2.3
- 因此配置再次失败。
理想情况下,我希望10.0.2.3
在我的设置上工作。如果失败,我想要一种永久更改的方法,resolv.conf
以便我可以进行配置。
您可以通过以下两种方式之一解决此问题,这两种方式都在 VirtualBox 手册中:
跟进https://serverfault.com/a/453260/14832,如果您使用的是第 2 版 Vagrantfile 配置格式,则开始的格式:
然后您可能想将其添加到该配置文件中:
如果你使用的是旧的配置格式,但使用的是 Vagrant 1.1+,你可以在文件末尾附加:
在我看来,对这个进行死灵法术,没有一个答案能说明这个问题的根本原因,这看起来很有趣。对于现代环境——这个问题也发生在 Debian 10 和 VirtualBox 6.0.14 上;在默认安装 Deb 10(无 GUI)后,使用一个“NAT”适配器(不是“NAT 网络”,而是默认的“NAT”),DNS 似乎一切正常。然后在更改
/etc/network/interfaces
(在这个发行版中似乎仍然相关)到静态 IP 时:(注意
10.0.2.15
——VM 无论如何都会从 dhcp 获得),然后关闭/打开 VM,host google.com
等,超时)telnet 10.0.2.3 53
(resolv.conf
有nameserver 10.0.2.3
,安装后默认)。如果我恢复
iface enp0s3 inet dhcp
并重新启动VM,DNS 和telnet 10.0.2.3 53
工作。现在它变得非常令人兴奋/奇怪:如果您再次尝试
inet static
并重新启动VM,DNS 和 telnet仍然可以正常工作;仅当您关闭/打开 VM(通过 virtualbox)时,才会10.0.2.3
消失。所以我目前的猜测是,VirtualBox在收到请求后会自动打开 DNS 服务器/代理;只要虚拟机没有断电(但可以重新启动),它就会一直存在。
10.0.2.3
dhcp
10.0.2.3
(如果我知道如何在 上伪造
dhcp
请求,我会检查这个10.0.2.0/24
;有人知道怎么做吗?)__
对于那些确实想要将 IP 更改为静态(在“NAT”适配器中)的人来说,底线是:只需找到一种方法将其正确粘贴
nameserver
到/etc/resolv.conf
(可以在某些初始化脚本启动后)。