AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 453185
Accepted
Rudolf Vavruch
Rudolf Vavruch
Asked: 2012-11-29 12:45:46 +0800 CST2012-11-29 12:45:46 +0800 CST 2012-11-29 12:45:46 +0800 CST

Vagrant / VirtualBox DNS 10.0.2.3 不工作

  • 772

我正在运行全新安装的 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以便我可以进行配置。

domain-name-system
  • 3 3 个回答
  • 68763 Views

3 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2012-11-29T17:36:40+08:002012-11-29T17:36:40+08:00

    您可以通过以下两种方式之一解决此问题,这两种方式都在 VirtualBox 手册中:

    在 NAT 模式下启用 DNS 代理

    默认情况下,NAT 引擎为来宾提供与主机上配置的相同的 DNS 服务器。在某些情况下,可能需要对来宾隐藏 DNS 服务器 IP,例如当此信息可能由于 DHCP 租约到期而在主机上更改时。在这种情况下,您可以使用以下命令告诉 NAT 引擎充当 DNS 代理:

    VBoxManage modifyvm "VM name" --natdnsproxy1 on
    

    在 NAT 模式下使用主机的解析器作为 DNS 代理

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

    VBoxManage modifyvm "VM name" --natdnshostresolver1 on
    

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

    • 87
  2. JonTheNiceGuy
    2013-05-09T14:13:29+08:002013-05-09T14:13:29+08:00

    跟进https://serverfault.com/a/453260/14832,如果您使用的是第 2 版 Vagrantfile 配置格式,则开始的格式:

    Vagrant.configure("2") do |config|
    

    然后您可能想将其添加到该配置文件中:

    config.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    end
    

    如果你使用的是旧的配置格式,但使用的是 Vagrant 1.1+,你可以在文件末尾附加:

    Vagrant.configure("2") do |config|
      config.vm.provider :virtualbox do |vb|
        vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      end
    end
    
    • 77
  3. P Marecki
    2020-06-13T01:52:34+08:002020-06-13T01:52:34+08:00

    在我看来,对这个进行死灵法术,没有一个答案能说明这个问题的根本原因,这看起来很有趣。对于现代环境——这个问题也发生在 Debian 10 和 VirtualBox 6.0.14 上;在默认安装 Deb 10(无 GUI)后,使用一个“NAT”适配器(不是“NAT 网络”,而是默认的“NAT”),DNS 似乎一切正常。然后在更改/etc/network/interfaces(在这个发行版中似乎仍然相关)到静态 IP 时:

    #iface enp0s3 inet dhcp
    iface enp0s3 inet static
    address 10.0.2.15
    netmask 255.255.255.0
    gateway 10.0.2.2
    

    (注意10.0.2.15——VM 无论如何都会从 dhcp 获得),然后关闭/打开 VM,

    • DNS 不工作(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.3dhcp10.0.2.3

    (如果我知道如何在 上伪造dhcp请求,我会检查这个10.0.2.0/24;有人知道怎么做吗?)

    __

    对于那些确实想要将 IP 更改为静态(在“NAT”适配器中)的人来说,底线是:只需找到一种方法将其正确粘贴nameserver到/etc/resolv.conf(可以在某些初始化脚本启动后)。

    • 4

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve