Show Table of Contents
1.9. 使用 sysconfig 文件进行网络配置
配置文件和脚本保存在
/etc/sysconfig/
目录中。大多数网络配置信息都保存在这里,VPN、移动宽带及 PPPoE 配置除外,这些配置保存在 /etc/NetworkManager/
子目录中。例如:接口的具体信息是保存在 /etc/sysconfig/network-scripts/
目录下的 ifcfg
文件中。
全局设置使用
/etc/sysconfig/network
文件。有关 VPN、移动宽带及 PPPoE 连接的信息保存在 /etc/NetworkManager/system-connections/
中。
在 Red Hat Enterprise Linux 7 中编辑
ifcfg
文件时,NetworkManager 不会自动意识到更改,需为其提供通知。如果使用以下工具之一更新 NetworkManager 配置文件,则 NetworkManager 会在使用该配置文件重新连接后方可实施那些更改。例如:如果使用编辑器更改配置文件,则必须让 NetworkManager 重新读取该配置文件。方法是作为 root
运行以下命令:
~]# nmcli connection reload
上述命令会读取所有连接配置文件。另外也可以运行下面的命令,只重新载入那些有变化的文件 ifcfg-ifname
:
~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname
该命令接受多个文件名。这些命令需要 root
授权。有关用户授权及获取授权的信息,请查看《Red Hat Enterprise Linux 7 系统管理员》 及 su(1)
和 sudo(8)
man page。
可使用类似 nmcli 的工具做出更改,这些工具不要求断开关联接口连接,然后再重新连接。该命令的运行格式如下:
nmcli dev disconnect interface-name后接:
nmcli con up interface-name
NetworkManager 不会触发任何网络脚本,但在其运行时如果使用
ifup
命令,网络脚本会尝试启动 NetworkManager。有关网络脚本的说明,请查看 第 1.8 节 “NetworkManager 及网络脚本”。
ifup
脚本是一个通用脚本,可完成一些任务,并调用具体接口脚本,比如 ifup-ethX
、ifup-wireless
、ifup-ppp
等等。用户手动运行 ifup eth0
后:
ifup
会查找名为/etc/sysconfig/network-scripts/ifcfg-eth0
的文件;- 如果存在
ifcfg
文件,ifup
会在那个文件中查找TYPE
密钥,以确定要调用的脚本类型; ifup
根据TYPE
调用ifup-wireless
或ifup-eth
或ifup-XXX
;- 具体类型脚本执行具体类型设置;
- 然后具体类型脚本让通用功能执行与
IP
相关的任务,比如DHCP
或静态设置。
引导时,
/etc/init.d/network
会读取所有 ifcfg
文件,并检查每个包含 ONBOOT=yes
的文件,确定是否已在 ifcfg
列出的设备中启动 NetworkManager。如果 NetworkManager 正在启动或已经启动那个设备,则不需要对那个文件进行任何操作,然后检查下一个包含 ONBOOT=yes
的文件。如果 NetworkManager 尚未启动那个设备,则 initscripts 会继续采用传统方式运行,并为那个 ifcfg
文件调用 ifup
。
最终的结果是在系统启动后,会使用 NetworkManager 或 iniscripts 启动所有包含
ONBOOT=yes
的 ifcfg
文件。这样可保证在 NetworkManager 无法处理某些传统的网络类型时,比如 NetworkManager 不处理的类型(ISDN 或模拟拨号调制解调器),以及 NetworkManager 尚不支持的新应用程序时,仍可使用 initscripts 正常启动它们。
注意
建议不要在保存目前使用的
ifcfg
文件的同一位置保存其备份文件。该脚本会运行 ifcfg-*
,扩展名 .old
、.orig
、.rpmnew
、.rpmorig
和 .rpmsave
除外。最好是不要将备份文件保存在 /etc/
目录下。