virtualbox:--natdnsproxy1 和--natdnshostresolver1 有啥区别?

Posted

技术标签:

【中文标题】virtualbox:--natdnsproxy1 和--natdnshostresolver1 有啥区别?【英文标题】:virtualbox: what is the difference of --natdnsproxy1 and --natdnshostresolver1?virtualbox:--natdnsproxy1 和--natdnshostresolver1 有什么区别? 【发布时间】:2018-12-06 05:21:07 【问题描述】:

virtualbox 文档没有解释清楚。

https://www.virtualbox.org/manual/ch09.html

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

VBoxManage modifyvm "VM name" --natdnsproxy1 on

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

VBoxManage modifyvm "VM name" --natdnshostresolver1 on 注意这个 设置类似于 DNS 代理模式,但是代理 模式只是将 DNS 请求转发到相应的服务器, 解析器模式将解释 DNS 请求并使用主机的 DNS API查询信息并返回给客人。

谁能真正理解其中的区别?

编辑:需要一个实际的例子。

【问题讨论】:

【参考方案1】:

如果启用了 NAT 类型网络适配器的 natdnsproxy 选项,VirtualBox 的 NAT 网关将接受来自访客的 DNS 流量并将其转发到主机使用的解析器。它将仅充当网络层代理。只有发送到网关 IP 的 DNS 流量会被重定向,它不会拦截发送到其他 IP 的 DNS 流量。确保您的访客使用您的网关 IP(例如 10.0.2.2)作为解析器(如果您的访客使用 DHCP,这应该可以直接使用)。

natdnshostresolver 选项类似——它会导致 NAT 网关也接受 DNS 流量——但网关会读取(即解析)查询并使用主机的操作系统 API 来解决它。在 Linux 上,这将是 getaddrinfo()。恕我直言,这是首选选项。

数字(1)指的是网络适配器,可以互换。 --natdnshostresolver2 on 将启用给定 VM 的第二个接口的选项。

【讨论】:

以上是关于virtualbox:--natdnsproxy1 和--natdnshostresolver1 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins / Vagrant / VirtualBox - Virtualbox 以系统用户身份运行?

在VirtualBox中的CentOS 6.3下安装VirtualBox增强包

virtualbox 安装扩展包 VirtualBox Extension Pack

打开 VirtualBox-5.2 出错:获取 VirtualBox COM 对象失败

VirtualBox + vagrant

手把手教你VirtualBox安装Centos,全网最全教程