Debian Linux Disable IPv6 Networking

Posted on in Categories , last updated July 22, 2010

How do I disable an IPv6 network connection and all its subsystem for my server? I’m having some problem with my GUI program under Debian “Squeeze”, how can I disable IPv6?

The Internet Protocol version 6 can be disabled by removing kernel driver or module called ipv6. To disable the same just type the following command:
echo 'blacklist ipv6' >> /etc/modprobe.d/blacklist
Simply reboot the box:
# reboot

Alternatively you can use the ifconfig command to remove all ipv6 addressed assigned to your box. You also need to remove ipv6 gateway using the route command itself and finally use the rmmod command to remove ipv6 driver. This is useful if you don’t want to reboot the box. Please note that eth0 connectivity will go down and you cannnot use the following commands over the ssh session:
# ifconfig down eth0
# route -A inet6 del {network6}/{prefixlength} gw {ipv6address} eth0
# lsmod | grep ipv6
# rmmod ipv6
# ifconfig eth0 up
#### or
# /etc/init.d/networking restart

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

9 comment

    1. Instead of rebooting after adding the disableipv6.conf file, just run:
      # sysctl -w net.ipv6.conf.all.disable_ipv6=1

      This will make the change take effect immediately.

  1. Hi.

    Debian Testing amd 64:
    Question: How to disable ‘All’ programs ability to listen using tcp6.
    i.e netstat -tupln
    tcp 0 0 0.0.0.0:3142 0.0.0.0:* LISTEN 1787/apt-cacher-ng
    tcp6 0 0 :::3142 :::* LISTEN 1787/apt-cacher-ng

    Steps taken:
    1. Added to /etc/modprobe.d/blacklist.conf : ‬blacklist ipv6‭
    2. Created: /etc/sysctl.d/disable-ipv6.conf ;
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.eth0.disable_ipv6 = 1
    net.ipv6.conf.eth1.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    net.ipv6.conf.vboxnet0.disable_ipv6 = 1
    3. Uncommented: /etc/sysctl.conf ;
    net.ipv6.conf.all.accept_redirects = 0
    net.ipv6.conf.all.accept_source_route = 0
    4. Added: /etc/modprobe.d/aliases.conf
    alias net-pf-10 off
    alias ivp6 off
    5. Commented out: /etc/hosts (all ipv6 references)

    I wish to disallow any and all ipv6 initiated by a program.

    Caveats: Unfortunately using the firewall ‘ufw’ overrides the /etc/sysctl.conf and /etc/sysctl.d/* . To include my custom options.
    I added the below to: /etc/ufw/sysctl.conf ;

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.eth0.disable_ipv6 = 1
    net.ipv6.conf.eth1.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    net.ipv6.conf.vboxnet0.disable_ipv6 = 1

    Still showing ipv6 listenting. (grrrr)

    Thank you.
    Penny

Leave a Comment