HCRM博客

如何在CentOS 7中使用ifcfg命令配置网络接口?

CentOS 7 ifcfg 配置详解

背景介绍

如何在CentOS 7中使用ifcfg命令配置网络接口?-图1
(图片来源网络,侵权删除)

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 接口的配置文件:

如何在CentOS 7中使用ifcfg命令配置网络接口?-图2
(图片来源网络,侵权删除)
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

然后在文件中进行相应配置:

如何在CentOS 7中使用ifcfg命令配置网络接口?-图3
(图片来源网络,侵权删除)
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 文件中的语法正确,特别是参数名称和值的格式,可以使用vinano 编辑器的语法高亮功能帮助检查语法错误。

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

分享:
扫描分享到社交APP
上一篇
下一篇