You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VMware P2V Converter迁移Ubuntu物理机到ESXi失败(网络不可达错误)

VMware P2V Converter迁移Ubuntu物理机到ESXi失败(网络不可达错误)

这种卡在3%的网络错误确实挺闹心的,我帮你梳理下排查思路和可行的解决办法:

先明确你的问题现象

  • 用VMware Converter做Ubuntu物理机转ESXi虚拟机时,进度卡在3%,报错:

    "Network is unreachable Network error. Host x.x.x.x key can't be retrieved. (return code 2)"

  • 本地能正常SSH连接物理Ubuntu,但ESXi主机本身无法SSH到物理Ubuntu(超时),不过能ping通、用wget获取物理Ubuntu的HTML内容
  • ESXi可以SSH到自身(ssh root@127.0.0.1),也能正常SSH到ESXi上的Windows测试VM,但就是连不上网络里的其他Linux主机
  • 物理Ubuntu的SSH已经配置允许所有主机连接

核心问题分析

能ping通但SSH连不上,说明ICMP协议没问题,但TCP 22端口的连通性存在障碍。结合ESXi能连Windows却连不上Linux的现象,大概率是ESXi的老版本SSH客户端和Ubuntu新SSH服务端的加密套件不兼容,或者Ubuntu端的SSH配置/防火墙有细节限制。

具体解决步骤

1. 先检查Ubuntu物理机的SSH基础配置

登录物理Ubuntu,编辑SSH服务配置文件:

sudo nano /etc/ssh/sshd_config

重点确认以下几项(先改成宽松配置测试,后续再按需收紧):

  • PermitRootLogin yes(如果你用root用户做迁移,或者改成PermitRootLogin prohibit-password用密钥,但先开密码登录排除问题)
  • PasswordAuthentication yes(暂时开启密码登录,避免密钥验证的干扰)
  • 确保没有AllowUsers/DenyUsers规则限制ESXi主机的IP
  • Port 22:如果改过SSH端口,Converter里要对应设置,先保持默认22测试
  • UsePAM yes:避免PAM验证环节出问题

修改后重启SSH服务:

sudo systemctl restart sshd

2. 修复ESXi与Ubuntu的SSH加密兼容性

ESXi自带的OpenSSH版本通常比较旧,和新Ubuntu的SSH服务端默认加密套件不匹配。登录ESXi的SSH,先尝试用兼容算法连接物理Ubuntu:

ssh -o KexAlgorithms=diffie-hellman-group1-sha1 root@<你的Ubuntu物理机IP>

如果这条命令能成功连上,说明确实是加密套件的问题。接下来在Ubuntu的sshd_config末尾添加兼容的算法:

# 在sshd_config最后追加
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc,3des-cbc

重启SSH服务后,再用ESXi测试普通SSH连接,正常后重新运行Converter。

3. 排查Ubuntu的防火墙规则

虽然你说已经允许所有主机连接,但还是要确认防火墙有没有漏掉ESXi的IP:

# 如果用UFW防火墙,先看规则
sudo ufw status
# 临时关闭UFW测试
sudo ufw disable
# 或者直接查看iptables规则
sudo iptables -L -n

如果关闭防火墙后ESXi能SSH连上,说明是防火墙规则的问题,添加允许ESXi IP访问22端口的规则:

sudo ufw allow from <ESXi主机IP> to any port 22
sudo ufw enable

4. 试试冷克隆模式绕开网络问题

如果热克隆(在线迁移)一直卡,不妨试试冷克隆:把Ubuntu物理机关机,用Converter的引导ISO启动物理机,直接从本地磁盘读取数据进行迁移,完全避开网络SSH的环节。

5. 检查ESXi的网络连通性细节

确认ESXi和物理Ubuntu在同一个VLAN,没有三层交换机/路由器的ACL拦截TCP 22端口。可以在ESXi上用nc命令测试端口是否可达:

nc -zv <Ubuntu物理机IP> 22

如果显示Connection refused,问题在Ubuntu端;如果是timeout,则是网络中间设备的拦截问题。

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

火山引擎 最新活动