VirtualBox 虚拟机里网络很慢的解决方法

VirtualBox 升级到6.0.4 后发现这个问题,Mac 主机网速很快,但虚拟机(ubuntu)里网络很慢,首先尝试多种不同的网络连接模式。

VirtualBox

都不能解决,再回头调试,发现域名解析很慢,问题定位在 DNS 问题。ping 一下百度,15秒钟才通。Goole 好久才解决。

网络择默认的 NAT 网络地址转换

NAT 网络地址转换

关键的在主机使用 VBoxManage modifyvm 命令修改 natdnshostresolvernatdnsproxy 两个参数。

$ VBoxManage modifyvm "<VM name>" --natdnshostresolver1 on
$ VBoxManage modifyvm "<VM name>" --natdnsproxy1 on

这样虚拟机就可以使用主机的DNS,官方文档如下图:

networking-nat

--natdnsproxy<1-N> on|off: Makes the NAT engine proxy all guest DNS requests to the host's DNS servers. See Section 9.10.5, “Enabling DNS Proxy in NAT Mode”.

--natdnshostresolver<1-N> on|off: Makes the NAT engine use the host's resolver mechanisms to handle DNS requests. See Section 9.10.5, “Enabling DNS Proxy in NAT Mode”.

改变前后的变化:

$ time curl -s http://www.baidu.com > /dev/null

real	0m15.599s
user	0m0.012s
sys	0m0.000s

设置后正常:

$ time curl -s http://www.baidu.com > /dev/null

real	0m0.112s
user	0m0.007s
sys	0m0.006s

默认使用 127.0.0.53 作DNS server

$ nslookup 
> server
Default server: 127.0.0.53
Address: 127.0.0.53#53

参考:

Relative Articles