安装完CentOS 7后,若安装时没有设置网络,并发现所在的网络没有DHCP Server时,则需要在控制台下,编辑/etc/sysconfig/network-script/ifcfg-en* 。本文除了介绍如何手动设置网络外,也介绍如何更改网络设备名称。
在安装套件时,如果选择了”Minimal Install”,ifconfig/netstat等常用网络工具不会被安装,用”nmcli c up ifname $interface”启用你的网络,然后再用yum安装”net-tools”。
一、“en*”这个名称是在CentOS 7的Kernel里预制的,这里要把他改成“ens160”。
[root@CentOS-7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 HWADDR=00:50:56:BE:48:0D TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=ens160 ONBOOT=no
“静态分配”设置项:
[root@CentOS-7 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens160 NAME=ens160 HWADDR=00:50:56:BE:48:0D ONBOOT=yes TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no IPADDR=172.21.102.109 PREFIX=24 # the GATEWAY is sometimes in: /etc/sysconfig/network GATEWAY=172.21.102.254 DNS1=8.8.8.8 DNS2=168.95.1.1
另外,通用项目如主机名称和DNS服务器可选择性地放置在:
[root@CentOS-7 ~]#cat /etc/sysconfig/network HOSTNAME=acme.example.com DNS1=10.16.1.112 DNS2=8.8.8.8 ## DNS2=76.242.0.28 SEARCH=example.com
二、使用传统名称 eth0,1,2…:
1.编辑 /etc/default/grub 将 “net.ifnames=0” 与 “net.ifnames=0” 加进GRUB_CMDLINE_LINUX后双引号内最后面。
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0" GRUB_DISABLE_RECOVERY="true"
2.然后运行以下命令来重新生成GRUB配置与更新的内核参数。
grub2-mkconfig -o /boot/grub2/grub.cfg
3.在 /etc/sysconfig/network-scripts/ 內把你的网卡设置名称改为ifcfg-ethX,并设置ifcfg-eth0 DEVICE=eth0
4.重启,就可以设置初始的网络名称。
三、如果你想设置网络设备名称,儿不是由系统的Kernel决定,则需要通过/etc/udev/rules.d/60-net.rules覆盖/usr/lib/udev/rules.d/60-net.rules
1.完成了上面的步骤,执行下面的命令:
[root@centos-7 ~]#cp -a /usr/lib/udev/rules.d/60-net.rules /etc/udev/rules.d/60-net.rules [root@centos-7 ~]#vi /etc/udev/rules.d/60-net.rules #ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result" ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:50:56:be:48:0d" , KERNEL=="eth*" , NAME="nic0" [root@centos-7 ~]#vi /etc/sysconfig/network-script/ifcfg-eth0 DEVICE=eth0 => DEVICE=nic0 [root@centos-7 ~]# reboot
如果网络配置(如,IPv4 setting,firewall rules)是基于旧名称(更改前),则需要更新的网络配置,以显示新更改的名称。