这让我快疯了。
我有一台运行 IIS 8.5 的 Windows Server 2012 R2 计算机。IPv6 在这台机器上运行良好。我浏览的所有 IPv6 测试站点都表明这台机器确实在运行 IPv6。例如,浏览 ipv6test.google.com 表明这台服务器上正在运行 IPv6。
我网站的主页有一些显示客户端 IP 地址的服务器端代码。当我使用 IPv6 连接浏览网站时,网站主页显示客户端的 IPv6 IP 地址;当我使用 IPv4 连接浏览时,网站主页显示客户端的 IPv4 IP 地址,一切如预期。
一切都一定运转良好,对吧?
奇怪的是,网上有几个测试网站可以告诉你你的网站是否“支持 IPv6”(不管这意味着什么)。他们都报告说我的网站不是IPv6 已准备就绪,原因如下:
http://ipv6-test.com/validate.php 这个网站可以正常找到我的 AAAA DNS 记录,但随后却显示“Web 服务器无法访问:连接超时”,然而,正如我所提到的,我能通过 IPv6 浏览器连接浏览。
http://ip6tools.com/ 如上所述,AAAA DNS 记录指向我的服务器。所有测试均通过除了“网站 IPv6 兼容性检查”。结果非常有用的消息是“Web 服务器与 IPv6 不兼容!”(天哪,谢谢。)
http://ip6.nl/ 此网站在测试“仅 IPv6 DNS”时报错。这个(非常无用的)错误是“不起作用”。我使用 ClouDNS.net 作为我的名称服务器,他们确实提供了一个 IPv6 服务器(ns14.cloudns.net)。
所有上述测试都表明我的网站不是IPv6 已准备好,但是,正如我所提到的,我能够通过 IPv6 连接进行浏览,并且网站显示浏览器的客户端 IPv6(或使用 IPv4 连接时显示 IPv4)IP 地址。
以下是我的网站的一些配置信息:
它在 GoDaddy 注册。DNS 托管公司是 ClouDNS.net。当然,我更新了 GoDaddy 以使用 ClouDNS.net 名称服务器。据我所知,ClouDNS.net 确实提供了 IPv6 服务器。我的 Web 服务器在家里的路由器后面运行。我有 Comcast Internet。我已将路由器配置为将传入的 IPv4 HTTP 请求端口转发到我服务器的本地 IPv4 地址。(当然,服务器的 IPv6 地址已经是全局的,因此“端口转发”不适用于 IPv6 地址。)
之前我提到过三个测试网站“IPv6 就绪性”的网站。我检查了 IIS 日志,没有发现任何迹象表明这些网站试图连接到我的网站。但我不是 Windows Server 专家,所以也许我漏掉了什么。
我确实认为我的网站已经准备好支持 IPv6,但是当几个测试网站告诉我它还没有准备好时,我担心我可能会错过一些东西。有人能解释一下这里可能发生了什么吗?为什么这些网站告诉我我还没有准备好 IPv6(请不要告诉我联系测试网站,因为我已经尝试过了)。
非常感谢。
答案1
如果您的路由器提供安全网络,那么它将阻止所有传入的 IPv6 地址。我期望任何提供 IPv4 NAT 功能以及 IPv6 的路由器都会有一个默认的拒绝策略。这将提供与空的 IPv4 NAT 表大致相同的安全性。
检查路由器的防火墙配置,并打开端口 80 以连接到 Web 服务器的 IPv6 地址。这相当于设置 IPv4 NAT 端口转发规则。
禁用 IPv6 防火墙可能会带来安全风险。