IPv6 有效性测试失败。这是什么意思?

IPv6 有效性测试失败。这是什么意思?

当我使用https://ipv6-test.com/validate.php测试我的网站是否准备好 IPv6(例如域名 www.[private].com),测试失败并返回错误:

IPv6 web server     web server is unreachable : Connection refused

其他测试站点如https://ready.chair6.net/由于有关 ipv6 的各种错误,测试也失败了。

我已经检查过在进行测试时服务器上没有错误,并且我已经做了各种事情来启用 ipv6。最后,我决定忽略这个问题,因为我不知道为什么测试失败,但我仍然可以在我的服务器上 ping ipv6 地址。但我脑子里只有这个问题:

测试是否得出网站 www.[private].com 只能通过仅使用 ipv6 地址连接的客户端访问?如果是,那么我应该担心。您觉得呢?

编辑澄清(回答@Piotr P. Karwasz):

1)服务器确实监听IPv6:

在此处输入图片描述

2)这是 ip6tables -nVL INPUT 的输出(请注意,我还完全禁用了防火墙来测试网站,但像您提到的那样执行 curl 时仍然出现连接拒绝的情况)

在此处输入图片描述

3) 关于监听指令。是的,ipv6 监听指令在那里。例如,服务器得到了这个设置:

server {

 listen ipv4:80
 listen ipv6:80 ipv6only=on;

}

server {
 listen ipv4:443 ssl http2
 listen ipv6:443 ssl http2 ipv6only=on;
}

4)Ipv6配置已启用:

在此处输入图片描述

执行此命令时也是如此:

[ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'

输出为:

IPv6 ready system!

5) 执行此操作时:netstat -napl | grep 80 似乎 nginx 和 httpd 在 ipv6 上运行正常。输出为:

在此处输入图片描述

关于此服务器的其他事项:

a)nginx_apache 作为反向代理(nginx 作为前端,apache 作为后端)

b)操作系统是Centos 8

c) 使用 linode 上的 directadmin 主机(linode 已验证他们那边的 IPv6 没有问题)。

编辑:已解决。感谢@Piotr P. Karwasz 指出 IP 中有一个拼写错误。IP 中有一个字符的拼写错误,我把 fe05 写成了 f305

编辑域名以防止被搜索引擎索引。

答案1

您测试了您的主机是否可以通过 IPv6 访问ping,但您实际上并没有通过端口 80 连接到它:

curl -6 -i http://www.example.com/

连接失败。这意味着:

  • 您的服务器未监听 IPv6 套接字。您可以使用以下命令检查:

    netstat -6nl | grep 80
    

    寻找如下一行:

    tcp6       0      0 :::80                   :::*                    LISTEN
    

然后检查Listen您的配置中的指令。

  • 防火墙阻止了 IPv6 端口。检查方法如下:

    ip6tables -nvL INPUT
    

    如果策略是DROP,而您没有ACCEPT端口 80 的规则,则需要添加它。

编辑:经过您的澄清,似乎您在输入 IPv6 地址时输入了错误nginx配置:您忘记了地址的最后 8 位十六进制数字。除非您确实需要指定应该在哪个地址上nginx听着,只需指定所有地址:

listen *:80;
listen [::]:80;

相关内容