场景:最近遇到一个问题,当通过SecureCRT或Xshell等工具连接虚拟机的时候,往往过了一两天的时间之后就突然连不上了,于是直接通过虚拟机查看IP发现IP地址不是当初设置的IP了,原来我的网卡设置的是DHCP分配的IP地址,IP地址不固定。于是我通过新的IP地址重新连接,终于连上了,但是没过几天又连不上了。这种情况比较苦恼,毕竟我不能总是一直换IP吧。于是我把IP地址设置成静态IP,但之后又遇到了新的坑。
注意:环境基于Centos7
问题一:设置静态IP之后出现无法上网的情况
需要知道在设置静态IP之前是否能够上网,一般只要主机能够上网并且没有改过虚机的配置,基本上都能上网的。除非你用的不是原生镜像,而是别人改过的你直接拷贝过来的,可能出现无法直接ping通外网的情况。但一般都是配置的问题。
1.设置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把通过DHCP方式分配IP改为静态IP,也就是
将BOOTPROTO=dhcp改为BOOTPROTO=static
ONBOOT=yes表明开机自启动
设置为静态IP之后就需要指定IP
IPADDR为IP地址
NETMASK为子网掩码
GATEWAY为网关,注意,网关必须和虚机的网关地址一样,否则无法上网,毕竟我们只有这一条路走,对吧,网关可以在虚拟网络编辑器中找到
DNS就是DNS咯,随便哪个DNS服务器都可以,你也可以自己搭建一个,开心就好。但是要保证必须有DNS服务,并且是正常工作的。一般出现无法ping通外网的情况都是DNS的问题,DNS相当于导航,如果导航出了问题那就只能迷路了。
注意:设置完网卡信息后需要重启网卡服务
service network restart
查看IP信息
ifconfig或者hostname –I,可以看到,IP信息改了,并且已经可以通过工具连接了。
2.设置静态IP之后无法上网
每次改完IP之后我都出现了这种情况。和网上的一比设置的都一样,可以ping通网关和主机和同一网段的机器,但就是ping不通外网。
于是我直接ping百度的IP地址,可以ping通。。。
什么问题?网络是通的!
URL不同但是IP地址通,那不就是DNS出问题了吗
但是我已经设置了DNS了
于是继续pingDNS服务器
通的。。。但还是ping不通外网
再加一个DNS试试
发现竟然通了,是什么原因,把第一个DNS删了试试
把第一个DNS改成DNS1试试,结果还是通的。OK。
问题二:设置静态IP后出现两个IP地址
检查BOOTPROTO是否设置成static,,如果还是默认的DHCP,主机会继续为你分配IP地址,并且你设置的IP地址同样生效,所以会出现两个IP地址。如果改为static之后还有的话,在网卡配置信息后面加上NM_CONTROLLED=no
然后service network restart重启网络,就没有了。