IPv6 VPS服务无法访问的常见原因与排查方法
IPv6 VPS服务无法访问的常见原因与排查方法
近年来越来越多 VPS 开始提供 IPv6 地址,尤其是一些低价 VPS、IPv6-only VPS 和家宽线路服务器。
IPv6 VPS 虽然资源丰富,但在实际使用中经常会遇到一些问题:
- SSH 可以连接,但是网站打不开
- 域名已经解析,但是服务无法访问
- 端口显示开启,但是外部连接失败
- IPv6 可以 ping,但是 TCP 服务不通
本文记录一些常见排查方法。
1: 检查IPv6地址是否正常
首先确认服务器是否拥有公网 IPv6:
1 | ip -6 addr |
正常情况下应该看到:
1 | inet6 xxxx::xxxx scope global |
如果只有:
1 | fe80:: |
说明只是本地链路 IPv6,不能被公网访问。
2: 检查IPv6默认路由
拥有 IPv6 地址后,还需要确认路由:
1 | ip -6 route |
正常应该存在:
1 | default via xxxx::xxxx |
如果没有默认路由,IPv6 通信会失败。
3: 检查服务监听地址
很多程序默认只监听 IPv4。
查看端口:
1 | ss -tuln |
例如:
1 | 0.0.0.0:443 |
表示只监听 IPv4。
如果支持 IPv6,应该类似:
1 | [::]:443 |
例如 Nginx:
1 | listen [::]:443 ssl; |
4: 检查IPv6防火墙
IPv4 和 IPv6 防火墙规则不同。
查看 IPv6:
1 | ip6tables -L |
如果 IPv6 端口被拦截,即使服务正常运行,外部也无法访问。
5: 检查AAAA解析
IPv6 网站需要 AAAA 记录。
查看:
1 | dig AAAA example.com |
如果没有返回 IPv6 地址,需要检查 DNS 配置。
IPv6 VPS常见故障
1: 网站打不开
可能原因:
- DNS AAAA错误
- Nginx没有监听IPv6
- 防火墙限制443端口
2: 面板可以打开,服务无法连接
原因:
- 程序只绑定IPv4
- 端口没有开放IPv6
- 配置文件监听地址错误
3: 开启CDN后异常
部分 CDN 对 IPv6 回源支持不同。
排查时建议:
- 暂时关闭代理
- 使用 DNS only
- 直接测试源站 IPv6
确认源站正常后,再开启 CDN。
总节
IPv6 VPS 出现访问问题时,不要只检查服务程序。
推荐按照以下顺序排查:
- 检查 IPv6 地址
- 检查默认路由
- 检查 DNS AAAA
- 检查端口监听
- 检查 IPv6 防火墙
- 检查应用配置
掌握这些基础排查方法,可以解决大部分 IPv6 VPS 部署中的访问问题。