在 Windows Server 2016 上运行 IIS 10 时,我遇到了 IPv6 绑定神秘地停止工作的问题。
当通过 IPv6 从服务器连接或通过 IPv4 从任何系统连接时,一切正常,站点按预期加载。
当连接到没有子域的主机名或连接到绑定到同一站点的另一个域时,IPv6 可以正常工作,但是当尝试连接 www 子域或几个其他以前工作的子域时,连接通过 HTTPS 超时。无论主机名是什么,HTTP(仅设置为重定向到 HTTPS)也可以正常工作。
有效和无效的绑定都指向相同的 IPv6 地址,并且有效的 IPv4 绑定和 IPv6 绑定都位于同一个 IIS 站点上。我重建了绑定,但没有任何效果。
我不知道该检查什么。什么可能导致 IPv6 上的 HTTPS 在某些子域上超时?(我也尝试使用简单的文本文件来确保这不是脚本问题。我还尝试清除 web.config,但没有成功。)
有问题的网站是 ajhenderson.com。robots.txt 在根目录中可用,可用于查看行为。
- https://ajhenderson.com/robots.txt应该可以在 IPv4 和 IPv6 上工作。
- https://www.ajhenderson.com/robots.txt可以在 IPv4 上运行,但不能在 IPv6 上运行。
- https://www.synthesissoftware.com/robots.txt正在对两者进行研究。
同一 IIS 实例上的其他站点使用不同的 IPv6 地址,IIS 站点运行正常。尝试将 ajhenderson.com 的 IPv6 地址用于其他站点之一时也遇到了同样的失败(将 www.ajhenderson.com 绑定移动到另一个 IIS 站点)。
更新:看来导致问题的原因已经自行解决。我使用 Windows 计算机和 Android 上的 4 台不同设备在 Chrome 和 Firefox 中运行了测试,这些设备具有 4 种不同的互联网连接,处于 2 个不同的州。它们之前都表现出相同的行为,但现在却神秘地自行纠正了。
再次更新:这似乎是一个间歇性问题,但这次又出现了,不过看起来可能是 IPv4 不工作,而 IPv6 这次工作正常。以下是 httperr.log 中的一行:
2018-05-04 18:44:52 x.x.x.x 27313 74.208.155.100 443 - - - - - - ClientCancel -
答案1
我认为您的 DNS 记录中有拼写错误。
$ host ajhenderson.com
ajhenderson.com has address 74.208.155.100
ajhenderson.com has IPv6 address 2607:f1c0:841:39e6:2bda:14a7:47f:5b92
$ host www.ajhenderson.com
www.ajhenderson.com has address 74.208.115.100
www.ajhenderson.com has IPv6 address 2607:f1c0:841:39e6:2bda:14a7:47f:5b92
看起来 www.ajhenderson.com 的 IPv4 地址输入有错误。