nmcli 配静态 IP 必须先设 ipv4.method manual 再配地址,否则 DHCP 仍生效;bond 需先建逻辑接口再加 slave;主备切换需启用 miimon 并检查 /proc/net/bonding/bond0;重启后需禁用 NM 对物理口的管理以防冲突。
nmcli 里配静态 IP 必须禁用 DHCP 并显式设地址族
直接
改 IP 却没关 DHCP,改完重启连接还是拿 DHCP 地址——这是最常踩的坑。nmcli 不会自动帮你关掉 DHCP,哪怕你已经写了
,只要
还是
,它就优先走 DHCP。
正确做法是两步一起做:
(避免 DHCP 路由残留干扰)
别漏掉
,否则其他设置全白配。改完必须
才生效,
或
不行。
多网卡绑定(bond)必须先建 bond 接口再加 slave
想用
和
做主备冗余,不能直接对物理口设 bond 参数。nmcli 要求先创建一个逻辑
连接,再把物理口作为 slave 加进去,顺序反了会报
或
。
实操步骤(主备模式
):
注意:
连接不能单独设 IP 或 gateway,所有网络配置只在
上设;物理口连接默认会被自动
,不用手动关。
主备切换测试得看 link 状态,不是 ping
以为
通就代表冗余生效?错。很多环境里即使主口断电,bond 仍维持 UP 状态(因为内核认为 carrier 未完全丢失),但实际发包失败。真正验证得查
输出里的
和
行。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
快速判断方法:
拔掉主网线后执行
看到
且
变成另一个接口名,才算切换成功
如果
一直是
,说明链路检测没起作用,要检查
参数:加
再重载
默认不设
,bond 就不会主动轮询物理口状态,故障时无法触发切换。
重启后 bond 不生效?检查 NetworkManager 是否接管了物理口
系统重启后
up 了,但
里看不到地址,或者
、
自己又冒出来成了独立连接——大概率是 NetworkManager 自动为物理口生成了默认连接(名字类似
),跟你的 bond 配置冲突。
解决办法只有两个:
删掉自动生成的物理口连接:
(查清名字再删,用
)
永久禁止 NM 管理特定物理口:
(对每个 slave 口都执行)
后者更稳妥,否则下次重装驱动或插拔网线,NM 又可能自作主张建新连接。这个设置不随 reboot 丢失,但需要在 bond 配置前或配置后立即执行,晚了就容易被覆盖。
nmcli connection modifyipv4.addressesipv4.methodautonmcli connection modify "ens33" ipv4.method manualnmcli connection modify "ens33" ipv4.addresses "192.168.10.50/24"nmcli connection modify "ens33" ipv4.gateway "192.168.10.1"nmcli connection modify "ens33" ipv4.dns "8.8.8.8,114.114.114.114"nmcli connection modify "ens33" ipv4.ignore-auto-routes yesipv4.method manualnmcli connection down "ens33" && nmcli connection up "ens33"reloadreapplyens33ens34bondNo suitable object foundConnection 'ens33' is not a slave of any masteractive-backupnmcli connection add type bond con-name bond0 ifname bond0 mode active-backupnmcli connection modify bond0 ipv4.method manualnmcli connection modify bond0 ipv4.addresses "192.168.10.50/24"nmcli connection modify bond0 ipv4.gateway "192.168.10.1"nmcli connection add type bond-slave con-name bond0-ens33 ifname ens33 master bond0nmcli connection add type bond-slave con-name bond0-ens34 ifname ens34 master bond0bond-slavebond0downping/proc/net/bonding/bond0MII StatusPrimary Slavecat /proc/net/bonding/bond0 | grep -E "(MII Status|Primary Slave)"MII Status: downPrimary SlaveMII Statusupmiimonnmcli connection modify bond0 bond.options "miimon=100"miimonbond0ip addrens33ens34Wired connection 1nmcli connection delete "Wired connection 1"nmcli connection shownmcli device set ens33 managed no