VirtualBox 升级到6.0.4 后发现这个问题,Mac 主机网速很快,但虚拟机(ubuntu)里网络很慢,首先尝试多种不同的网络连接模式。
都不能解决,再回头调试,发现域名解析很慢,问题定位在 DNS 问题。ping 一下百度,15秒钟才通。
解决方法
网络择默认的 NAT 网络地址转换
关键的在主机使用 VBoxManage modifyvm
命令修改 natdnshostresolver
和 natdnsproxy
两个参数。
1
2
$ VBoxManage modifyvm "<VM name>" --natdnshostresolver1 on
$ VBoxManage modifyvm "<VM name>" --natdnsproxy1 on
<VM name>
是虚拟机名称,如下图的名称是 ubuntu-mini-go
这样虚拟机就可以使用主机的DNS,官方文档如下图:
1
2
3
--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”.
改变前后的变化:
1
2
3
4
5
$ time curl -s http://www.baidu.com > /dev/null
real 0m15.599s
user 0m0.012s
sys 0m0.000s
设置后正常:
1
2
3
4
5
$ time curl -s http://www.baidu.com > /dev/null
real 0m0.112s
user 0m0.007s
sys 0m0.006s
默认使用 127.0.0.53
作 DNS server
1
2
3
4
$ nslookup
> server
Default server: 127.0.0.53
Address: 127.0.0.53#53
参考:
- https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm-networking-nat
- https://superuser.com/questions/641933/how-to-get-virtualbox-vms-to-use-hosts-dns
本文网址: https://pylist.com/topic/175.html 转摘请注明来源