我只是在玩 apache,我让它工作了,也就是说我可以通过浏览连接到服务器,http://127.0.0.1
而且http://192.168.1.5
我没有运行 IPv6
这是 netstat 的结果
$ sudo service apache2 status
* apache2 is running
$ netstat -an | grep :80
tcp6 0 0 :::80 :::* LISTEN
$ wget 127.0.0.1
--2014-06-26 01:32:15-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: ‘index.html’
100%[=====================================================================================================>] 11,510 --.-K/s in 0s
2014-06-26 01:32:15 (161 MB/s) - ‘index.html’ saved [11510/11510]
我原本期望看到它在常规 TCP 上进行监听,而它显然确实做到了!?
编辑:
$ netstat -a | grep LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 [::]:https [::]:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
编辑2: 为什么投反对票?我遗漏了什么,有人能详细说明一下吗?
答案1
总结
阿帕奇做出现在你的netstat
输出中,并且它是正在运行。这就是您的wget
调用有效的原因。但是,它绑定到您的 IPv6 地址,而不是 IPv4 地址。地址映射会在必要时处理转换。
查看文档
这里显然存在一些 IPv6-IPv4 回退机制。事实上,我还没有在本地网络上使用 IPv6:
$ netstat -tunla | grep LISTEN | grep 80
tcp6 0 0 :::80 :::* LISTEN
需要注意的是,无论你如何定位你的机器,最终它仍然是相同的服务和端口。其余的主要是你的浏览器和 DNS 解析服务。但是,有关 Apache 如何处理此问题的更多信息,你可能需要查看他们的文件:
对于 Apache 管理员来说,一个复杂因素是 IPv6 套接字是否可以同时处理 IPv4 连接和 IPv6 连接。使用 IPv6 套接字处理 IPv4 连接使用 IPv4 映射的 IPv6 地址,这在大多数平台上默认允许,但在 FreeBSD、NetBSD 和 OpenBSD 上默认不允许,以匹配这些平台上的系统范围策略。在默认不允许的系统上,特殊的配置参数可以更改 Apache 的此行为。
基本上,这是关于如何处理 IPv4 和 IPv6 套接字,以避免与跨平台兼容性和套接字处理相关的大多数问题。正如您所读到的,在 Ubuntu 等 Linux 平台上,这个问题可以通过以下方式解决:IPv4 映射的 IPv6 地址. 文档还指出:
如果您希望 Apache 仅处理 IPv4 连接,无论您的平台和 APR 支持什么,请在所有 Listen 指令上指定 IPv4 地址。
这将在文件中给出如下内容ports.conf
:
Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80
产生以下netstat
输出之一...
$ netstat -tunla | grep LISTEN | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp 0 127.0.0.1:80 127.0.0.1:80 LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp 0 192.0.2.1:80 192.0.2.1:80 LISTEN
一个漂亮但尚未准备好 IPv6 的监听器。上述设置通常在 中设置/etc/apache2/ports.conf
(对于较旧的版本,则直接在 中设置apache2.conf
)。默认值为Listen 80
,它执行自动的绑定,即符合文档中给出的IPv6规范。