虚拟机中设置Linux网络为静态IP踩过的坑

在公司使用虚拟机准备弄个linux集群测点东西,无奈ip一直变来变去,只好修改成固定的,中间走点弯路,做一下记录(我这一开始是NAT模式,dhcp自动获取ip,改的结果是NAT模式,static静态设置ip)。

1.查看虚拟机的网关

  • 依次点击虚拟机左上角的编辑——虚拟网络编辑器——NAT模式(注意:网络有桥接,NAT,host-only的连接方式,我这用的是NAT的)——NAT设置——点开的对话框中网关(自己也可以对这个网关修改),记下来等会用。
    这里写图片描述

    2.修改IP地址

    使用vim编辑器执行下面命令修改ip:
    1
    vim /etc/sysconfig/network-scripts/ifcfg-eth0

在打开的页面配置成这样(有的有双引号,有的无,没有关系)

1
2
3
4
5
6
7
8
9
10
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:F5:26:26"
BROADCAST=192.168.85.255
IPADDR=192.168.85.100
NETMASK=255.255.255.0
GATEWAY=192.168.85.1
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"

下面几项必须要配置,其它的使用默认即可。
BOOTPROTO=static 默认的是dhcp,这里用static,意思是使用静态ip。
NETMASK=255.255.255.0 子网掩码,配置成255.255.255.0就可以。
GATEWAY=192.168.85.1 网关地址,就是第一步我让记下的那个地址。
ONBOOT=yes 开机即使用这套配置
NM_CONTROLLED=no 不允许Network Manager管理网络(这里有坑,我下面会说)。

3.添加nameserver

在执行完上一步之后,我在网上搜到要通过以下方式再设置一下网关,按理说在上面配置完之后已经不需要了,我不太清楚这二者是否有必然的联系,如果你那里设置完不生效,也可以每一步都按我这来。

  • 设置网关

    1
    route add default gw 192.168.85.1
  • 添加nameserver

    1
    2
    3
    vi /etc/resolv.conf
    在文件末尾追加,这个ip就是上面的网关
    nameserver 192.168.85.1

4.不允许Network Manager管理网络

这里解释一下为什么第二步设置NM_CONTROLLED=no ,如果不设置这个,你会发现在你执行完service network restart 这条命令之后第三步设置的nameserver什么都没有了,导致无法联网,换言之,如果你让Network Manager管理网络了,则/etc/resolv.conf 文件每次重启都会被还原。现在可以执行

1
service network restart

重启网络服务,然后执行

1
ping baidu.com

测试配置结果。
彻底废掉Network Manager

1
chkconfig NetworkManager off

参考文档:http://blog.csdn.net/q_l_s/article/details/50729805

后记:
今天又发现一个问题,开机用xshell连不通虚拟机了,ping不通虚拟机,但是虚拟机里面的linux可以上网,也可以ping通我的window ip,搜索之后得出以下解决方案:因为公司网络我用的是自动获取ip,导致我今天来之后VMnet8 ip变成了其它的,与我设置的linux静态ip192.168.85.100不在同一个网段内,所以ping不通,将window电脑中VMnet8网卡的ip设置成固定ip,例如192.168.85.50即可,问题解决! 2017-12-08

刘俊重 wechat
欢迎关注我的微信公众号
坚持原创技术分享