DMIT VPS IPv6连接失败排查记录:从地址配置到服务访问问题解决

DMIT VPS IPv6连接问题排查记录

最近使用 DMIT VPS 时,遇到了 IPv6 无法正常连接的问题。

服务器控制台可以看到 IPv6 地址,但是实际连接时出现异常,包括 SSH 无法通过 IPv6 访问、域名添加 AAAA 记录后网站无法打开等情况。

IPv6 和 IPv4 最大的区别之一,就是地址配置只是第一步,还需要确认路由、防火墙以及服务监听是否正常。

这篇文章记录实际排查过程。

首先查看 VPS 当前 IPv6 地址:

ip -6 addr

正常情况下,可以看到类似:

inet6 xxxx::xxxx/64 scope global

其中 scope global 表示公网 IPv6 地址。

如果只看到:

::1
fe80::

说明系统没有正确配置公网 IPv6。

确认地址以后,测试 IPv6 网络:

ping6 google.com

或者:

curl -6 https://ifconfig.co

如果能够返回 IPv6 地址,说明 IPv6 出口正常。

如果出现:

Network is unreachable

通常是 IPv6 路由没有配置。

查看当前 IPv6 路由:

ip -6 route

正常情况下应该存在类似:

default via xxxx::1 dev eth0

如果没有 default 路由,服务器虽然拥有 IPv6 地址,但是无法访问 IPv6 网络。

这种情况需要检查 DMIT 控制台提供的 IPv6 网关,以及系统网络配置。


如果 IPv6 网络正常,但是 SSH 仍然无法连接,可以检查 SSH 是否监听 IPv6。

执行:

ss -tlnp | grep ssh

正常应该看到:

:::22

表示 SSH 监听所有 IPv6 地址。

如果只有:

0.0.0.0:22

说明 SSH 只监听 IPv4。

修改 SSH 配置:

vim /etc/ssh/sshd_config

确认:

AddressFamily any

然后重启:

systemctl restart ssh

另外一个容易忽略的问题是 IPv6 防火墙。

很多 VPS 配置只考虑 IPv4,IPv6 防火墙规则可能会阻止访问。

查看 IPv6 防火墙:

ip6tables -L

检查是否存在 DROP 或 REJECT。

如果测试阶段需要排查,可以临时清空:

ip6tables -F

如果清空后恢复访问,说明需要重新配置 IPv6 防火墙规则。


如果 VPS 本身 IPv6 正常,但是网站无法通过域名访问,需要检查 AAAA 记录。

查询:

dig AAAA your-domain.com

确认返回的 IPv6 地址是否和 VPS 当前地址一致。

常见问题包括:

  • AAAA 地址填写错误
  • VPS IPv6 地址变化
  • Nginx 没有监听 IPv6
  • CDN 没有正确支持 IPv6

查看 Web 服务监听:

ss -tlnp | grep nginx

正常应该看到:

:::80
:::443

之前记录过 IPv6-only VPS 的使用过程。

如果你使用的是没有 IPv4 地址的 VPS,可以查看:

IPv6-only VPS使用记录:没有IPv4地址的服务器如何建站和运行服务

里面记录了 IPv6-only 环境下部署服务、建站时遇到的问题。

如果 IPv6 地址正常,但是节点、网站或者其他服务无法访问,可以继续参考:

IPv6 VPS服务无法访问的常见原因与排查方法

这篇主要记录 IPv6 VPS 网络访问异常时的检查方法。


平时排查 IPv6 VPS,我一般会先检查下面几个地方:

查看 IPv6 地址:

ip -6 addr

查看 IPv6 路由:

ip -6 route

测试 IPv6 出口:

curl -6 https://ifconfig.co

查看监听端口:

ss -tlnp

检查域名解析:

dig AAAA your-domain.com

这样基本可以定位大部分 IPv6 连接问题。

DMIT VPS 的 IPv6 问题很多时候不是 VPS 本身故障,而是配置细节导致。

有 IPv6 地址不代表网络一定正常,还需要确认路由、防火墙、服务监听和 DNS 是否全部匹配。

以后遇到类似问题,可以按照这个顺序快速排查。