腾讯云轻量应用服务器重装后网络断连(SSH 无法登录)修复教程
故障现象
在对腾讯云轻量应用服务器进行重装系统、重启或实例迁移后,服务器突然失去网络连接,无法通过 SSH 登录。通过云控制台 VNC 登录后,执行 ip a 发现主网卡(如 ens5)处于 DOWN 状态,且未获取到任何 IPv4 或 IPv6 地址。
故障原因
此问题通常由腾讯云底层的 cloud-init 组件下发了 存在 Bug 的网络配置文件 导致:
- 非法的 IPv6 子网掩码:云端自动生成的配置文件(
/etc/netplan/50-cloud-init.yaml)中,给静态 IPv6 地址错误地分配了/0的子网掩码(正确应为/128)。 - YAML 语法解析错误:直接写入的 IPv6 地址(带有多个连续冒号
::)未加双引号,导致 Netplan 的 YAML 解析器报错。
以上错误会导致系统的网络管理服务在开机时解析配置失败,从而彻底放弃拉起网卡。
修复步骤
请登录腾讯云控制台,通过 VNC 进入服务器终端,并依次执行以下操作:
第一步:禁用 cloud-init 的自动网络配置
为了防止系统重启后,cloud-init 再次将带有 Bug 的错误配置文件刷回来,我们需要先禁用它的网络接管功能:
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
第二步:提取正确的网络参数并备份旧配置
查看旧配置文件,记下你的静态 IPv6 地址和网关,然后将其重命名使其失效,避免干扰后续配置:
# 查看并记录 addresses (如 2402:...) 和 gateway/via (如 fe80::...)
cat /etc/netplan/50-cloud-init.yaml
# 备份并使旧配置失效
mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
第三步:写入干净的 Netplan 配置
创建一个全新的配置文件。注意:
- 将
<你的网卡名>替换为实际网卡名(如ens5或eth0)。 - 将 IPv6 地址和网关替换为你刚才记录的地址。
- 关键细节:IPv6 地址和网关必须加上双引号,并且掩码必须写为 /128。
cat <<EOF> /etc/netplan/99-custom-ens5.yaml
network:
version: 2
ethernets:
ens5:
dhcp4: true
accept-ra: false
addresses:
- "你的公网IPv6地址/128"
nameservers:
addresses:
- "2400:3200::1"
- "2402:4e00::"
routes:
- to: default
via: "fe80::feee:ffff:feff:ffff"
EOF
(注:腾讯云默认的 IPv6 网关通常为 fe80::feee:ffff:feff:ffff)
第四步:修复文件权限
Netplan 出于安全要求,配置文件必须仅 root 用户可读写,否则会抛出 Permissions are too open 警告:
chmod 600 /etc/netplan/99-custom-ens5.yaml
第五步:应用配置并验证
重新加载网络配置:
netplan apply
如果没有报错直接返回提示符,说明配置已成功生效。
验证网卡状态和网络连通性:
# 检查是否获取到了 IP
ip a
# 测试 IPv4 连通性
ping -c 4 223.5.5.5
# 测试 IPv6 连通性 (Ping Cloudflare 的公共 DNS)
ping -c 4 2606:4700:4700::1111
确认一切通畅后,您即可关闭 VNC,重新使用本地终端通过 SSH 连接服务器。
Ubuntu 26.04下的默认文件