CentOS 7 ifcfg 配置详解
背景介绍
CentOS 7 是一款广泛使用的 Linux 发行版,其网络配置对系统管理员来说至关重要,在 CentOS 7 中,ifcfg
文件用于配置网络接口参数,包括 IP 地址、子网掩码、网关等,本文将详细讲解如何在 CentOS 7 中通过修改ifcfg
文件来进行网络配置。
1. ifcfg 文件
1 ifcfg 文件位置
在 CentOS 7 中,ifcfg
文件位于/etc/sysconfig/networkscripts/
目录下,每个网络接口对应一个配置文件,文件名通常为ifcfg接口名称
,例如ifcfgeth0
。
2 ifcfg 文件参数说明
配置参数 | 参数说明 |
TYPE | 配置文件接口类型 |
DEVICE | 设备名称 |
BOOTPROTO | 系统启动地址协议 |
ONBOOT | 系统启动时是否激活接口 |
IPADDR | IP地址 |
PREFIX | 网络地址的位数 |
GATEWAY | 网关地址 |
BROADCAST | 广播地址 |
DNS1, DNS2 | DNS服务器地址 |
2. 安装与配置 ifcfg 文件
1 安装 ifcfg 文件依赖包
CentOS 7 默认已包含ifcfg
文件所需的软件包,但若需额外安装或更新相关工具,可以使用以下命令:
sudo yum install networkscripts
2 编辑 ifcfg 文件
使用文本编辑器(如 vi 或 nano)编辑对应的 ifcfg 文件,编辑eth0
接口的配置文件:
sudo vim /etc/sysconfig/networkscripts/ifcfgeth0
3 ifcfg 文件配置示例
以下是一个典型的ifcfgeth0
配置文件示例:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stableprivacy NAME=eth0 UUID=d15dce0bc2f74dbd917254b526a5c2c8 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.3.12 GATEWAY=192.168.3.1 NETMASK=255.255.255.0 DNS1=114.114.114.114 DNS2=8.8.8.8
3. ifcfg 文件配置实例
1 静态 IP 配置
静态 IP 配置是最常见的网络配置方式,以下是一个静态 IP 配置的示例:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100/24 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEVICE=eth0 ONBOOT=yes
2 DHCP 动态 IP 配置
如果网络环境支持 DHCP,可以通过以下配置使网卡自动获取 IP 地址:
TYPE=Ethernet BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes
3 配置多个 IP 地址
在某些情况下,一个网络接口可能需要配置多个 IP 地址,可以通过添加:n
后缀来实现,
sudo vim /etc/sysconfig/networkscripts/ifcfgeth0:1
然后在文件中进行相应配置:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.101/24 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEVICE=eth0:1 ONBOOT=yes
4. ifcfg 文件高级配置
1 配置别名 IP 地址
别名 IP 地址用于在一个网络接口上配置多个 IP 地址,可以在主接口配置文件中添加:n
后缀来指定别名 IP,例如ifcfgeth0:1
。
2 配置 VLAN
VLAN(虚拟局域网)是一种通过逻辑方式对物理网络进行分割的技术,可以通过创建 VLAN 接口并配置相应的 ifcfg 文件来实现,创建一个 VLAN ID 为 100 的接口:
sudo vim /etc/sysconfig/networkscripts/ifcfgeth0.100
然后进行如下配置:
TYPE=Ethernet BOOTPROTO=static DEVICE=eth0.100 ONBOOT=yes VLAN=yes
3 配置链路聚合(Bonding)
链路聚合(Bonding)是一种将多个网络接口绑定在一起以增加带宽和提供冗余的技术,创建一个 bond 接口:
sudo vim /etc/sysconfig/networkscripts/ifcfgbond0
然后进行如下配置:
TYPE=Bond BOOTPROTO=static IPADDR=192.168.1.100/24 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEVICE=bond0 ONBOOT=yes
配置要绑定到 bond0 的物理接口,eth0 和 eth1:
sudo vim /etc/sysconfig/networkscripts/ifcfgeth0
TYPE=Ethernet BOND_MASTER=bond0 SLAVE=yes DEVICE=eth0 ONBOOT=yes
sudo vim /etc/sysconfig/networkscripts/ifcfgeth1
TYPE=Ethernet BOND_MASTER=bond0 SLAVE=yes DEVICE=eth1 ONBOOT=yes
5. ifcfg 文件常见问题及解决方法
1 ifcfg 文件修改后不生效
修改 ifcfg 文件后,需要重启网络服务或重新引导系统才能使更改生效:
sudo systemctl restart network
5.2 NetworkManager 服务冲突
CentOS 7 同时存在 NetworkManager 和 network 服务,两者可能存在冲突,如果发现网络配置不生效,可以尝试禁用 NetworkManager:
sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager
3 配置文件语法错误
确保 ifcfg 文件中的语法正确,特别是参数名称和值的格式,可以使用vi
或nano
编辑器的语法高亮功能帮助检查语法错误。
6. ifcfg 文件相关FAQs解答
Q1: ifcfg 文件中的BOOTPROTO
参数有哪些可选值?分别代表什么含义?
A1:BOOTPROTO
参数有以下几个常见可选值:
none
:不使用任何协议,通常用于回环接口。
bootp
:使用 Bootp 协议自动分配 IP 地址。
dhcp
:使用 DHCP 协议自动分配 IP 地址。
static
:使用静态 IP 地址配置。
这些参数指定了系统启动时如何获取网络配置。
Q2: 如何通过命令行临时启用或禁用网络接口?
A2: 可以通过ip
命令或ifdown
/ifup
命令来临时启用或禁用网络接口。
使用ip
命令启用网络接口:sudo ip link set dev eth0 up
使用ip
命令禁用网络接口:sudo ip link set dev eth0 down
使用ifdown
/ifup
命令启用网络接口:sudo ifup eth0
使用ifdown
/ifup
命令禁用网络接口:sudo ifdown eth0