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

常见配置参数详解:

Copy.ai
Copy.ai

Copy.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
的命令行接口,它功能强大

相关专题

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

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

567

2023.11.27

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

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

220

2023.12.07

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

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

180

2023.12.04

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

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

279

2024.02.23

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

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

254

2025.06.11

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

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

121

2025.08.07

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

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

1023

2023.10.19

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

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

66

2025.10.17

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

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

精品课程

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

共28课时 | 4.5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

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

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