6.1.2 将IP配置信息写入配置文件

上一小节讲到的ifconfig命令可以直接配置网卡IP,但是这属于一种动态的配置,所配置的信息只是保存在当前运行的内核中。一旦系统重启,这些信息将丢失。为了能在重启后依然生效,可以在相关的配置文件中保存这些信息,这样,系统重启后将从这些配置文件中读取出来。RedHat和CentOS系统的网络配置文件所处的目录为/etc/sysconfig/network-scripts/,eth0的配置文件为ifcfg-eth0,如果有第二块物理网卡,则配置文件为ifcfg-eth1,以此类推。

一直以来,书中用于演示的虚拟机的配置文件是安装系统时生成的,内容如下:


  1. [root@localhost network-scripts]# cat ifcfg-eth0
  2. # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  3. DEVICE=eth0
  4. BOOTPROTO=dhcp
  5. ONBOOT=yes

其中,DEVICE变量定义了设备的名称;BOOTPROTO变量定义了获取IP的方式,这里BOOTPROTO=dhcp的含义是:系统在启用这块网卡时,IP将会通过dhcp的方式获得;还有个可选的值是static,表示静态设置的IP;ONBOOT变量定义了启动时是否激活使用该设备,yes表示激活,no表示不激活。

为了静态化地为该系统配置一个IP(这里假设IP为192.168.159.129,子网掩码为255.255.255.0),将配置文件修改如下:


  1. [root@localhost network-scripts]# cat ifcfg-eth0
  2. # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  3. DEVICE=eth0
  4. BOOTPROTO=static
  5. ONBOOT=yes
  6. IPADDR=192.168.159.129
  7. NETMASK=255.255.255.0

修改完成后,如果要想立即生效,可以将端口先停用再启用,或者重启网络服务。虽然这两种方式的效果是一样的,但是在实际工作中也要注意,第一种方式是不能远程操作的,因为一旦网卡被关闭掉后远程连接就断开了,随后的启用命令也就无法输入了,所以这种方式只能在管理员可以物理地接触到服务器的时候使用(比如说你正坐在被操作的这台服务器面前,使用本地终端操作服务器而不是远程登录)。第二种方式虽然也经过了一次网络断开,但是该命令会在断开后立即启用网络,因此只需要使用新的IP重新连接就可以了。


  1. [root@localhost ]# ifconfig eth0 down
  2. [root@localhost ]# ifconfig eth0 up
  3. #
  4. 或者重启网络服务,也可以立即生效,推荐使用这种方式
  5. #[root@localhost ~]# service network restart