最后更新:2026年1月29日
在2026年1月29日之前,C-Servers现有基于VirtFusion的系统存在已知技术缺陷:当安装任何Ubuntu操作系统(18.04、20.04、22.04或24.04)时,cloud-init会在Netplan路由配置中错误部署IPv6。常见症状为:仅限基于Ubuntu的系统出现极高数据包丢失率(90%+)或完全无法建立IPv6连接,而IPv4仍可正常工作。
此问题源于Ubuntu系统废弃了cloud-init此前使用的“gateway”参数,转而采用“routes”参数。该参数仅适用于Ubuntu系统,其路由器通告(RA)参数存在错误配置——包含一个冗长的IPv6地址,且该地址毫无实际用途。
经与VirtFusion技术支持沟通,现已找到解决方法:使Ubuntu系统拒绝接收RA通告。
此问题的修复方案非常简单
我们提供的修复方案适用于所有版本的Ubuntu系统,从18.04到24.04 LTS均可生效。
但对于Ubuntu 24.04 LTS,该修复方案在多数情况下默认即可生效——只需采用我们尝试过的预配置方案。这意味着若您使用Ubuntu 24.04 LTS,重新安装系统可能是恢复IPv6功能的唯一必要操作。无论上述方法是否有效,我们仍将在下文提供适用于所有Ubuntu版本的IPv6修复配置方案。
针对Ubuntu 20.04 LTS、22.04 LTS及24.04 LTS
若您在2026年1月29日之后重新安装了Ubuntu系统,C-Servers已在所有版本和模板中自动修复此问题。若安装后因故无法连接IPv6,这属于cloud-init故障,只需执行以下命令:
sudo systemctl restart systemd-networkd
即可立即生效。IPv6功能在系统重启后仍将持续有效。
若您通过ISO镜像安装或上述方法无效,需确保已安装cloud-init和qemu-guest-agent软件包,并执行下文所述的方案二。
若您安装的是2026年1月29日之前的Ubuntu版本且不愿重装系统:唯一区别在于模板未提供配置文件,您需在Netplan文件夹中创建新文件,内容与模板完全一致。通过以下命令确认接口名称:
ip -6 addr
若看到类似“enp3s0”、“enp4s0”或“eth0”、“ens3”等名称,即为接口名称。
确认名称后,按上述方式进入Netplan文件夹(“cd /etc/netplan”),创建名为“99-user-conf.yaml”的新文件:
sudo nano 99-usr-conf.yaml
Nano会显示“New File”(新建文件),此时只需复制粘贴以下文本,并将接口名称替换为之前确认的实际接口名称:
network: version: 2 ethernets: enp3s0: accept-ra: false
按Ctrl+O保存,回车确认保存,Ctrl+X退出编辑器,并重新启动systemd-networkd服务:
sudo systemctl restart systemd-networkd
通过执行“ip”命令可验证IPv6地址已正常显示:
ip -6 addr
最后通过“ping”命令验证IPv6连接是否正常:
ping google.com
系统将默认使用IPv6协议并正常工作。此配置在重启后仍会生效。
针对 Ubuntu 18.04 LTS x86 系统
Ubuntu 18.04 LTS 的操作步骤略有不同。虽然系统已实现修复方案,但安装时不会默认启用该功能。不过默认网卡接口(ens3)配置正确,因此修改接口无法解决 IPv6 问题。
具体操作步骤如下:
1. 无论当前系统状态如何,请重新安装 Ubuntu 18.04 LTS;
2. 登录并完成所有操作后,仅需执行以下命令:
sudo systemctl restart systemd-networkd
您将立即获得 IPv6 连接能力,且该状态同样能在系统重启后保持。
此方案已在所有版本的 Ubuntu 上成功测试。