搬瓦工 IPv6 开启及配置教程 2026版

搬瓦工 IPv6 开启及配置教程 2026版
从 KiwiVM 激活到网站双栈访问,按步骤检查,不覆盖已有 IPv4 配置。

搬瓦工开启 IPv6,先在 KiwiVM 分配地址段,再确认 Linux 系统里已经有地址、路由和可用连接。很多“已经开启却不能用”的情况,卡在的不是面板按钮,而是系统没有完成配置,或者网站仍然只监听 IPv4。

先保留正常工作的 IPv4,验证 IPv6 后再添加 AAAA 记录。不要为了开启 IPv6 重装系统,也不要把网上的地址、网关和整份网络配置直接覆盖到自己的 VPS。

本文按 2026 年的使用环境整理,覆盖 KiwiVM 激活、Debian / Ubuntu 配置和网站双栈检查。面板操作不熟悉,可以先看 搬瓦工 KiwiVM 控制面板完整使用教程

一、开始前先确认三件事

首先,确认当前实例提供 IPv6。多个常见套餐列有 routed /64 subnet,但能否分配、当前分配到哪个地址段,要进入自己的 KiwiVM 查看。不要继续用早期“只支持少数美国机房”的列表判断所有实例。套餐功能可查看 IPv6 配置项;本站的 搬瓦工 IPv6 早期启用记录 可用于对照旧版入口。

其次,保留 IPv4 SSH 会话,并确认 KiwiVM 控制台能用。需要修改网络文件时,先备份原配置,重要业务可按 搬瓦工快照与自动备份教程 留好恢复手段。只有一条远程连接时,不要直接执行 ifdown、清空路由或重置防火墙。

最后,区分服务器和本地网络。你的电脑暂时没有 IPv6,不妨碍先通过 IPv4 登录 VPS 并完成配置;只是之后的 IPv6 入站测试,需要在另一条支持 IPv6 的网络上进行。

二、在 KiwiVM 中开启 IPv6

KiwiVM IPv6 network 激活流程
这是操作顺序示意,不是模拟的后台截图。

进入客户中心 → Services → My Services → 对应 VPS 的 KiwiVM Control Panel。在左侧查找 IPv6 network。未分配网段时,常见按钮文案是 Activate /64 IPv6 subnet;已经有分配结果的,不需要重复激活。

点击后记录页面给出的网段、地址和接入说明。只有页面确实显示的参数,才是这台 VPS 的配置依据。上述入口与按钮可对照 IPv6 Management 历史界面,不是要求你在当前页面找到完全一致的布局。

如果提示重启后生效,先结束正在写入的任务,安排一次正常重启,回来后检查地址。自装、DD 或从其他环境恢复的系统,可能没有模板自动配置,需要继续核对网络文件。激活不等于系统已经配置成功。

找不到入口时,先确认进入的是 KiwiVM,而不是订单详情页;再查看实例是否已有 IPv6 信息。仍没有分配能力,应向支持人员确认当前节点的接入方式,不要先迁移或买一台新 VPS。

三、看懂 /64、IPv6 地址和默认网关

IPv6 网段、地址与网关的区别
示例地址仅用于说明格式,不代表任何搬瓦工实例的实际配置。
项目表示什么配置时注意
IPv6 网段分配给实例的地址范围,如 2001:db8:1234:5678::/64不是单个主机地址,不能整个填进 AAAA
网卡地址系统实际使用的一个 IPv6,如 2001:db8:1234:5678::10用实例分配信息确认地址与前缀,不借用其他用户的地址
默认网关访问网段之外目标时使用的下一跳可能是链路本地地址,也可能是其他形式;不能固定写 ::1
AAAA 记录把域名映射到一个 IPv6 地址只填地址,不加 /64https:// 或方括号

文中的 2001:db8::/32 是文档专用地址。所有示例里的地址、网关、前缀和网卡名都需要替换;演示网关 2001:db8:1234:5678::1 不是搬瓦工通用网关。参见 地址用途说明

另外,拿到一个路由到 VPS 的 /64,不等于要把整个范围批量添加到网卡,也不能仅凭“/64”推断主接口、网关一定在同一网段。先使用接入说明确定的地址,其他地址按实际业务需要再配置。

四、重启后,用四步确认是否已经可用

搬瓦工 IPv6 地址路由出站入站四层验证
出站和入站分别测试;Ping 失败不应直接当成完整诊断结论。

1. 先看网卡与地址

cat /etc/os-release
ip -br link
ip -6 addr show scope global
ip -6 route show default

网卡可能叫 eth0ens3enp1s0,以本机输出为准。只有 ::1fe80:: 不代表已经获得公网 IPv6。看到 scope global 后,还要确认它确实属于你的公网分配,并且不是容器的私有地址。若有 tentative,等待地址检测完成;若出现 dadfailed,先检查地址冲突。字段解释见 ip-address(8)

2. 再看默认路由和出站访问

# 在 VPS 中执行;不修改网络配置
ip -6 route get 2606:4700:4700::1111
ping -6 -c 4 2606:4700:4700::1111
curl -6 --noproxy '*' --connect-timeout 5 --max-time 15 \
  -I https://www.cloudflare.com/

这里用 Cloudflare 的公共 IPv6 DNS 地址 作为连通性测试目标。route get 用于查看系统会怎样选出口和源地址,不会主动创建路由。curl -6 强制使用 IPv6;--noproxy '*' 避免显式代理干扰判断,超时参数避免一直等待。参数含义可查 curl 参数参考

路由存在不等于远端一定可达;Ping 无回应,也不必马上判定 IPv6 整体失效。再看 HTTPS 能否建立连接,并换一个目标复查。系统里有 WARP、隧道或策略路由时,这些测试验证的是实际选中的路径,还要核对出口是不是刚分配的原生 IPv6。

3. 用外部 IPv6 网络测试入站

从支持 IPv6 的另一台电脑或服务器连接这台 VPS 的 SSH 或网站端口。能在 VPS 里访问外网,只说明出站路径可用;外部访问还取决于服务监听、入站防火墙和客户端自身的 IPv6。

4. 确认重启后仍然有效

如果地址、路由、出站和入站都已经正常,就不需要再套用手动配置。仅用 ip -6 addr add 临时加过地址的,要检查持久化;在维护窗口重启后再验证一次,同时确认原 IPv4 访问没有被破坏。

五、没有自动配好时,Debian / Ubuntu 怎么处理?

系统版本并不能唯一决定配置文件。Ubuntu 常见 Netplan,Debian 可能用 ifupdown,也可能用 systemd-networkd 或 NetworkManager;模板、DD 镜像和控制面板都会影响实际方式。系统选择可参考 搬瓦工重装系统教程:Ubuntu / Debian 怎么选,配置时仍先检查本机。

command -v netplan
systemctl is-active systemd-networkd NetworkManager networking
ls -l /etc/netplan /etc/network/interfaces /etc/network/interfaces.d 2>/dev/null

个别命令或目录不存在是正常的;某个服务 active,也不等于它一定接管了公网网卡。继续核对该网卡匹配的连接或文件,不要同时让几个管理器修改同一接口。

Ubuntu Netplan 与 Debian ifupdown 配置分支
模板不是现成配置;应用前保留控制台通道并备份原文件。

先查 IPv6 有没有被禁用

# 将 ens3 换成本机公网网卡名称
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.default.disable_ipv6
sysctl net.ipv6.conf.ens3.disable_ipv6
sysctl net.ipv6.conf.all.forwarding
sysctl net.ipv6.conf.ens3.accept_ra
cat /proc/cmdline

接口的 disable_ipv6=1 表示被禁用;=0 只是没有禁用,并不保证地址和路由已配置。找到禁用设置来自哪个文件或工具后再改,避免重启时又被覆盖。下面仅演示临时恢复指定接口:

# 仅在确认 ens3 被错误禁用 IPv6 后执行;此改动不是持久化配置
sudo sysctl -w net.ipv6.conf.ens3.disable_ipv6=0

如果启动参数中有 ipv6.disable=1,单改 sysctl 不足以恢复协议栈,应修正启动配置后在维护窗口重启。有关开关和 RA 行为,见 Linux IPv6 内核参数

方案 A:Netplan 静态地址示例

先用 sudo netplan get 看合并后的配置。以下示例只说明需要追加的 IPv6 地址和默认路由,适用于已经明确拿到静态接入参数、并确认没有现成 IPv6 默认路由的实例。

先备份,再编辑;不要把示例整份覆盖到原文件。原来的 IPv4 地址、路由、DNS、renderer 和网卡匹配设置都保留;已有 addressesroutes 时追加列表项,不要在同一个节点重复写两个同名键。

# 结构示例,不是可直接覆盖原文件的配置
# 保留既有 renderer、IPv4、DNS、match/set-name 等设置
network:
  version: 2
  ethernets:
    ens3:
      addresses:
        # 原有 IPv4/IPv6 地址需要保留,在列表中追加
        - "2001:db8:1234:5678::10/64"
      routes:
        # 原有 IPv4 路由需要保留,在列表中追加
        - to: "::/0"
          via: "2001:db8:1234:5678::1"

如果接入说明明确要求网段外的直连网关,再按要求配置 on-link 或对应的直连路由,不要为消除报错一律开启它。地址与路由写法可参考 Netplan 地址与路由示例

# 修改前备份已有 Netplan 目录
sudo cp -a /etc/netplan "/root/netplan-backup-$(date +%Y%m%d-%H%M%S)"修改对应文件后,先检查,再限时试用
sudo netplan generate
sudo netplan try --timeout 120

netplan try 会在未确认时尝试回滚。试用期间另开连接测试 IPv4、IPv6 和业务端口,通过后再确认;超时或取消后,仍应核查运行状态和磁盘文件是否恢复,不能把回滚当成绝对保险。详见 Netplan try 与回滚说明

方案 B:ifupdown 的 inet6 配置

确认公网网卡由 ifupdown 管理后,修改实际被读取的 /etc/network/interfaces 或其包含文件。下面假定网卡是 eth0,地址与网关仅为格式示例:

# 仅适用于已由 ifupdown 管理的网卡
# 在现有配置中补充,原有 iface eth0 inet ... 段保留
# 已有 inet6 段时修改该段,不再重复添加
iface eth0 inet6 static
    address 2001:db8:1234:5678::10/64
    gateway 2001:db8:1234:5678::1
sudo cp -a /etc/network "/root/network-backup-$(date +%Y%m%d-%H%M%S)"
ifquery eth0

备份命令应在编辑前执行;ifquery 用于核对读取到的定义,不等于已经成功联网。确保网卡原有开机配置仍保留,子目录文件确实被主配置包含。应用改动应从控制台安排,切勿在唯一的 SSH 会话中直接关闭公网网卡。inet6 staticautodhcp 的差别可查 Debian interfaces(5)

接入方式是 RA / SLAAC / DHCPv6 时

不要给所有机器统一添加 dhcp6: true。只有上游提供相应服务、模板或接入说明使用自动配置时,才按该方式设置。Netplan 的 accept-radhcp6 负责不同部分;获得地址也不等于自动就有默认路由。相关选项见 Netplan 配置参考

尤其是启用 IPv6 转发后:使用内核 RA 接收的环境中,accept_ra=1 会受 forwarding 状态影响;明确仍需接收 RA 时才考虑接口级 accept_ra=2。由 networkd、Netplan 或 NetworkManager 管理的环境,应同时检查对应管理器的 RA 设置。不要为了恢复主机 IPv6,把容器或路由业务需要的转发全部关闭。

六、网站和 SSH 也要能接收 IPv6 连接

sudo ss -6 -lntp
sudo ufw status verbose
sudo grep -n '^IPV6=' /etc/default/ufw

没有安装 UFW 就跳过其命令,检查实际使用的 nftables 或其他防火墙;也不需要为了 IPv6 再装一套规则管理器。SSH 限定为 IPv4 监听、网站没有 IPv6 listen,都会造成“服务器出站正常,但外部连不进来”。

正在使用 UFW 的主机,要确认 /etc/default/ufw 中 IPv6 规则已启用,并检查相应的 (v6) 规则。先确认实际 SSH 端口已允许,再按业务放行 80 / 443;本教程不要求直接开启、清空或重置防火墙。说明见 UFW 的 IPv6 规则与远程管理

# 仅供正在使用 UFW 的网站主机参考
# 先确认实际 SSH 端口已放行;这里不启用或重置防火墙
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status numbered

不要把 ICMPv6 全部封掉。邻居发现、路由通告和 Packet Too Big 等报文关系到寻址与路径 MTU,全部拦截可能出现“偶尔能连、传文件却卡住”的故障。Ping 的 Echo Request 与这些必要报文应分别处理,参见 ICMPv6 过滤建议 RFC 4890

Nginx 网站检查现有站点的监听,例如:

# 合并到现有站点的 server 块,不要复制创建重复监听
listen 80;
listen [::]:80;已配置 HTTPS 和证书的站点,检查对应 server 块
listen 443 ssl;
listen [::]:443 ssl;

这些行属于现有 server 块;HTTPS 仍需保留正确的证书路径,不要复制后制造重复监听,也不要照抄到所有站点的 default_server。IPv6 地址使用方括号的写法见 Nginx listen 配置

sudo nginx -t && sudo systemctl reload nginx

有 Docker 时还要区分宿主机、容器网络和发布端口。宿主机 IPv6 正常,不意味着每个容器都有可路由的公网地址;不要把主网卡正在使用的同一 /64 直接再交给另一座桥接网络。需要容器 IPv6 时单独规划,参见 Docker IPv6 网络

七、添加 AAAA 解析前,先验证源站

IPv6 网站监听防火墙与 AAAA 解析关系
通过 CDN 访问时,要把边缘连接与源站连接分开验证。

先选一个自己控制的测试子域名,例如 v6.example.com,确认该站点已配置好证书和 IPv6 监听。不要一开始就给所有生产域名添加 AAAA。

类型主机名示例记录值
Av6现有 IPv4 地址,保留
AAAAv6已验证可用的 IPv6 地址,不带 /64
PTR / rDNS由 IP 的反向解析管理入口设置与正向 AAAA 分开配置,不是建站必须添加的记录

AAAA 只负责返回地址,不会替你配置网卡、路由或网站。DNS 类型可查 DNS 记录类型;PTR 的入口与作用,可结合 KiwiVM 教程中的 PTR / rDNS 说明 阅读。

# v6.example.com 是演示域名,请替换为自己的测试域名
dig AAAA v6.example.com +short
curl -6 --noproxy '*' --connect-timeout 5 --max-time 15 \
  -I https://v6.example.com/
curl -4 --noproxy '*' --connect-timeout 5 --max-time 15 \
  -I https://v6.example.com/

上面两次 curl 分别检查 IPv6 和 IPv4;测试子域名需要同时有对应 A / AAAA 记录,才能做这样的双栈对比。只在外部访问验证成功后,再把同样的配置应用到正式网站。

Cloudflare 用户多检查一步

橙云代理下,访问者看到的是 Cloudflare 的边缘地址。即使源站只有 IPv4,访客到边缘也可以使用 IPv6,所以“查询到 AAAA、浏览器能打开”不能证明搬瓦工源站已走 IPv6。前后两段连接的区别见 Cloudflare IPv6 兼容性

可使用预先配置好的测试域名,借助 --resolve 直接连源站,保留正确的 Host 与 TLS 域名校验。源站若只允许 CDN 回源,应仅给你的受控测试地址添加临时放行,不要为了测试开放全部入站。

# 在具备 IPv6 的外部主机执行
# 域名和文档地址均需替换;证书仍按域名验证,不使用 -k
curl -6 --noproxy '*' --connect-timeout 5 --max-time 15 \
  --resolve 'v6.example.com:443:[2001:db8:1234:5678::10]' \
  -I https://v6.example.com/

错误的 AAAA 不只影响访客,还可能影响证书验证。Let’s Encrypt 对同时有 A 和 AAAA 的域名会优先尝试 IPv6,回退并非覆盖所有失败情况。暂时修不好时,先撤回错误 AAAA,恢复已验证的 IPv4 路径,见 Let’s Encrypt IPv6 验证

八、Windows 电脑怎么测试?

# 在 Windows PowerShell 中执行;替换域名、地址和实际 SSH 端口
Resolve-DnsName v6.example.com -Type AAAA
ping -6 v6.example.com
Test-NetConnection -ComputerName '2001:db8:1234:5678::10' -Port 22
ssh -6 -p 22 root@2001:db8:1234:5678::10

这些命令在电脑端运行,不是在 KiwiVM 中运行。SSH 示例中的 22 只是演示端口,要换成 VPS 的真实端口。TcpTestSucceeded 为 True 说明 TCP 连接成功,并不等于账号认证或网站逻辑已经正常;Ping 成败也只是其中一项证据。

九、常见故障按这个顺序排查

搬瓦工 IPv6 常见故障与排查方向
手动配置、RA、防火墙和 DNS 应分别判断。
现象优先检查先不要做什么
面板已分配,系统没有公网 IPv6是否按提示重启;接口是否禁用;模板由谁管理网络不要重复激活或直接重装
有地址但没有默认路由静态网关是否正确,或者 RA 是否被接收不要猜 ::1 / fe80::1
出现 dadfailed地址冲突、重复配置或错误接入参数不要关闭 DAD 绕过检查
出站正常,外部访问失败客户端 IPv6、服务监听、入站规则与源站限制不要只修改 DNS
SSH 正常,下载或 TLS 卡顿ICMPv6、路径 MTU、应用日志及目标站点不要清空整个防火墙
重启后失效配置是否持久化,是否被 cloud-init 或网络管理器改回不要依靠反复手动加地址
发布 AAAA 后部分用户打不开记录是否准确,源站服务是否真正支持 IPv6先撤回错误记录,不要保留坏地址等待“自动修好”

如果 IPv4 和 IPv6 同时完全不可用,先回 KiwiVM 查看运行状态、流量额度和通知,而不是只修 IPv6。相关情况可看 搬瓦工流量用完怎么办?流量统计和重置时间搬瓦工 CPU 占用过高导致 VPS 暂停怎么办

十、重装、迁移和上线后的注意事项

搬瓦工 IPv6 配置后的验证与迁移检查清单
保留 IPv4 管理通道,确认业务双栈都正常后再结束维护。

重装后,面板分配状态与系统内部配置要分别检查,不能只凭旧截图判断地址还在。迁移或更换 IP 后,重新核对 IPv6 网段、网关、AAAA、网站绑定地址、防火墙白名单、监控和 PTR。具体迁移操作见 搬瓦工迁移机房完整教程

也不要把 IPv4 的线路测评直接当作 IPv6 的保证。两种地址族可能选择不同路径,去程、回程和晚高峰都需要分别测试;有关线路名称可参考 搬瓦工 CN2 GIA、CN2 GT、CMIN2、CUP、9929、软银线路区别。这篇教程不提供未实测的延迟或速度承诺。

配置完成后,保留一个可用的 IPv4 管理入口;监控网站实际返回,而不只是是否能 Ping。只有外部访问和重启后的复查都通过,才算完成双栈上线。

常见问题

开启 IPv6 会替换原来的 IPv4 吗?

本教程采用双栈方式,保留原 IPv4 并增加 IPv6。不要删除原有 IPv4 地址、路由和 A 记录;开启 IPv6 不需要重装系统。

为什么激活了 /64,网站还是不能用 IPv6?

面板分配、网卡配置、默认路由、服务监听、防火墙和 AAAA 是不同环节。按正文四层验证定位,不能只看面板显示已激活。

网关是不是统一写成 ::1?

不是。网关及前缀必须来自当前实例的接入参数;路由 /64 的交付形式也不能仅凭地址段名称推断。

没有 IPv6 的电脑能配置 VPS 吗?

可以先通过现有 IPv4 SSH 或 KiwiVM 配置。验证 IPv6 入站时,再换一条支持 IPv6 的外部网络。

Cloudflare 查到了 AAAA,就说明源站开启成功了吗?

不能这样判断。代理模式返回的是边缘地址,需要另外验证 VPS 的 IPv6 地址和源站服务。

IPv6 是独立、不限额的免费流量吗?

不要把分配 IPv6 理解成新增独立流量包。流量额度和统计以实例套餐与 KiwiVM 为准,不能用增加地址的方式绕过额度。

搬瓦工开启 IPv6 的关键,是先让 VPS 的地址和路由正常,再让服务与 DNS 配合。能自动完成的,不必手动改网络;需要手动配置的,先识别管理器、保留 IPv4、逐项验证,出了问题也更容易回退。

相关阅读

微信订阅号

VPS收割者微信公众号

QQ群(全员禁言)

VPS收割者QQ群(全员禁言)