3.5. 使用 ifcfg 文件配置 IP 网络
作为系统管理员,您可以通过编辑
ifcfg
文件手动配置网络接口。
接口配置(ifcfg)文件可控制不同网络设备的软件接口。当系统引导时,它使用这些文件来决定启动哪些界面以及如何进行配置。这些文件通常命名为
ifcfg-name ,后缀名称指的是配置文件控制的设备的名称
。按照惯例,ifcfg 文件的后缀与配置文件中
DEVICE 指令提供的字符串相同。
使用 ifcfg 文件配置带有静态网络设置的接口
例如,若要使用
ifcfg
文件配置带有静态网络设置的接口,请为名为 enp1s0
的接口,在 /etc/sysconfig/network -scripts/ 目录中创建一个名为 ifcfg-
enp1s0
的文件,该文件包含:
- 对于
IPv4
配置DEVICE=enp1s0 BOOTPROTO=none ONBOOT=yes PREFIX=24 IPADDR=10.0.1.27
- 对于
IPv6
配置DEVICE=enp1s0 BOOTPROTO=none ONBOOT=yes IPV6INIT=yes IPV6ADDR=2001:db8::2/48
您不需要指定网络或广播地址,因为这由 ipcalc 自动计算。更多IPv6
ifcfg 配置选项请查看 nm-settings-ifcfg-rh(5) man page。
重要
在 Red Hat Enterprise Linux 7 中,网络接口的命名规则已更改,如 第 11 章 一致的网络设备命名 中所述。使用HWADDR 指令指定硬件或 MAC 地址可能会影响设备命名过程。
使用 ifcfg 文件配置带有动态网络设置的接口
使用
ifcfg
文件配置名为 em1 的接口:
- 在
/etc/sysconfig/network-scripts/ 目录中创建一个名为 ifcfg-em1
DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes
- 要将接口配置为向
DHCP
服务器发送其他主机名,请在ifcfg
文件中添加以下行:DHCP_HOSTNAME=hostname
要将接口配置为将不同的完全限定域名(FQDN)发送到DHCP
服务器,请在ifcfg
文件中添加以下行:DHCP_FQDN=fully.qualified.domain.name
注意在给定的ifcfg
文件中只能使用一个指令(DHCP_HOSTNAME 或 DHCP_FQDN )。如果同时指定了 DHCP_HOSTNAME 和 DHCP_FQDN,则仅使用后者。 - 要将接口配置为使用特定的
DNS
服务器,请在ifcfg
文件中添加以下行:PEERDNS=no DNS1=ip-address DNS2=ip-address
其中 ip-address 是DNS
服务器的地址。这会导致网络服务使用指定的DNS
服务器更新/etc/resolv.conf
。只需要一个DNS
服务器地址,另一个是可选的。 - 要在
ifcfg
文件中配置静态路由,请参阅 第 4.5 节 “在 ifcfg 文件中配置静态路由”。默认情况下,当配置集被设置为通过在接口配置文件中将BOOTPROTO
设置为dhcp
来自动获取地址时,NetworkManager 会调用DHCP
客户端, dhclient。如果需要DHCP
,则会在接口上为每个互联网协议IPv4 和 IPv
启动 todhclient 实例。如果 NetworkManager 没有运行,或者未管理接口,则传统的网络服务将根据需要调用 fordhclient 实例。有关动态 IP 地址的详情,请参考 第 1.2 节 “静态与动态 IP 地址比较”。6
- 应用配置:
- 重新载入更新的连接文件:
# nmcli connection reload
- 重新激活连接:
# nmcli connection up connection_name
3.5.1. 使用 ifcfg 文件管理系统范围以及专用连接配置集
权限与
ifcfg
文件中的 USERS
指令对应。如果没有 USERS
指令,则网络配置文件将可供所有用户使用。例如,ifcfg 文件中的以下命令将仅使连接对列出的用户可用
: USERS="joe bob alice"
另外,您可以设置
USERCTL
指令来管理该设备:
- 如果您设置了 yes,则允许非
root
用户控制这个设备。 - 如果没有,则 不允许非
root
用户控制这个设备。