0

0

怎么改CentOS网卡_CentOS网卡配置修改与多网卡绑定教程

絕刀狂花

絕刀狂花

发布时间:2025-09-01 08:21:01

|

854人浏览过

|

来源于php中文网

原创

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

怎么改centos网卡_centos网卡配置修改与多网卡绑定教程

在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=Ethernet
    BOOTPROTO=static  # 设置为静态IP
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eth0
    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 每个网卡都有一个唯一的UUID
    DEVICE=eth0
    ONBOOT=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=bond0
    NAME=bond0
    TYPE=Bond
    BONDING_MASTER=yes
    BOOTPROTO=static
    IPADDR=192.168.1.200
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    ONBOOT=yes
    BONDING_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=Ethernet
    BOOTPROTO=none # 物理网卡本身不再获取IP
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    MASTER=bond0   # 指定主接口为bond0
    SLAVE=yes      # 标记为从属接口
    # UUID等其他行保持不变或删除IP相关配置

    对于

    ifcfg-eth1
    ,进行类似的修改:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

    修改为:

    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eth1
    DEVICE=eth1
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
  • 应用更改:

    sudo systemctl restart network
    # 或者
    sudo nmcli connection reload
    sudo nmcli connection up bond0

    验证Bonding状态:

    cat /proc/net/bonding/bond0

    这将显示Bonding模式、从属接口以及它们的状态(哪个是活动的,哪个是备用的)。

CentOS网卡配置文件详解与常见问题排查

理解CentOS网卡配置文件的每一个参数,对于进行精细化调整和故障排查至关重要。这些

ifcfg-
文件,在我看来,是系统网络配置的“基因组”,每一个字段都承载着特定的功能。

常见配置参数详解:

一帧秒创
一帧秒创

基于秒创AIGC引擎的AI内容生成平台,图文转视频,无需剪辑,一键成片,零门槛创作视频。

下载
  • 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
    的干扰,但会失去其便利性。

常见问题排查:

当网络配置出现问题时,我通常会从以下几个角度入手:

  1. 检查配置文件语法: 最常见的错误是配置文件中的拼写错误或格式问题。
    vi
    编辑器通常不会报错,所以要仔细核对。
  2. 网络服务状态:
    • sudo systemctl status network
      sudo systemctl status NetworkManager
      :查看网络服务的运行状态和日志,这往往能直接指出问题所在。
    • sudo journalctl -xe | grep -i network
      :更详细地查看系统日志中与网络相关的错误信息。
  3. IP地址冲突: 确保你配置的静态IP地址在网络中是唯一的,没有与其他设备冲突。
  4. 路由问题:
    • ip route show
      :检查默认网关和路由表是否正确。
    • ping <网关IP>
      :测试与网关的连通性。
    • ping 8.8.8.8
      :测试外部网络的连通性,同时检查DNS解析是否正常。
  5. 防火墙规则:
    • sudo systemctl status firewalld
      :如果
      firewalld
      正在运行,它可能会阻止某些流量。
    • sudo firewall-cmd --list-all
      :查看当前的防火墙规则。
    • 暂时禁用防火墙(仅用于测试,生产环境不推荐):
      sudo systemctl stop firewalld
  6. 网卡驱动问题: 少数情况下,可能是网卡驱动不兼容或未正确加载。
    • lspci -k | grep -EA3 'Ethernet|Network'
      :查看网卡及其正在使用的内核模块。
    • sudo dmesg | grep -i eth
      :查看启动时网卡相关的内核消息。
  7. 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
      类似,但对入站负载均衡也有需求。

最佳实践:

  1. 明确需求定模式: 如果只求高可用,
    mode=1
    是首选;如果追求最大带宽和智能管理,且交换机支持,
    mode=4
    是最佳。
  2. miimon
    参数:
    务必设置
    miimon
    参数(例如
    miimon=100
    ),它定义了Bonding驱动检查从属接口链路状态的频率(毫秒)。这对于快速检测链路故障至关重要。
  3. 交换机配置匹配: 特别是
    mode=0
    mode=4
    ,必须确保交换机的端口组配置与Bonding模式相匹配,否则可能导致网络不通或性能异常。
  4. MTU一致性: 绑定组内所有从属接口以及Bonding接口本身的MTU(最大传输单元)应保持一致,以避免网络碎片化和性能下降。
  5. 测试故障转移: 配置完成后,务必通过拔掉网线或禁用接口的方式,测试Bonding的故障转移功能是否按预期工作。
  6. 监控: 部署监控工具,持续关注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
的命令行接口,它功能强大

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

607

2023.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

236

2023.12.07

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

322

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

292

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

177

2025.08.07

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1923

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

656

2025.10.17

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 6.8万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号