出现这个现象的原因是dns服务器的设置出了问题。解决方法就是给虚拟机设置dns
参考了两篇博客
https://www.cnblogs.com/dylancao/p/9159536.html
这篇解释了为什么设置静态ip之后虚拟机就无法访问外网了。
其实是因为nat模式原来有一套默认的dns,但是在你配置新ip后,默认的就取消了,都需要你手动去配置dns。
https://www.cnblogs.com/breezey/p/9155988.html
这篇说清楚了ubuntu上面设置dns的方法。
最近使用了最新版的ubuntu 18.04运行一些服务,然后发现服务器经常出现网络不通的情况,主要是一些域名无法解析。
检查/etc/resolv.conf,发现之前修改的nameserver总是会被修改为127.0.0.53,无论是改成啥,过段时间,总会变回来。
查看/etc/resolv.conf这个文件的注释,发现开头就写着这么一行:
# This file is managed by man:systemd-resolved(8). Do not edit.
这说明这个文件是被
systemd-resolved
这个服务托管的。通过
netstat -tnpl| grep systemd-resolved
查看到这个服务是监听在53号端口上。查了下,这个服务的配置文件为
/etc/systemd/resolved.conf
,大致内容如下:[Resolve] DNS=1.1.1.1 1.0.0.1 #FallbackDNS= #Domains= LLMNR=no #MulticastDNS=no #DNSSEC=no #Cache=yes #DNSStubListener=yes
如果我们要想让
/etc/resolve.conf
文件里的配置生效,需要添加到systemd-resolved的这个配置文件里DNS
配置项(如上面的示例,已经完成修改),然后重启systemd-resolved服务即可。(service systemd-resolved restart)另一种更简单的办法是,我们直接停掉systemd-resolved服务,这样再修改
/etc/resolve.conf
就可以一直生效了。