You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04 LTS下如何让bond0接口使用eth0的硬件MAC地址

Ubuntu 22.04 LTS下如何让bond0接口使用eth0的硬件MAC地址

我来帮你解决这个问题!你遇到的bond0重启后MAC地址变化的情况,在active-backup模式下确实比较常见,不过不用手动指定MAC地址也能搞定,下面是具体的方案:

核心原理与解决方案

在active-backup bonding模式中,默认的MAC地址策略是none——bond0会采用第一个被加载到bond中的网卡的MAC地址,这就导致重启时如果网卡启动顺序变化,bond0的MAC也会跟着变。而我们需要的是让bond0始终绑定primary网卡(也就是你的eth0)的硬件MAC,不需要手动写死地址,这时候可以通过配置bond-fail_over_mac_policy fixed参数来实现。

这个参数的作用是:强制bond接口始终使用你指定的primary网卡的MAC地址,哪怕primary网卡故障切换到备用网卡,bond0也会保留eth0的MAC地址(备用网卡会临时使用这个MAC来维持网络连接,primary恢复后自动切回)。

修改你的网络配置文件

打开你的/etc/network/interfaces文件,在bond0的配置块中添加这个参数,同时确保bond-primary明确指向eth0(你可以把这个参数移到bond0块里,这样配置更清晰):

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo eth0 eth1 bond0

iface lo inet loopback

##### bond0-slaves
iface eth0 inet manual
bond-master bond0

iface eth1 inet manual
bond-master bond0

##### bond-interface
iface bond0 inet dhcp
bond-mode active-backup
bond-miimon 100
bond-slaves none
bond-primary eth0  # 明确指定primary网卡为eth0
bond-fail_over_mac_policy fixed  # 强制使用primary网卡的MAC

验证配置效果

修改完成后,你可以重启网络服务或者直接重启服务器,然后用以下命令检查MAC地址:

ip addr show bond0
ip addr show eth0

你会看到bond0的MAC地址和eth0的硬件MAC完全一致,而且后续重启服务器也不会再变化了。

为什么这个方案比手动写MAC更好

这个方法不需要你手动复制粘贴eth0的MAC地址,完全依赖系统自动获取primary网卡的硬件地址,避免了后续eth0更换(比如更换网卡)时还要手动修改配置的麻烦,和你在Proxmox中使用bridge-hw eth0的思路是一致的,只不过Ubuntu bonding用的是专门的bond参数来实现。

备注:内容来源于stack exchange,提问作者Elvin Mammadov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:08:12