ip a | grep inet6

inet6 ::1/128 scope host 
inet6 fe80::21c:bfff:fe76:32ec/64 scope link 

lsb_release -a

Distributor ID: LinuxMint
Description:    Linux Mint 7 Gloria - Main Edition
Release:    7
Codename:   Gloria

uname -r


Wireless module:

  • iwl3945
  • 1
    I am just wondering why do you want to do this, anyway? – grawity Aug 9 '09 at 17:09
  • Using the ipv6 addressing scheme, causes a major performance bottleneck in my case (via wireless NIC) compared to Win NT 5.1 – Aaron Aug 9 '09 at 18:02

Linux Mint is Ubuntu-based which in turn is based on Debian, and I've seen two basic ways to do this in Debian:

First method: Blacklist the ipv6 module by adding the following to /etc/modprobe.d/blacklist (on newer systems it's /etc/modprobe.d/blacklist.conf):

blackist ipv6

Second method: Turn off the aliases in /etc/modprobe.d/aliases. Create a new file in the /etc/modprobe.d directory, call it 00local. (This will prevent your change from being removed by an upgrade to a default alias file.) Add these lines to that file:

alias net-pf-10 off    
alias ipv6 off

However, all of this is for disabling or turning off a module-based ipv6, and at least one post I saw suggested that very recent kernels (circa 2.6.29) have ipv6 support built in. So at some point, neither of these two methods will work. (Please note that you will need superuser privileges for either of these methods. I've also seen at least one post that mentioned a further required step for KDE users. I'll post links below.)

After this, there are two optional steps. First you can turn off ipv6 in your browser. I only know how to do this in Firefox, but I'm sure it can be done in other browsers. Second, you can comment out all lines in /etc/hosts that refer to ipv6. It's not clear to me that these two tweaks give any huge benefit, but I'll mention how to do each. For Firefox, you can disable ipv6 support by opening a window and entering 'about:config' in the address bar. Then search for ipv6 and set the network.dns.disableIPv6 option to true by double clicking on it. (It's a boolean and set to false by default, so you can switch its state easily.) For /etc/hosts, open that file in your favorite editor (you'll need superuser privileges to edit it), and put a # at the start of all the lines that refer to ipv6.

Links (some of these links offer methods that are slight variants on the two I give above; I stuck them in for added ideas):

  • You think it would be worth re-compiling the kernel, without ipv6 support? – Aaron Aug 9 '09 at 16:41
  • I think that would depend on how serious the performance hit is. If it's bad enough that you notice it, then sure. Compiling your own kernel is not the end of the world. There are lots of good guides, and Debian's tools (especially make-kpkg) help to integrate it with the rest of a Debian system. (I'm assuming that Mint shares the Debian way of building and maintaining kernels. See this link: kernel-handbook.alioth.debian.org) – Telemachus Aug 9 '09 at 20:15
  • I'm using OpenSuse 11.1 - it is possible to disable the ipv6 module via Yast2. The iwl3945 is still extremely slow... I'll accept your answer - kind regards with the help – Aaron Aug 18 '09 at 17:31
  • @Aaron: I apologize, but I've never used OpenSuse. You might try asking at their forums, since nobody else seems to be answering here. forums.opensuse.org – Telemachus Aug 18 '09 at 19:54

Things have moved on a bit since this post but these days the ipv6 module is often built into the kernel so if you want to disable ipv6 in Linux you'll need to use a sysctl:

sudo sysctl net.ipv6.conf.all.disable_ipv6=1

Or just using /proc

echo 0 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6

If you want to just disable parts of the ipv6 functionality then you can do that using the various other systctl ipv6 parameter - you can list them like this:

sysctl net.ipv6.conf

There are also three kernel boot options that control ipv6 (detailed in ipv6 kernel docs):

  • disable= Specifies whether to load the IPv6 module, but disable all its functionality.
  • disable_ipv6= Specifies whether to disable IPv6 on all interfaces.
  • autoconf= Specifies whether to enable IPv6 address autoconfiguration on all interfaces.
  • @Aaron This should probably become the accepted answer now. My answer is likely to be out-of-date for most people. – Telemachus Sep 24 '14 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.