测试轻量应用服务器(Lighthouse)的 IPv6 连通性,核心在于验证两个层面的状态:一是操作系统内部是否成功获取到了 IPv6 地址并配置了路由;二是外部网络是否能通过公网 IPv6 访问到你的服务。
很多新手容易只盯着 ping 看,但 ping 通不代表业务可用,且国内部分云厂商出于安全考虑,默认可能拦截 ICMPv6 包。因此,我们需要一套组合拳来验证。以下是基于主流国内云厂商(如腾讯云、阿里云、华为云等)通用环境的实操方案。
第一步:确认实例已启用 IPv6
在开始测试前,必须确保你在控制台已经完成了基础配置:
- 网络模式:实例所属的 VPC/子网需支持 IPv6。
- 绑定 EIP 或开启公网 IPv6:轻量应用服务器通常直接分配公网 IPv6 地址,或者需要绑定一个支持 IPv6 的弹性 IP。请检查控制台实例详情,确认“IPv6 地址”字段有值,而非空白或
-。
第二步:操作系统内部验证(Linux 为例)
登录你的服务器,执行以下命令检查内核和网卡状态。
1. 检查 IP 地址分配
ip addr show | grep inet6
预期结果:你应该看到类似 fe80::...(链路本地地址)和 240e:...(全球单播地址)的输出。如果只有 fe80 而没有以 240e、240c、2409 等开头的公网 IPv6 地址,说明 DHCPv6 或静态配置失败,需检查云平台侧的网络策略。
2. 检查路由表
ip -6 route show default
预期结果:应存在一条指向网关的默认路由,例如 default via fe80::1 dev eth0 proto ra metric 1024。如果没有这条路由,即使有 IP 也无法出网。
3. 内部 DNS 解析测试
nslookup ipv6.google.com
# 或者更通用的
dig AAAA google.com +short
如果能解析出 IPv6 地址,说明内部 DNS 正常。
第三步:外部连通性测试(关键步骤)
由于云服务器之间可能存在防火墙规则,我们采用“内网自测”+“网络工具测”相结合的方式。
1. 端口监听测试(最准确)
Ping 不通可能是被防火墙拦截,但端口不通一定是服务没起或网络不通。
在你的服务器上启动一个简单的 HTTP 服务:
python3 -m http.server 8080 &
# 或者使用 ncat/nmap 监听
nc -l -6 -p 8080
然后,不要从本机测试,而是找一台拥有公网 IPv6 的外部机器(比如你自己的手机切换 WiFi 热点,或者家里的宽带电脑)访问:
http://[你的服务器IPv6地址]:8080
注意:IPv6 地址必须用方括号 [] 包裹。
- 如果浏览器能打开页面:恭喜,IPv6 全链路通畅。
- 如果连接超时:重点排查云平台的安全组/防火墙规则。
2. 使用在线 IPv6 检测工具
这是最快判断“运营商/云平台出口”是否支持 IPv6 的方法。
打开浏览器,访问以下任一网站,输入你的服务器 IPv6 地址进行 Ping 或 Traceroute 测试:
- test-ipv6.com:查看是否有 IPv6 图标亮起。
- www.ipaddress.com:选择 “Ping” 标签页,输入 IPv6 地址。
- traceroute.org:查看路径中是否有断点。
技巧:如果这些工具显示丢包率极高或无法 Ping 通,但你的 Web 服务能通过浏览器访问,这通常是正常的。因为许多 CDN 或云厂商会限制对服务器的 ICMPv6 响应,但允许 TCP/UDP 流量。
3. 命令行 Traceroute (mtr)
在服务器上安装 mtr 或 traceroute,追踪到知名 IPv6 节点的路由:
mtr -6 www.baidu.com
# 或
traceroute -6 240e:ff:ff:ff:ff:ff:ff:ff # 百度 IPv6 地址示例
观察第一跳是否为云厂商的内网网关,后续跳数是否正常转发。如果出现 *** *** 持续多跳,说明中间某段网络丢弃了 ICMPv6 包,但不一定影响 TCP 业务。
第四步:常见坑与排查指南
1. 安全组/防火墙拦截
这是 90% 问题的根源。
- 云平台安全组:务必在控制台添加规则,允许
TCP协议,端口范围包含你服务的端口(如 80, 443, 8080),源地址设为::/0(所有 IPv6 地址)。 - 系统内部防火墙:检查
iptables、firewalld或ufw。# Ubuntu/CentOS 7+ 常用命令 sudo ufw status sudo firewall-cmd --list-all确保入站规则中包含 IPv6 的支持。有些旧版配置只开了
eth0而未开eth0:ipv6。
2. 双栈冲突与路由优先级
如果你的服务器同时拥有 IPv4 和 IPv6,某些应用程序可能会优先尝试 IPv4。如果你发现程序明明配了 IPv6 却走了 IPv4,可以在代码中强制指定 getaddrinfo 的行为,或在测试时直接使用 curl -6:
curl -6 -I http://[IPv6地址]/
如果 -6 模式能通,而普通 curl 不通,说明是应用层的 IPv6 回退机制导致的,非网络问题。
3. 轻量应用服务器的特殊限制
部分云厂商的“轻量应用服务器”套餐,其 IPv6 功能可能需要单独购买带宽包或升级套餐才能生效。如果控制台显示有 IPv6 地址,但内外都无法访问,请查阅该厂商关于“轻量应用服务器 IPv6 支持”的具体文档,确认是否存在带宽配额限制。
总结
测试流程建议按此顺序执行:
- 查 IP:
ip addr确认有公网 IPv6。 - 开端口:本地起一个 HTTP 服务。
- 配安全组:确保云平台安全组放行 TCP 入站。
- 网络访问:用手机或家用电脑直接
http://[IPv6]:port访问。
只要浏览器能打开本地起的网页,就证明 IPv6 网络完全可用。无需纠结 Ping 的结果,因为现代互联网环境中,ICMPv6 的限制远比想象中存在。
云技术博客