虚拟机ip连不上(怀疑是最开始虚拟机复制造成的网络冲突)

现在执行以下命令,让 NetworkManager 接管 ens33

ip a | grep ens33找不到 vi /etc/sysconfig/network-scripts/ifcfg-ens33里面配置的ip

手动配置 IP,然后修复 network 服务,让它负责管理 ens33

明白了,你现在手动配置 IP 后是通的,但 network.service 依然启动失败。这个报错 No suitable device found for this connection (device lo not available because device is strictly unmanaged) 其实是因为 network 服务脚本在尝试调用 NetworkManager 来激活连接,但 NetworkManager 把 ens33 标记为"未托管",导致失败。

根本解决思路 :让 network 服务不再依赖 NetworkManager ,直接使用传统的 ifup/ifdown 脚本。这需要在配置文件中明确声明。


🔧 立即执行以下步骤(永久修复)

1. 编辑网卡配置文件,加入关键参数

bash

复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33

确保文件内容包含以下行(必须要有 NM_CONTROLLED=no):

ini

复制代码
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.228.150
NETMASK=255.255.255.0
GATEWAY=192.168.228.1
DNS1=192.168.228.1
DNS2=8.8.8.8
NM_CONTROLLED=no   # 关键:告诉 NetworkManager 不要管这个设备

保存退出(:wq)。


2. 确保 network 服务已启用,并彻底禁用 NetworkManager

bash

复制代码
# 启用 network 服务(如果之前被禁用)
systemctl enable network

# 停止并禁用 NetworkManager(避免干扰)
systemctl stop NetworkManager
systemctl disable NetworkManager

3. 清除可能残留的冲突路由,重启 network 服务

bash

复制代码
# 清除路由表(防止 "File exists" 错误)
ip route flush table main
ip route flush cache

# 重启 network 服务(现在应该能成功)
systemctl restart network

# 查看状态(不应再报错)
systemctl status network
ip a | grep ens33

4. 测试是否开机自动生效

执行 reboot 重启虚拟机,重启后再次执行:

bash

复制代码
ip a | grep ens33

如果能看到 192.168.228.150,说明彻底修复。

ip a | grep ens33能看到 192.168.228.150但是物理机ping不通

好的,ip addr show ens33 | grep inet 显示 192.168.228.150/24,子网掩码正确 (/24 对应 255.255.255.0),说明 IP 配置本身没问题。

但现在的问题是:系统没有识别到 192.168.228.0/24 这个直连网络 ,所以认为 192.168.228.1 不可达。我们需要手动把它加进去。


🔧 立即执行以下命令(按顺序)

bash

复制代码
# 1. 手动添加直连网络(让系统知道 192.168.228.0/24 就在 ens33 上)
ip route add 192.168.228.0/24 dev ens33

# 2. 现在添加默认网关(这次应该不会报“网络不可达”了)
ip route add default via 192.168.228.1

# 3. 查看路由表(确认两条路由都存在)
ip route show

# 4. 测试网关连通性(必须通)
ping -c 4 192.168.228.1

执行后把 ip route show 和 ping 的结果发给我。


🔍 如果第 2 步依然报错 Network is unreachable

说明 192.168.228.1 这个网关在你的物理网络里不存在 。你需要从物理机获取真正的网关地址:

  1. 在物理机 Windows 命令行执行:ipconfig

  2. 找到 WLAN 或 以太网 适配器下的 默认网关 那一行,把 IPv4 地址(比如 192.168.228.254 或 192.168.228.84)发给我。


⚙️ 如果手动添加网关后 ping 通了

接下来把正确的网关写入配置文件,确保重启后依然有效:

bash

复制代码
# 编辑配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33

将 GATEWAY=192.168.228.1 改为你 ping 通的那个地址(如果就是 .1 则不用改)。

保存后重启网络服务验证:

bash

复制代码
systemctl restart network
ip route show

现在请先执行上面的 1~4 步,把结果发给我。 网关一旦添加成功,物理机 ping 虚拟机应该就能通了。

相关推荐
Doraemomo6 小时前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
2301_808414386 小时前
Linux中动静态库的理解
linux·运维·服务器
分布式存储与RustFS6 小时前
模型 checkpoint 放对象存储:分片上传、断点续传与残留清理
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
M78佐菲7 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲7 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
半仙白桑7 小时前
内核篇第十五讲:system-V共享内存
linux·共享内存·shmget·shmat·shmdt·shmctl
一条破秋裤7 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
可涵不会debug8 小时前
第一次学 LangGraph:用一个快递案例搞懂 State、Node、Edge 和 compile
服务器·数据库·mysql
s6516654969 小时前
IDT和GDT是什么
linux
Android系统攻城狮9 小时前
Linux Gstreamer深度解析之gst_audio_decoder_set_estimate_rate调用流程与实战(四十五)
linux·gstreamer音视频·音视频进阶