![Hyper-V 中的 16.04 和 17.04 无法解析网络上的名称](https://linux22.com/image/1160990/Hyper-V%20%E4%B8%AD%E7%9A%84%2016.04%20%E5%92%8C%2017.04%20%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E5%90%8D%E7%A7%B0.png)
我正在使用 vagrant 进行开发,最近由于需要在 Windows 中开发 docker,因此不得不从 VirtualBox 切换到 Hyper-V。我已修改 vagrant 文件以使用 hyper-v 作为提供程序,这需要我将图像从 ubuntu/xenial64 切换到 generic/ubuntu1604。我已将盒子配置为使用 Hyper-V 交换机,该交换机配置为外部网络连接。当我启动我的虚拟机时,它无法解析任何网络名称(但它可以正常解析 google 或任何其他互联网名称)。我认为这可能是由于 Hyper-V 造成的,但具有相同设置的 Knoppix liveDVD 可以正常解析本地网络名称。我尝试了 17.04,遇到与 16.04 相同的问题。可以对网络配置进行哪些调整以使其正常工作?
更新:好的。看起来问题出在 /etc/resolv.conf 中。通过添加
nameserver 192.168.1.2 # my local dns
我可以访问主机。但是当我重新启动虚拟机时,这个文件似乎被重置了,我需要手动添加本地文件。Ubuntu 上执行此类操作的服务是什么?
答案1
好的。经过进一步挖掘,我发现 /etc/resolv.conf 由 resolvconf 服务维护,通过编辑 /etc/resolvconf/resolv.conf.d/ 下的文件,我可以永久地将信息添加到 /etc/resolv.conf
到今天结束时,我最终修改了 /etc/resolvconf/resolv.conf.d/head,将我的本地 dns 添加为第一个条目,并重新启动网络服务。