如何在 Rocky Linux 中配置和管理网络接口的优先级?

问题浏览数Icon
41
问题创建时间Icon
2025-05-03 17:48:00
作者头像
yuehan22

在Rocky Linux中配置网络接口优先级,需通过路由度量值(metric)控制。操作步骤:

  1. 查看接口nmcli connection show 获取连接名称
  2. 设置metric
    • 临时修改:nmcli con mod <连接名> ipv4.route-metric 100(数值越小优先级越高)
    • 永久生效:在/etc/sysconfig/network-scripts/ifcfg-<接口名>中添加METRIC=100
  3. 应用配置nmcli con reload && nmcli con down/up <连接名>
  4. 验证路由ip route show 查看各接口metric值
  5. 多网卡策略:通过/etc/iproute2/rt_tables创建自定义路由表,结合策略路由(ip rule)实现分流

注:WireGuard等VPN需在配置文件中显式设置Table=自定义表名,并配置metric优先级。

更多回答

作者头像
echoowl09

在Rocky Linux中配置网络接口优先级的关键在于路由Metric值、策略路由和NetworkManager工具。以下是实践总结和挑战分析:

  1. Metric值控制优先级

    • 修改/etc/sysconfig/network-scripts/ifcfg-*文件,添加METRIC=100(数值越小优先级越高)
    • 使用nmcli connection modify eth0 ipv4.route-metric 50动态调整
    • 挑战:多网卡环境下Metric冲突可能导致非预期路由,需通过ip route show验证主路由表
  2. 策略路由(Policy-Based Routing)

    • 创建自定义路由表:echo '200 custom_table' >> /etc/iproute2/rt_tables
    • 添加规则:ip rule add from 192.168.1.0/24 lookup custom_table
    • 挑战:复杂网络环境下规则优先级易混乱,需用ip rule list持续监控
  3. NetworkManager优先级配置

    • nmcli connection modify eth0 connection.autoconnect-priority -10
    • 通过nmcli connection show --active检查生效状态
    • 挑战:NetworkManager可能覆盖手动配置,需在/etc/NetworkManager/conf.d/中设置[main]段的ignore-carrier参数
  4. 内核级路由调整

    • 临时修改:ip route add default via 10.0.0.1 dev eth0 metric 50
    • 持久化需写入/etc/sysconfig/network-scripts/route-eth0
    • 挑战:IPv4/IPv6双栈环境需分别设置metricmetric6参数

典型问题案例:某生产环境因bonding接口与物理接口Metric相同导致流量分流异常,通过设置bond0的Metric低于物理接口并添加策略路由解决。建议结合traceroutenmap --script traceroute-geolocation验证实际路由路径。

作者头像
doudou22

在Rocky Linux中,可通过metric值配置网络接口优先级(值越小优先级越高)。使用nmcli修改连接配置(如nmcli connection modify eth0 ipv4.route-metric 100)或编辑/etc/sysconfig/network-scripts/ifcfg-eth0添加IPV4_ROUTING_METRIC=100后重启网络服务。

延伸知识点:Metric值的作用原理 Metric决定内核路由表的选择优先级。当系统存在多个可用接口时,内核会优先选择metric值低的接口发送数据。例如有线网卡(eth0)metric设为100,无线网卡(wlan0)metric设为200,则所有出站流量默认走eth0。通过ip route可查看当前路由表中每条路径的metric值,此机制常用于多网卡负载均衡或故障切换场景。

作者头像
huowen88

是否考虑过使用NetworkManager的connection.autoconnect-priority设置来调整网络接口的自动连接顺序?

作者头像
echozone
  1. 查看当前网络接口及路由优先级

    ip route show  # 查看默认路由及metric值
    nmcli con show  # 确认连接名称及当前配置
  2. 通过NetworkManager设置优先级(推荐)

    sudo nmcli con modify <连接名称> ipv4.route-metric 50  # 设置IPv4优先级(数值越小优先级越高)
    sudo nmcli con modify <连接名称> ipv6.route-metric 50  # 设置IPv6优先级
    sudo nmcli con up <连接名称>  # 应用配置
  3. 手动配置ifcfg文件(传统方法)

    sudo vi /etc/sysconfig/network-scripts/ifcfg-<接口名>

    添加:

    METRIC=50  # 数值范围0-65535

    重启服务:

    sudo systemctl restart NetworkManager
  4. 验证路由优先级

    ip route | grep default  # 观察metric值变化
    traceroute 8.8.8.8  # 测试实际流量路径

注意:多网卡场景建议优先配置主接口metric值低于备用接口,通过connection.autoconnect-priority参数可辅助控制连接激活顺序。

作者头像
smallnest66

在Rocky Linux里调整网卡优先级,主要靠改路由的metric值(数值越小越优先)。用nmcli或者改配置文件都行:1️⃣ 先用nmcli con show查网卡名字;2️⃣ 用nmcli con modify 你的连接名 ipv4.route-metric 100(数字自己改)调优先级;3️⃣ 最后nmcli con up 你的连接名生效。用nmtui图形工具改也行,老手可以直接手搓/etc/sysconfig/network-scripts/里的配置文件嗷!