个人工具

UbuntuHelp:WebBrowsingSlowIPv6IPv4/zh

来自Ubuntu中文

跳转至: 导航, 搜索


Ubuntu默认开启了更新的IPv6(Internet Protocol Version 6)网际协议。然而,一些硬件(例如网卡及调制解调器)在执行与IPv6相关的DNS查询时,可能造成连接中断。这就使得DNS解析非常慢或者根本无法解析。此向导将告诉您如何禁用IPv6。

禁用IPv6

Ubuntu:

  1. 打开终端,并输入:
    gksudo gedit /etc/modprobe.d/blacklist
    
  2. 增加如下一行:
    blacklist ipv6
    
  3. 保存文件,并重新启动计算机

Kubuntu:

  1. 打开终端,并输入:
    kdesu kate /etc/modprobe.d/blacklist
    
  2. 增加如下一行:
    blacklist ipv6
    
  3. 保存文件,并重新启动计算机
在重启之后,打开终端,并输入:
ip a | grep inet6

如果没有任何输出,则IPv6已经禁用。 另外一种相对更简单的办法是直接编辑 /etc/modprobe.d/aliases文件,将其中的"alias net-pf-10 ipv6"替换成为"alias net-pf-10 off"。

Gutsy的解决方法

然而,对于一台新装的Gusty服务器以上的两种方法是无效的 (确实如此,当你执行命令 ip a | grep inet6 时,会产生输出,表明IPv6并没有被禁用). 参考 Planète Béranger (Radu-Cristian Fotescu)中的这篇文章 best method to prevent a module from loading at boot time ,我们在/etc/modprobe.d文件中增加如下行(你也可以在/etc/modprobe.d/blacklist文件中增加如下内容):

install ipv6 /bin/true

另外一种在Gutsy系统下有效的方法是,在/etc/modprobe.d/arch/i386 文件中增加如下行:

# no ipv6
alias net-pf-10 off

临时禁用IPv6

如果是想临时禁用IPv6,你会发现一旦为网络设备配置了ipv6地址,就将无法卸载ipv6内核模块。你可以使用ifconfig命令来查看当前IP设置,并使用下面的命令来禁用IPv6:

sudo ifconfig <interface> inet6 del <ipv6address>/<prefixlength>

识别有问题的设备

上面问题的真实原因是因为IPV6会执行"AAAA"记录的DNS查询,而此查询需要网络主机的IPv6地址。你可以从终端执行类似于下面的DNS查询来识别问题。

dig AAAA www.kame.net

IPv4地址对应的查询应该是:

dig A www.kame.net

如果这些查询中的第一个超时,没有返回有效的IPv6地址,那么你的路由器没有正常工作,你可能需要确认是否有可用的硬件升级可以解决这个问题。