当前位置: 首页 > news >正文

告别network-scripts!Rocky Linux 10.0双网卡配置实战(含DNS/网关设置)

Rocky Linux 10.0多网卡配置全指南:从基础到高可用实战

在服务器部署和集群管理的世界里,网络配置从来都不是一件简单的事。想象一下,当你正准备上线一个关键业务系统,却发现主网卡突然失效,整个系统陷入瘫痪;或者当你需要为不同服务分配独立网络通道时,却发现系统无法正确处理多网卡的路由规则。这些场景正是我们今天要解决的核心问题。

Rocky Linux作为RHEL的完美替代品,在10.0版本中对网络配置进行了重大革新。传统的network-scripts目录已成历史,取而代之的是更现代化的NetworkManager配置体系。本文将带你从零开始,不仅掌握基础IP配置,更要深入理解多网卡环境下的高级应用场景,包括主备切换、负载均衡以及生产环境中那些容易踩坑的细节。

1. 新网络配置体系解析

Rocky Linux 10.0的网络配置变革绝非简单的目录迁移,而是一次架构级的升级。传统的/etc/sysconfig/network-scripts/目录被彻底废弃,所有网络配置现在统一由NetworkManager管理,存储在/etc/NetworkManager/system-connections/目录下。这种变化带来了几个关键优势:

  • 配置一致性:所有网络接口使用相同的配置格式
  • 动态管理能力:支持运行时修改而不需要完全重启服务
  • 状态追踪:提供更详细的连接状态信息

要验证你的系统版本确实运行Rocky Linux 10.0,可以执行:

cat /etc/*-release | grep "Rocky Linux release"

查看当前网络接口信息的新标准命令是:

ip addr show

或者使用nmcli工具:

nmcli device show

2. 单网卡基础配置实战

让我们从最基本的单网卡配置开始。假设我们需要为ens160接口配置静态IP地址192.168.193.10/24,网关为192.168.193.2,DNS服务器使用192.168.193.2和114.114.114.114。

首先进入配置目录:

cd /etc/NetworkManager/system-connections/

编辑或创建ens160.nmconnection文件:

[connection] id=ens160 type=ethernet interface-name=ens160 [ipv4] address1=192.168.193.10/24,192.168.193.2 dns=192.168.193.2;114.114.114.114 method=manual [ipv6] method=disabled

关键配置项说明:

  • address1字段采用CIDR格式,IP和子网掩码合并表示(如/24表示255.255.255.0)
  • 网关与IP地址用逗号分隔
  • 多个DNS服务器用分号分隔
  • method设置为manual表示静态IP,auto则为DHCP

保存后应用配置:

nmcli connection reload nmcli connection up ens160

注意:直接使用systemctl restart NetworkManager可能会导致临时性网络中断,推荐优先使用nmcli命令

3. 双网卡高级配置方案

在生产环境中,单网卡往往意味着单点故障。我们将探讨三种典型的双网卡配置方案:主备模式、负载均衡模式以及多子网隔离模式。

3.1 主备模式(Active-Backup)

主备模式是最常见的高可用方案,备用网卡在主网卡失效时自动接管。配置要点在于为两个网卡创建独立的连接配置,然后通过路由规则确定优先级。

ens160.nmconnection(主网卡):

[connection] id=ens160-primary type=ethernet interface-name=ens160 [ipv4] address1=192.168.193.10/24,192.168.193.2 dns=192.168.193.2;114.114.114.114 method=manual

ens161.nmconnection(备用网卡):

[connection] id=ens161-backup type=ethernet interface-name=ens161 [ipv4] address1=192.168.193.11/24,192.168.193.2 method=manual route-metric=100

关键差异在于备用网卡设置了更高的route-metric值(默认主网卡为100,值越小优先级越高)。

3.2 负载均衡模式

对于高流量服务器,可以配置双网卡负载均衡。这需要内核支持bonding驱动:

modprobe bonding

创建bond0接口:

[connection] id=bond0 type=bond interface-name=bond0 [bond] mode=balance-rr miimon=100 [ipv4] address1=192.168.193.10/24,192.168.193.2 method=manual

然后将物理网卡加入bond组:

[connection] id=ens160-slave type=ethernet interface-name=ens160 master=bond0 slave-type=bond [connection] id=ens161-slave type=ethernet interface-name=ens161 master=bond0 slave-type=bond

3.3 多子网隔离模式

当需要将不同流量(如管理流量和数据流量)隔离时,可以为不同网卡配置不同子网:

ens160.nmconnection(管理网络):

[ipv4] address1=10.0.0.10/24,10.0.0.1 dns=10.0.0.1 method=manual route-table=100

ens161.nmconnection(数据网络):

[ipv4] address1=192.168.1.10/24 method=manual route-table=200

然后配置策略路由:

ip rule add from 10.0.0.10 lookup 100 ip rule add from 192.168.1.10 lookup 200

4. 常见问题排查与优化

即使按照最佳实践配置,生产环境中仍可能遇到各种网络问题。以下是几个典型场景的解决方案。

4.1 NetworkManager服务重启失败

当修改配置后NetworkManager无法正常重启时,可以按以下步骤排查:

  1. 检查配置语法:
nmcli connection reload nmcli connection show ens160 | grep -i error
  1. 查看日志信息:
journalctl -u NetworkManager --since "5 minutes ago"
  1. 回退到上一个可用配置:
nmcli connection load /etc/NetworkManager/system-connections/ens160.nmconnection nmcli connection up ens160

4.2 多DNS服务器失效

当配置了多个DNS服务器但解析失败时,检查:

  • 分隔符必须使用分号(;),不是逗号
  • 确保DNS服务器可达:
ping -c 3 192.168.193.2 dig @192.168.193.2 google.com
  • 查看当前生效的DNS配置:
nmcli dev show | grep DNS

4.3 路由表混乱

在多网卡环境中,路由表可能变得复杂。关键诊断命令:

查看完整路由表:

ip route show

检查特定目标的路由路径:

ip route get 8.8.8.8

临时添加测试路由:

ip route add default via 192.168.193.1 dev ens160 metric 50

5. 生产环境最佳实践

基于大量实际部署经验,我们总结了以下Rocky Linux网络配置黄金法则:

  1. 配置备份策略

    • 定期备份/etc/NetworkManager/system-connections/目录
    • 使用版本控制系统管理网络配置变更
  2. 文档化标准

    • 为每个接口添加描述注释:
[connection] id=ens160-production description=Primary network for database traffic
  1. 性能调优参数
    • 调整TCP缓冲区大小:
echo 'net.ipv4.tcp_rmem = 4096 87380 16777216' >> /etc/sysctl.conf echo 'net.ipv4.tcp_wmem = 4096 65536 16777216' >> /etc/sysctl.conf sysctl -p
  1. 监控指标
    • 关键监控项包括:
      • 网卡丢包率
      • 链路状态变更次数
      • DNS解析延迟
# 示例监控命令 ethtool -S ens160 | grep errors nmcli general logging level DEBUG domains ALL
  1. 安全加固
    • 禁用不必要的IPv6:
[ipv6] method=disabled
  • 限制NetworkManager权限:
chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
http://www.jsqmd.com/news/496373/

相关文章:

  • Python贝叶斯优化实战:用bayesian-optimization包优化你的机器学习模型超参数
  • 2026安全生产行业应急预案优质推荐榜:综合应急预案演练公司、自然灾害应急演练、交通事故应急演练公司、公共卫生事件应急演练选择指南 - 优质品牌商家
  • KingbaseES+MyBatis-Plus电商项目避坑指南:从数据库设计到秒杀实现的5个关键决策
  • PCIe热插拔避坑指南:从内核日志分析枚举失败常见原因(附诊断命令)
  • 2026西安极简实木整装趋势洞察与顶尖服务商深度评测 - 2026年企业推荐榜
  • ZYNQ开发板实战:如何用DP83640 PHY芯片快速实现IEEE1588/PTP协议(附完整代码)
  • 基于PHP的微信AI智能客服系统源码,完美集成企业微信,支持多媒体交互
  • 用Arduino制作智能交通灯:如何通过按钮控制行人过街时间?
  • Qwen3-Reranker-0.6B入门必看:与bge-reranker-base、cohere-rerank对比选型指南
  • SGLang部署Qwen3-Embedding-0.6B常见问题全解析,小白也能轻松上手
  • cv_resnet101_face-detection_cvpr22papermogface实际效果:数字孪生展厅中访客人脸位置热力图生成
  • 5维文献状态管理:让学术阅读效率提升300%的Zotero插件
  • ArcGIS地图可视化进阶:圆形标注的5种创意应用场景
  • 电商风控避坑指南:从dami商城5.4漏洞看订单金额篡改的5种防御策略
  • 墨语灵犀快速部署:腾讯云TI-ONE平台一键拉起墨语灵犀Hunyuan-MT实例
  • STM32驱动WS2812B多屏拼接:从坐标映射到动态显示
  • CentOS 7 内核升级实战:从ELRepo到手动安装的完整指南
  • MATLAB信号处理实战:两种高效去除直流分量的技巧对比
  • 5分钟搭建人脸识别系统:Retinaface+CurricularFace镜像实战教程
  • Python实战:如何高效实现相位解卷绕(unwrap)算法
  • SpringBoot整合Quartz(v2.3.2)定时任务不执行?5个排查思路与解决方案
  • B站API风控开发者突围指南:从原理到实战的全方位突破
  • US-016模拟量超声波传感器STM32F1驱动移植与测距实战
  • PyTorch实战:从零开始手写BatchNorm2d,彻底搞懂BN层计算细节
  • STM32编码器读取实战:外部中断VS定时器模式,哪种更适合你的项目?
  • 上半年永辉超市卡回收价格变化(附价格表) - 淘淘收小程序
  • 【MCP 2.0安全协议权威解读】:20年协议安全专家亲授7大高危漏洞识别与防御黄金法则
  • 从AUC到PCOC:广告点击率预估中的模型校准全流程解析(附Python代码示例)
  • 从老虎机到推荐系统:epsilon-Greedy算法的实战调优指南(附代码)
  • Carla自动驾驶仿真快速上手指南:5分钟搞定预编译版+SUMO联合仿真