修改CentOS网卡配置需编辑/etc/sysconfig/network-scripts/下的ifcfg-文件,如ifcfg-eth0,设置静态IP或DHCP;对于多网卡绑定,需创建ifcfg-bond0并配置BONDING_OPTS,将物理网卡设为从属接口,最后重启网络服务生效。

在CentOS系统中,修改网卡配置的核心操作是编辑位于
/etc/sysconfig/network-scripts/
目录下的
ifcfg-
文件,例如
ifcfg-eth0
或
ifcfg-enpXsY
,然后通过重启网络服务或特定的网卡接口来应用更改。对于多网卡绑定(Bonding),则需要创建新的
ifcfg-bond0
配置文件,并相应地修改物理网卡的配置,将它们设定为Bonding接口的从属设备,以实现网络冗余或带宽聚合。
解决方案
修改CentOS网卡配置通常涉及几个步骤,这取决于你是要配置单网卡,还是进行多网卡绑定。在我看来,直接编辑配置文件是最直接也最能理解其原理的方式,尽管图形界面工具也很方便。
1. 单网卡配置修改
首先,我们需要找到要修改的网卡配置文件。通常,它们位于
/etc/sysconfig/network-scripts/
目录下,命名格式为
ifcfg-
加上网卡名称,比如
ifcfg-eth0
或
ifcfg-enp0s3
。
静态IP配置示例:假设我们要将
eth0
配置为静态IP地址。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
文件内容大致会是这样,你需要根据实际情况修改或添加:
TYPE=EthernetBOOTPROTO=static # 设置为静态IPDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=eth0UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 每个网卡都有一个唯一的UUIDDEVICE=eth0ONBOOT=yes # 系统启动时激活网卡IPADDR=192.168.1.100 # 你的IP地址NETMASK=255.255.255.0 # 子网掩码GATEWAY=192.168.1.1 # 网关DNS1=8.8.8.8 # 首选DNS服务器DNS2=8.8.4.4 # 备用DNS服务器
如果想使用DHCP,只需将
BOOTPROTO=static
改为
BOOTPROTO=dhcp
,并删除
IPADDR
、
NETMASK
、
GATEWAY
和
DNS
相关的行即可。
应用更改:修改完配置文件后,需要重启网络服务或仅重启该网卡。对于CentOS 7/8,通常使用
NetworkManager
或
network
服务:
sudo systemctl restart network # 如果使用传统的network服务# 或者sudo nmcli connection reload # 重新加载NetworkManager配置sudo nmcli connection up eth0 # 激活eth0连接
检查网络状态:
ip a
或
ifconfig
(如果已安装)。
2. 多网卡绑定(Bonding)配置
多网卡绑定能提供冗余或增加带宽,这在服务器环境中非常常见。我个人偏爱
active-backup
模式,因为它配置简单,且能有效防止单点故障。
加载Bonding模块:首先确保Bonding模块已加载。
sudo modprobe bonding
为了让它在系统重启后依然生效,需要将其添加到模块加载配置中:
echo "bonding" | sudo tee /etc/modules-load.d/bonding.conf
创建Bonding接口配置文件:创建一个名为
ifcfg-bond0
的新文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-bond0
文件内容示例(以
mode=1
,即
active-backup
为例):
DEVICE=bond0NAME=bond0TYPE=BondBONDING_MASTER=yesBOOTPROTO=staticIPADDR=192.168.1.200NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8ONBOOT=yesBONDING_OPTS="mode=1 miimon=100" # mode=1表示active-backup,miimon=100表示每100ms检查一次链路状态
BONDING_OPTS
是关键,它定义了Bonding模式和其他参数。
修改物理网卡配置文件:将需要绑定的物理网卡(如
eth0
和
eth1
)配置为
bond0
的从属接口。对于
ifcfg-eth0
:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改为:
TYPE=EthernetBOOTPROTO=none # 物理网卡本身不再获取IPNAME=eth0DEVICE=eth0ONBOOT=yesMASTER=bond0 # 指定主接口为bond0SLAVE=yes # 标记为从属接口# UUID等其他行保持不变或删除IP相关配置
对于
ifcfg-eth1
,进行类似的修改:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
修改为:
TYPE=EthernetBOOTPROTO=noneNAME=eth1DEVICE=eth1ONBOOT=yesMASTER=bond0SLAVE=yes
应用更改:
sudo systemctl restart network# 或者sudo nmcli connection reloadsudo nmcli connection up bond0
验证Bonding状态:
cat /proc/net/bonding/bond0
这将显示Bonding模式、从属接口以及它们的状态(哪个是活动的,哪个是备用的)。
CentOS网卡配置文件详解与常见问题排查
理解CentOS网卡配置文件的每一个参数,对于进行精细化调整和故障排查至关重要。这些
ifcfg-
文件,在我看来,是系统网络配置的“基因组”,每一个字段都承载着特定的功能。
常见配置参数详解:
图改改
在线修改图片文字
455 查看详情
TYPE
: 定义接口类型,如
Ethernet
、
Bridge
、
Bond
等。对于物理网卡,通常是
Ethernet
。
DEVICE
: 指定设备名称,如
eth0
、
enp0s3
、
bond0
。
NAME
: 连接名称,
NetworkManager
使用此名称。通常与
DEVICE
相同。
UUID
: 设备的唯一标识符,
NetworkManager
用来识别连接。通常无需手动修改。
ONBOOT
: 设置为
yes
表示系统启动时激活此接口;
no
则不激活。
BOOTPROTO
: 引导协议。
none
:不使用任何协议,通常用于从属接口或需要手动配置的情况。
static
:静态IP配置。
dhcp
:通过DHCP服务器获取IP地址。
IPADDR
: 静态IP地址。
NETMASK
: 子网掩码。
PREFIX
: CIDR格式的子网掩码,例如
PREFIX=24
等同于
NETMASK=255.255.255.0
。与
NETMASK
二选一。
GATEWAY
: 默认网关。
DNS1
,
DNS2
: DNS服务器地址。
MASTER
,
SLAVE
: 用于Bonding或Bridge配置,
MASTER
指向主接口,
SLAVE=yes
表示当前接口是从属接口。
BONDING_OPTS
: Bond接口的特定选项,如
mode
、
miimon
等。
NM_CONTROLLED
:
yes
或
no
,表示该接口是否由
NetworkManager
管理。设置为
no
可以避免
NetworkManager
的干扰,但会失去其便利性。
常见问题排查:
当网络配置出现问题时,我通常会从以下几个角度入手:
检查配置文件语法: 最常见的错误是配置文件中的拼写错误或格式问题。
vi
编辑器通常不会报错,所以要仔细核对。网络服务状态:
sudo systemctl status network
或
sudo systemctl status NetworkManager
:查看网络服务的运行状态和日志,这往往能直接指出问题所在。
sudo journalctl -xe | grep -i network
:更详细地查看系统日志中与网络相关的错误信息。IP地址冲突: 确保你配置的静态IP地址在网络中是唯一的,没有与其他设备冲突。路由问题:
ip route show
:检查默认网关和路由表是否正确。
ping
:测试与网关的连通性。
ping 8.8.8.8
:测试外部网络的连通性,同时检查DNS解析是否正常。防火墙规则:
sudo systemctl status firewalld
:如果
firewalld
正在运行,它可能会阻止某些流量。
sudo firewall-cmd --list-all
:查看当前的防火墙规则。暂时禁用防火墙(仅用于测试,生产环境不推荐):
sudo systemctl stop firewalld
。网卡驱动问题: 少数情况下,可能是网卡驱动不兼容或未正确加载。
lspci -k | grep -EA3 'Ethernet|Network'
:查看网卡及其正在使用的内核模块。
sudo dmesg | grep -i eth
:查看启动时网卡相关的内核消息。
NetworkManager
与
network
服务冲突: 在某些旧版本的CentOS或特定配置下,这两个服务可能会相互干扰。通常建议只启用其中一个来管理网络。
深入理解多网卡绑定(Bonding)模式选择与最佳实践
Bonding不仅仅是简单的聚合,其内部的模式选择直接决定了你的网络性能、冗余能力和实现复杂度。在我多年的实践中,选择合适的Bonding模式是确保高可用性和性能的关键。
Bonding模式详解:
mode=0
(balance-rr / Round-robin):
特点:按顺序在每个从属接口上传输数据包,实现负载均衡。优点:提供最大吞吐量,能将带宽叠加。缺点:不提供故障转移,如果其中一个链路断开,连接可能会中断。需要交换机支持链路聚合(LACP或静态聚合)。适用场景:对吞吐量要求极高的应用,且交换机支持聚合。
mode=1
(active-backup):
特点:只有一个从属接口处于活动状态,其他接口作为备份。当活动接口故障时,备份接口接管。优点:提供高可用性,配置简单,不需要特殊的交换机配置。缺点:带宽不叠加,始终只有一个接口在工作。适用场景:对可靠性要求高,但对带宽叠加无强烈需求的环境。这是我个人最常推荐的模式,因为它兼顾了稳定和简单。
mode=2
(balance-xor):
特点:基于源MAC地址、目标MAC地址或IP地址的异或运算来选择传输接口。优点:在一定程度上实现负载均衡,提供故障转移。缺点:负载均衡效果不如
mode=0
和
mode=4
理想,可能出现某个链路负载过高的情况。适用场景:需要一定负载均衡,但交换机不支持LACP的场景。
mode=3
(broadcast):
特点:在所有从属接口上广播所有数据包。优点:提供最大程度的容错,但通常不实用。缺点:带宽利用率极低,网络流量巨大,可能造成网络拥塞。适用场景:特殊需求,如某些旧式网络设备或诊断。
mode=4
(802.3ad / LACP):
特点:基于IEEE 802.3ad标准,通过LACP协议与交换机协商,动态地聚合多个链路。优点:提供先进的负载均衡和故障转移,带宽叠加,智能识别链路状态。缺点:需要交换机支持LACP协议并进行相应配置,配置相对复杂。适用场景:企业级数据中心,对性能和高可用性都有严格要求的环境。
mode=5
(tlb / Adaptive Transmit Load Balancing):
特点:基于当前接口的负载情况进行出站流量的负载均衡,入站流量由单个活动接口处理。优点:无需交换机支持,提供负载均衡。缺点:入站流量仍受限于单个接口。适用场景:当交换机不支持LACP,但需要一定程度的负载均衡时。
mode=6
(alb / Adaptive Load Balancing):
特点:在
mode=5
的基础上,增加了入站流量的负载均衡(通过ARP欺骗实现)。优点:无需交换机支持,提供全面的负载均衡。缺点:配置相对复杂,可能与某些网络设备不兼容。适用场景:与
mode=5
类似,但对入站负载均衡也有需求。
最佳实践:
明确需求定模式: 如果只求高可用,
mode=1
是首选;如果追求最大带宽和智能管理,且交换机支持,
mode=4
是最佳。
miimon
参数: 务必设置
miimon
参数(例如
miimon=100
),它定义了Bonding驱动检查从属接口链路状态的频率(毫秒)。这对于快速检测链路故障至关重要。交换机配置匹配: 特别是
mode=0
和
mode=4
,必须确保交换机的端口组配置与Bonding模式相匹配,否则可能导致网络不通或性能异常。MTU一致性: 绑定组内所有从属接口以及Bonding接口本身的MTU(最大传输单元)应保持一致,以避免网络碎片化和性能下降。测试故障转移: 配置完成后,务必通过拔掉网线或禁用接口的方式,测试Bonding的故障转移功能是否按预期工作。监控: 部署监控工具,持续关注Bonding接口的状态和性能,
cat /proc/net/bonding/bond0
是一个很好的起点。
结合nmcli与nmtui工具,高效管理CentOS网络配置
虽然直接编辑配置文件能让我们深入理解网络配置的底层逻辑,但在日常管理中,
nmcli
和
nmtui
这两个工具无疑是效率的利器,尤其是在
NetworkManager
作为默认网络管理服务的CentOS 7/8中。它们提供了一种更现代化、更友好的交互方式。
nmtui
:图形化文本界面,快速上手
nmtui
(NetworkManager Text User Interface)是一个基于文本的图形化界面工具,非常适合那些不习惯命令行参数或需要快速进行网络配置的场景。它的交互式菜单,在我看来,大大降低了配置错误的风险。
启动
nmtui
:
sudo nmtui
启动后,你会看到一个主菜单,包含“Edit a connection”、“Activate a connection”、“Set system hostname”等选项。
编辑连接:选择“Edit a connection”,然后选择你想要修改的网卡连接(例如
eth0
或
bond0
),按下回车。在这里,你可以直观地修改IP地址、子网掩码、网关、DNS服务器,以及设置是否自动启动(
Automatically connect
)。对于Bonding,你也可以在这里添加或修改从属接口。修改完成后,选择“OK”,然后回到主菜单,选择“Activate a connection”来激活你修改的连接。
nmcli
:命令行工具,强大且可脚本化
nmcli
(NetworkManager Command Line Interface)是
NetworkManager
的命令行接口,它功能强大
以上就是怎么改CentOS网卡_CentOS网卡配置修改与多网卡绑定教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/347752.html
微信扫一扫
支付宝扫一扫