Apache 2.2 不会以 ipv6 地址启动

Apache 2.2 不会以 ipv6 地址启动

我尝试仅允许某个文件夹上的本地主机,它可以完美地与 ipv4 ( Allow from 127.0.0.1) 配合使用,但是一旦我添加 ipv6 ( Allow from [::1]),我的 Apache 将无法再启动。

我检查了一下error.log,上面写着:

指定的 IP 地址无效。

我已经输入了没有压缩格式的 ipv6 地址,但还是不起作用。

我正在使用 Apache 2.2.25、Windows 8.1。我的计算机上启用了 IPv6。

答案1

用括号括住 IPv6 地址的表示法仅用于地址和可选端口号之间可能混淆的情况。

其中一个例子是Listen指令。因为它可以同时指定地址和端口,所以必须添加括号以避免混淆:Listen 2001:db8::1:8080是无效的,因为它可以同时表示Listen [2001:db8::1]:8080Listen [2001:db8::1:8080]。括号使其明确。

为了Allow from指令则不然。指定地址时,它始终是没有端口号的地址。因此Allow from 2001:db8::1:8080永远不会产生歧义。它始终是 IPv6 地址2001:db8::1:8080

如果省略括号 ( Allow from ::1) 它应该可以工作。

答案2

您的虚拟主机将像这样定义<VirtualHost *:80>,允许 ipv4 和 ipv6 访问。

此外,Apache 文档对 IPv6 限制使用以下格式: Allow from 2001:db8::a00:20ff:fea7:ccea Apache 文档

相关内容