[kimi AI总结]CFS三层靶机导入虚拟机静态配置的IP失效错误/手动纠正流程(Target2的IP修改同理)
2026/7/12
异常的原因 :
我的.ova文件导入之后没有出现vmware的"迁移虚拟机提示", 所以我导入之后的虚拟机的MAC地址变化了, 原先那些机器的IP地址是写入配置文件里的, 但是我的vmware启动之后发现现在的MAC地址与配置文件的MAC地址不相等, 所以原先靶场作者的写入文件的配置规则就没有生效, 通过指令 nmcli connetcion 可以发现有未被激活的 连接配置, 那些就是因为MAC地址与配置文件中的不匹配所被遗弃的靶场作者的 配置规则 , 所以 nmcli 没有使用这些MAC不符合而被遗弃的方案, 并且新创建了配置并且使用了DHCP, 这才导致了Target使用的 IP 不同于 之前所配置的静态IP
kimi总结的IP更改流程 (推荐在这之前先学习下 nmcli 涉及的概念, 网卡设备device 和 连接connection 等等的概念,区别等等) :
没问题!以下是为你整理的完整教程,你可以直接复制到文章里。
CentOS (Target1) 静态 IP 配置不生效排查:MAC 地址绑定导致 NetworkManager 拒绝激活
一、问题现象
靶机(或虚拟机)要求配置两个静态 IP:
ens33→192.168.1.11/24ens37→192.168.22.11/24
但登录后发现实际 IP 是 DHCP 动态获取的:
[root@localhost ~]# ip addr
# ens33 实际 IP: 192.168.1.4/24 (DHCP)
# ens37 实际 IP: 192.168.22.1/24 (DHCP)
nmcli con show 能看到配置好的连接,但 DEVICE 列显示 --,说明配置存在但未被激活。
二、问题根因
MAC 地址不匹配导致 NetworkManager 拒绝激活。
这个靶机是从别的虚拟机克隆/复制过来的,原虚拟机的网卡 MAC 地址和新环境不同。NetworkManager 的连接配置文件(ifcfg)里通过 HWADDR 或 802-3-ethernet.mac-address 绑定了旧 MAC,当实际网卡 MAC 不一致时,NM 认为该连接"不兼容此设备",拒绝激活。
结果:
- 网卡 fallback 到自动生成的 DHCP 连接("有线连接 2"、"有线连接 3")
- 静态 IP 配置被"雪藏",系统显示的是 DHCP 动态 IP
三、排查过程
步骤 1:查看当前连接状态
nmcli con
输出:
NAME UUID TYPE DEVICE
有线连接 2 82ef3cf3-8920-3752-be37-6a0dd50c357f ethernet ens33
有线连接 3 5ef62781-f249-3fb3-8826-c0b938b14d27 ethernet ens37
ens33 321527af-7fd1-48b4-87bf-f9f660bfd5c7 ethernet --
有线连接 1 a18a03de-36a2-36a2-8514-0232129b08b0 ethernet --
发现:ens33 和 有线连接 1 的 DEVICE 是 --,说明它们没被激活。
步骤 2:查看未激活连接的配置
nmcli con show ens33
nmcli con show "有线连接 1"
发现:
ens33配置了192.168.1.11/24,但802-3-ethernet.mac-address是00:0C:29:81:A6:6D有线连接 1配置了192.168.22.11/24,但802-3-ethernet.mac-address是00:0C:29:81:A6:77
步骤 3:对比实际网卡 MAC
ip addr
实际 MAC:
ens33:00:0c:29:37:0f:f3ens37:00:0c:29:37:0f:fd
结论:配置文件里的 MAC 和实际网卡 MAC 不一致,导致连接无法激活。
步骤 4:在配置文件目录搜索确认
grep -r "192.168.22.11" /etc/sysconfig/network-scripts/ 2>/dev/null
# 输出:/etc/sysconfig/network-scripts/ifcfg-有线连接_1:IPADDR=192.168.22.11
确认配置存在,只是没生效。
四、解决方案
核心思路:移除连接配置文件中的 MAC 地址绑定,让 NetworkManager 根据网卡接口名(ens33/ens37)来匹配,而非 MAC 地址。
修复 ens33(192.168.1.11)
# 1. 移除 MAC 地址绑定
nmcli con mod ens33 802-3-ethernet.mac-address ""
# 2. 指定使用 ens33 接口
nmcli con mod ens33 connection.interface-name ens33
# 3. 激活连接
nmcli con up ens33
⚠️ 注意:如果当前 SSH 是通过 ens33 的 DHCP IP(如 192.168.1.4)连接的,执行 nmcli con up ens33 会切换 IP 到 192.168.1.11,可能导致 SSH 断开。请确保你能通过 192.168.1.11 访问,或在虚拟机控制台操作。
修复 ens37(192.168.22.11)
# 1. 移除 MAC 地址绑定
nmcli con mod "有线连接 1" 802-3-ethernet.mac-address ""
# 2. 指定使用 ens37 接口
nmcli con mod "有线连接 1" connection.interface-name ens37
# 3. 激活连接
nmcli con up "有线连接 1"
💡 如果通过 ens33 远程 SSH,修改 ens37 不会断开连接,可以放心操作。
备用方案:直接修改 ifcfg 文件
如果 nmcli con mod 因版本兼容报错,可直接编辑配置文件:
# 编辑 ens33 配置
sed -i 's/^HWADDR=.*/#HWADDR=旧MAC地址/' /etc/sysconfig/network-scripts/ifcfg-ens33
# 编辑 有线连接 1 配置
sed -i 's/^HWADDR=.*/#HWADDR=旧MAC地址/' /etc/sysconfig/network-scripts/ifcfg-有线连接_1
# 重新加载并激活
nmcli con reload
nmcli con up ens33
nmcli con up "有线连接 1"
五、验证结果
ip addr
预期输出:
2: ens33: ... inet 192.168.1.11/24 ...
3: ens37: ... inet 192.168.22.11/24 ...
nmcli con show --active
预期输出:
NAME UUID TYPE DEVICE
ens33 ... ethernet ens33
有线连接 1 ... ethernet ens37
六、总结与预防
|
问题 |
原因 |
解决 |
|
配置了静态 IP 但 |
连接配置文件绑定了错误的 MAC 地址,NM 拒绝激活 |
移除 |
预防建议:
- 克隆虚拟机后,如果网卡重新生成(MAC 变化),记得检查并更新网络配置中的
HWADDR。 - 或者,在配置静态 IP 时不绑定 MAC 地址,只通过
interface-name(如ens33)来关联,避免克隆后失效。 - 使用
nmcli管理配置而非直接编辑 ifcfg 文件,可以减少此类兼容性问题。
完成于2026/7/12
更多推荐


所有评论(0)