为什么这个 IPv6 监听指令不也接受 IPv4?

lwo*_*ood 3 ubuntu nginx ipv6 ipv4

在 Ubuntu 12.04 上的 nginx (1.4.2) 设置中,我只设置了一个配置文件(我删除/禁用了其他文件):

server {
  listen [::]:80 default_server;

  location / {
    root /home/lwood/websites/default/public;
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经重新启动了 nginx。

为什么 nginx 不接受 IPv4 连接?这是文档

http://wiki.nginx.org/HttpCoreModule#listen

他们提到

在 Linux 中,默认情况下,任何 IPv6 TCP 套接字也接受 IPv4 流量……运行时参数:net.ipv6.bindv6only,默认值为 0。

我已经检查过sysctl,bindv6only 确实设置为 0。所以我的 IPv6 监听指令也应该接受 IPv4,对吗?

我一定是误解了文档。一个解释将不胜感激。

Mic*_*ton 5

维基已经过时了。如在规定实际文件,默认ipv6onlyon因为nginx的1.3.4。如果省略该参数,则 nginx 将只绑定到 IPv6。从不使用操作系统设置。