近因为学习Puppet,用虚拟机装了个CentOS,使用的NAT的网络模式,为了防止再次启动系统的时候网络IP发生变化,因此设置静态IP和DNS。
由于CentOS是最小化安装,没有ifconfig
命令,因此可以采用ip
命令查看。
查看IP分配情况:
# ip addr
- 1
发现里边只有一个LOOPBACK的127.0.0.1的回环地址,原来CentOS刚安装后默认是不启动网络连接的。
设置IP和DNS主要在下面的配置文件中修改:
# vi /etc/sysconfig/network-scripts/ifcfg-*
- 1
由于最小化安装没有vim,所以使用vi。具体的配置文件需要到network-scripts目录下看,通常是以ifcfg-
开头的,比如ifcfg-eth0
,我的是ifcfg-eno16777736
,对于我这种洁癖来说回头非得改了这个乱七八糟的名字,另一个ifcfg-lo
就是LOOPBACK网络咯。
# vi /etc/sysconfig/network-scripts/ifcfg-[tab两下]
ifcfg-eno16777736 ifcfg-lo
- 1
- 2
1. 编辑ifcfg-eno16777736
:
BOOTPROTO=static #dhcp改为static(修改)
ONBOOT=yes #开机启用本配置,一般在最后一行(修改)
IPADDR=192.168.1.204 #静态IP(增加)
GATEWAY=192.168.1.2 #默认网关,虚拟机安装的话,通常是2,也就是VMnet8的网关设置(增加)
NETMASK=255.255.255.0 #子网掩码(增加)
DNS1=192.168.1.2 #DNS 配置,虚拟机安装的话,DNS就网关就行,多个DNS网址的话再增加(增加)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2. 重启网络服务
# service network restart
- 1
3. 检查网络
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:58:14:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.1.204/24 brd 192.168.1.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe58:14ee/64 scope link
valid_lft forever preferred_lft forever
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
可以看到,eno16777736这个网络就起来了。
随便找个域名ping一下测试DNS是否OK:
出现的一些问题
linux 重启网卡 Device eth0 has different MAC address than expected, ignoring
原因:
这个提示是指网口的mac地址已经变化,但是设备名称没有变化,导致设备名称和mac地址无法匹配,linux无法挂载该网口。换种说法就是该网口的配置文件里的mac地址和该网口实际的mac地址不符合。、
如何解决
在文件中寻找 HWADDR= 这行,如果没有就新加一行。把这行后面的值改成第一步看到的mac地址值,例如 HWADDR="00:0C:29:2D:2D:CF",然后保存退出