Ubuntu

為什麼這個 IPv6 監聽指令也不接受 IPv4?

  • September 21, 2013

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

server {
 listen [::]:80 default_server;

 location / {
   root /home/lwood/websites/default/public;
 }
}

我已經重新啟動了nginx。

為什麼 nginx 不接受 IPv4 連接?這是文件

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

他們提到

預設情況下,在 Linux 中,任何 IPv6 TCP 套接字也接受 IPv4 流量……執行時參數:net.ipv6.bindv6only,預設值為 0。

我已經檢查過sysctl,bindv6only 確實設置為 0。所以我的 IPv6 監聽指令也應該接受 IPv4,對吧?

我一定是誤解了文件。解釋將不勝感激。

wiki 已經過時了。如實際文件中指定,預設為ipv6onlyonnginx 1.3.4 以來。如果省略該參數,則 nginx 將僅綁定到 IPv6。從不使用作業系統設置。

引用自:https://serverfault.com/questions/540693