IPv6 部署指南:VPS 开启 IPv6 的完整配置流程

IPv6 部署封面

为什么现在要在 [VPS](https://cn.hostease.com/vps/)([虚拟专用服务器](https://cn.hostease.com/vps/))上部署 IPv6

IPv4(互联网协议第四版)地址长期紧张,越来越多访问网络已经优先支持 IPv6(互联网协议第六版)。如果网站只依赖 IPv4(互联网协议第四版),在部分移动网络、海外访问或新业务接入场景中,可能出现解析路径更长、访问链路绕行、排障成本上升等问题。本文会按“确认地址、配置系统、添加 DNS(域名解析系统)、开放服务、设置防火墙、验证结果”的顺序,教你如何把 VPS(虚拟专用服务器)平稳改造成 IPv4(互联网协议第四版)与 IPv6(互联网协议第六版)并行的双栈环境。

这篇指南适合已经能通过 SSH(安全外壳协议)登录服务器、但不确定从哪里开始配置 IPv6(互联网协议第六版)的站长。开始前也建议先了解 VPS 主机基础介绍服务器运维入门内容,这样后续看到网卡、路由、解析和防火墙规则时不会混淆。

第一步:确认服务商是否已经分配 IPv6(互联网协议第六版)地址

真正动手前,先确认 VPS(虚拟专用服务器)是否已经拿到可公网访问的 IPv6(互联网协议第六版)地址。登录服务器后执行下面的命令:

ip -6 addr show
ip -6 route show

如果网卡上只有 fe80:: 开头的地址,它通常只是链路本地地址,不能直接作为公网地址使用。你需要在控制面板中检查实例是否已启用 IPv6(互联网协议第六版),并记录平台分配的地址、前缀长度和默认网关。常见前缀包括 /64/128/64 更常见于完整子网分配,/128 通常表示单个主机地址。若你还在比较不同主机类型,可参考 独立服务器与 VPS 的区别,先确认当前资源是否适合长期承载双栈访问。

IPv6 地址检查

第二步:在 Linux 中写入 IPv6(互联网协议第六版)网络配置

确认地址后,再进入系统配置。采用 Netplan 的发行版通常需要编辑 /etc/netplan/*.yaml,在对应网卡下写入 addressesroutes 或网关信息。配置完成后执行:

sudo netplan try
sudo netplan apply

netplan try 会给你一次自动回滚机会,适合远程操作,避免因为写错网关导致 SSH(安全外壳协议)断开。使用传统网络脚本的系统,则要检查网卡配置文件中的 IPV6INIT=yesIPV6ADDR=IPV6_DEFAULTGW=。无论哪种方式,都建议在变更前复制一份原配置,例如 cp eth0.conf eth0.conf.bak,这样出错时可以通过控制台快速恢复。

如果系统内核禁用了 IPv6(互联网协议第六版),即使地址和路由正确也不会生效。可用 sysctl net.ipv6.conf.all.disable_ipv6 查看结果,返回 0 表示启用,返回 1 表示禁用。需要调整时,把 /etc/sysctl.conf 中对应值改为 0,再执行 sudo sysctl -p。在 Hostease 的 VPS(虚拟专用服务器)环境中,通常已经具备基础 IPv6(互联网协议第六版)支持,但迁移旧系统或自定义镜像时仍应按上述命令复查。

第三步:添加 DNS(域名解析系统)AAAA 记录

系统能访问 IPv6(互联网协议第六版)并不代表域名已经能走 IPv6(互联网协议第六版)。你还需要在域名解析面板里添加 AAAA 记录。A 记录指向 IPv4(互联网协议第四版)地址,AAAA 记录指向 IPv6(互联网协议第六版)地址;如果两者同时存在,访问端会根据本地网络和系统策略选择合适协议。

实际配置时,主机记录通常填 @www,记录值填写完整 IPv6(互联网协议第六版)地址,TTL 可以先保持默认。保存后用下面命令验证:

dig AAAA example.com +short
nslookup -type=AAAA example.com

如果查询不到结果,先确认是否保存到了正确的 DNS(域名解析系统)区域,再等待 TTL 缓存刷新。对业务站点来说,不建议删除原有 A 记录后再测试;更稳妥的做法是让 IPv4(互联网协议第四版)和 IPv6(互联网协议第六版)并行一段时间,观察日志中 IPv6(互联网协议第六版)访问比例和错误率。

DNS AAAA 记录

第四步:让 Web 服务进入双栈监听状态

解析生效后,还要确认 Web 服务真的监听了 IPv6(互联网协议第六版)端口。以常见 Web 服务为例,HTTP(超文本传输协议)使用 80 端口,HTTPS(加密超文本传输协议)使用 443 端口。检查监听状态可以执行:

ss -lntp | grep -E ':80|:443'

如果只看到 0.0.0.0:80,说明服务可能只监听 IPv4(互联网协议第四版)。你需要在站点配置中加入类似 listen [::]:80;listen [::]:443 ssl; 的监听项,并重新加载服务。调整前请先执行配置测试,例如 nginx -tapachectl configtest,避免语法错误让线上站点中断。

容器场景还要额外检查运行时网络。使用 Docker 时,/etc/docker/daemon.json 中通常需要启用 ipv6 并设置 fixed-cidr-v6。这一步不建议直接复制陌生配置到生产环境,先在测试容器里验证入站端口和出站访问,再逐步迁移。需要更多部署背景时,可以继续阅读 Docker 部署实践

第五步:补齐 IPv6(互联网协议第六版)防火墙规则

很多服务器已经配置了 IPv4(互联网协议第四版)的 iptables 规则,但 IPv6(互联网协议第六版)流量走的是独立规则集。只检查 IPv4(互联网协议第四版)防火墙,会留下一个常见漏洞:IPv4(互联网协议第四版)端口被限制,IPv6(互联网协议第六版)端口却全部开放。

建议先查看当前规则:

sudo ip6tables -L -n -v
sudo ip6tables -S

生产环境中,一个基础策略通常包括三类规则:允许已建立连接继续通信;允许本机回环接口;只开放 SSH(安全外壳协议)、HTTP(超文本传输协议)和 HTTPS(加密超文本传输协议)等必要端口。ICMPv6(IPv6 控制消息协议)不要全部封死,因为邻居发现和路径 MTU(最大传输单元)发现依赖它,完全阻断可能导致“能解析但打不开”这类隐蔽问题。配置完成后,用 ip6tables-save 或发行版对应的持久化工具保存规则。高访问量站点还应结合 带宽(网络传输容量)优化相关内容 检查入口流量与安全策略是否匹配。

IPv6 防火墙规则

第六步:验证连通性并定位常见故障

完成配置后,不要只在服务器本机测试出站访问,还要从外部网络检查入站访问。你可以先执行:

ping -6 2606:4700:4700::1111
curl -6 -I https://example.com

如果 ping -6 提示 Network unreachable,优先检查默认路由;如果域名没有 AAAA 结果,回到 DNS(域名解析系统)面板核对记录;如果 IPv6(互联网协议第六版)地址能通但 80 或 443 端口不通,多半是 Web 服务监听或 ip6tables 规则没有放行。排查时建议按“地址 → 路由 → DNS(域名解析系统)→ 端口 → 应用日志”的顺序走,不要同时改多处配置,否则很难判断是哪一步真正生效。

总结与后续建议

IPv6 部署的关键不是某一条命令,而是让地址、系统路由、DNS(域名解析系统)、Web 服务和防火墙形成闭环。建议你在正式切换前保留 IPv4(互联网协议第四版)访问路径,至少观察 24 到 72 小时的访问日志、错误日志和监控告警;确认稳定后,再把 IPv6(互联网协议第六版)纳入日常巡检清单。如果你需要从服务器选型、迁移到后续运维一起规划,可以考虑使用支持双栈网络的 VPS(虚拟专用服务器)方案,并把解析、备份、监控和安全规则作为同一套上线流程管理。

发表评论