Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#345 closed defect (invalid)

Nginx 1.4.0 is not binding to IPv4 with [::]:80 on Ubuntu 13.04 when net.ipv6.bindv6only is set to false

Reported by: www.google.com/accounts/o8/id?id=AItOawnIl1AG2Z8xRYaa0kjsGw-HMX7pN81M2Gc Owned by:
Priority: major Milestone:
Component: nginx-core Version: 1.3.x
Keywords: ipv4, listen, bind Cc:
uname -a: Linux jannite 3.8.4-linode50 #1 SMP Mon Mar 25 15:50:29 EDT 2013 i686 i686 i686 GNU/Linux
nginx -V: nginx version: nginx/1.4.0 built by gcc 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6

Description

Nginx 1.4.0 is not binding to IPv4 with [::]:80 on Ubuntu 13.04 when net.ipv6.bindv6only is set to false.

server {

    listen [::]:80;
...
}
$ sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0
$ sudo netstat -npl | grep nginx
tcp6       0      0 :::80                   :::*                    LISTEN      4265/nginx.conf

I can fix this by explicitly specifying Nginx to bind also to IPv4.

server {

    listen 80;
    listen [::]:80;
...
}

Change History (4)

comment:1 Changed 6 years ago by mdounin

  • Resolution set to invalid
  • Status changed from new to closed

This is expected behaviour, the ip6only is now consistently set to on, see http://nginx.org/en/CHANGES:

Changes with nginx 1.3.4                                         31 Jul 2012

    *) Change: the "ipv6only" parameter is now turned on by default for
       listening IPv6 sockets.

...

You should either list both IPv6 and IPv4 listen sockets, or explicitly switch off ipv6only for IPv6 sockets.

comment:2 follow-up: Changed 6 years ago by www.google.com/accounts/o8/id?id=AItOawnIl1AG2Z8xRYaa0kjsGw-HMX7pN81M2Gc

Ah, I see. Thank you Maxim! Maybe the wiki page should be updated to reflect this information: http://wiki.nginx.org/HttpCoreModule#listen

comment:3 in reply to: ↑ 2 Changed 6 years ago by ru

Replying to Kasper Hirvikoski <kasper@kytkemo.com>:

Ah, I see. Thank you Maxim! Maybe the wiki page should be updated to reflect this information: http://wiki.nginx.org/HttpCoreModule#listen

We do not maintain wiki, please refer to official docs in the future.

comment:4 Changed 6 years ago by www.google.com/accounts/o8/id?id=AItOawnIl1AG2Z8xRYaa0kjsGw-HMX7pN81M2Gc

My mistake. Thank you for your kind and helpful responses.

Note: See TracTickets for help on using tickets.