我的服务器上有几个子域,当从任何 http 客户端(在 80 上的 HTTP 或 443 上的 HTTPS,取决于子域)联系时,所有子域都会给我超时。
当直接从同一服务器联系时,HTTP 请求有效并由 Apache 记录:
$ wget http://test.yosko.net/
...
2020-08-19 12:34:20 (603 KB/s) - ‘index.html’ saved [6/6]
但是当从任何其他客户端完成时,我会超时,并且在 Apache 的 error.log 或 access.log 中找不到任何内容。
起初我想到了我的 HTTPS 子域的 certbot 配置存在问题,但由于 HTTP 子域相同,我认为这是一个更广泛的问题。由于服务器上没有代理或反向代理,我看不到它来自哪里。
它突然发生,几天前我的角色没有任何改变,从那时起,在长时间的失败之间,事情在这里和那里工作了几个小时。
有关如何解决此问题的任何想法?
附加信息:我在 Ubuntu Server 20.04 上使用 Apache 2.4。
编辑 1:IPv6 问题
正如这里所建议的,我在ipv6-test.com上测试了我上面的链接,它确实给出了超时。我想我的 ISP 尝试在 IPv6 中联系我的网站(它失败了),而其他人仍在尝试在 IPv4 中(它可以工作)。
但现在我知道我自己也可以尝试。来自我的客户:
$ wget -4 http://test.yosko.net/
...
2020-08-20 09:25:53 (151 KB/s) - «index.html» enregistré [6/6]
$ wget -6 http://test.yosko.net/
...
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
编辑2:当前配置
我的当前/etc/apache2/ports.conf
是默认的,从所有 IP 监听:
Listen 80
它确实适用于 IPv6(请参阅“ tcp6
”提及):
$ sudo netstat -lnptu | grep "apache2\W*$"
tcp6 0 0 :::443 :::* LISTEN 89445/apache2
tcp6 0 0 :::80 :::* LISTEN 89445/apache2
还有我的虚拟主机:
<VirtualHost *:80>
我也试过这个,但问题仍然存在:
<VirtualHost *:80 [::]:80>
站点 test.yosko.net 解析为 IPv4 和 IPv6 地址:
但它甚至无法响应 IPv6 上的 ping:
您确定您在该主机上正确配置了 IPv6 吗?如果是 - 防火墙是否到位并阻止它?如果您使用隧道 - 您是否在 IPv4 防火墙中启用了适当的协议并在隧道接口上设置了正确的 MTU?
同时,我建议删除此主机名的 AAAA 记录,并且只有在 IPv6 被证明可以工作时才重新启用它。