Vagrant DNS

nslookup 花费 5 秒左右

解决方案:使用宿主机的 DNS。

原因分析:待研究。有可能跟这个问题相关(大概率不是)。

  • https://tencentcloudcontainerteam.github.io/2018/10/26/DNS-5-seconds-delay/
  • https://www.weave.works/blog/racy-conntrack-and-dns-lookup-timeouts

使用宿主机的 DNS

--natdnshostresolver1 开启。

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

修改 /etc/resolv.conf 无用

Vagrant 虚拟机中,/etc/resolv.conf 默认 dns 服务是 nameserver 10.0.2.3。 修改了 /etc/resolv.conf,并不会起到作用,甚至 10.0.2.3 都用不了。 这是因为 Vagrant 有 DNS proxy。 https://github.com/hashicorp/vagrant/blob/v2.2.7/plugins/providers/virtualbox/action/sane_defaults.rb#L68-L85

可以在 Vagrantfile 里设置 enable_dns_proxy=false,实际这个选项做了这些事,https://github.com/hashicorp/vagrant/blob/v2.2.7/plugins/providers/virtualbox/action/sane_defaults.rb#L25-L32