搜索
查看: 1281|: 0

如何在Ubuntu,Linux Mint,Debian上禁用IPv6

[复制链接]

205

主题

5

回帖

755

积分

高级会员

积分
755
发表于 2014-7-25 11:04:05 | 显示全部楼层 |阅读模式

【编者注】都说IPv4地址枯竭了,要推广IPv6,但是迟迟不见动静,既然如此,在它完全就绪前,就不要让它来打扰我们的系统好了。

IPv6

IPv6是寻址方案IPv4的下一个版本,被用来给域名分配数字地址。

IPv6比IPv4支持更多的地址。然而,它还没有被广泛支持,还在被接受的过程中。



你的系统支持IPv6么?

为了支持IPv6,需要很多事情。首先你需要系统/操作系统支持IPv6。Ubuntu,Linux Mint,和大多是现代发行版都支持它。如果你看一下ifconfig指令的输出,你就会看见你的网络接口被分配了IPv6地址。

  • $ ifconfig
  • eth0 Link encap:EthernetHWaddr00:1c:c0:f8:79:ee
  • inet addr:192.168.1.2Bcast:192.168.1.255Mask:255.255.255.0
  • inet6 addr: fe80::21c:c0ff:fef8:79ee/64Scopeink
  • UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  • RX packets:110880 errors:0 dropped:0 overruns:0 frame:0
  • TX packets:111960 errors:0 dropped:0 overruns:0 carrier:0
  • collisions:0 txqueuelen:1000
  • RX bytes:62289395(62.2 MB) TX bytes:25169458(25.1 MB)
  • Interrupt:20Memory:e3200000-e3220000
  • lo Link encapocalLoopback
  • inet addr:127.0.0.1Mask:255.0.0.0
  • inet6 addr:::1/128Scope:Host
  • UP LOOPBACK RUNNING MTU:65536Metric:1
  • RX packets:45258 errors:0 dropped:0 overruns:0 frame:0
  • TX packets:45258 errors:0 dropped:0 overruns:0 carrier:0
  • collisions:0 txqueuelen:0
  • RX bytes:4900560(4.9 MB) TX bytes:4900560(4.9 MB)

看一下行“inet6 addr”。

接下来你需要一个支持ipv6的路由器/调制解调器。此外,你的ISP也必须支持IPv6。

除了检查网络设备的每一部分,最好查出你是否可以通过IPv6访问网站。

有很多网站可以检测你的网络连接是否支持IPv6. 这里就是个例子:http://testmyipv6.com/

下面是在内核中启用IPv6的参数:

  • $ sysctl net.ipv6.conf.all.disable_ipv6
  • net.ipv6.conf.all.disable_ipv6 =0
  • $ sysctl net.ipv6.conf.default.disable_ipv6
  • net.ipv6.conf.default.disable_ipv6 =0
  • $ sysctl net.ipv6.conf.lo.disable_ipv6
  • net.ipv6.conf.lo.disable_ipv6 =0

同样可以在proc文件中检查

  • $ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
  • 0

注意这里的变量是控制IPv6的“禁用”。所以设置1就会禁用IPv6。

如果它不支持就禁用IPv6

如果你的网络设备中不支持IPv6,那最好就全部禁用它们。为什么?因为这会引起域名查询延迟,在网络连接中不必要地尝试连接到IPv6���址导致延迟等等问题。

我也遇到过像这样的问题,apt-get命令偶尔会尝试连接到IPv6地址失败接着检索IPv4地址。看一下下面的输出。

像这样的错误在最近的Ubuntu中更频繁了,或许它比以前更频繁地尝试使用IPv6地址。

我在其他的应用上也注意到了相似的问题,如Hexchat,同样Google Chrome也会有时会在查询域名的时候花费更长的时间。

所以最好的方案是完全禁用IPv6来摆脱这些事情。这只需要一点点配置但可以帮助你解决很多你系统上的很多问题。用户甚至反应这可以加速网络。

禁用 IPv6 - 方案1

编辑文件 - /etc/sysctl.conf

  • $ sudo gedit /etc/sysctl.conf

在文件的最后加入下面的行。

  • # IPv6 disabled
  • net.ipv6.conf.all.disable_ipv6 =1
  • net.ipv6.conf.default.disable_ipv6 =1
  • net.ipv6.conf.lo.disable_ipv6 =1

保存并关闭

重启sysctl

  • $ sudo sysctl -p

再次检查ifconfig的输出,这里应该没有IPv6地址了。

  • $ ifconfig
  • eth0 Link encap:EthernetHWaddr08:00:27:5f:28:8b
  • inet addr:192.168.1.3Bcast:192.168.1.255Mask:255.255.255.0
  • UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  • RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
  • TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
  • collisions:0 txqueuelen:1000
  • RX bytes:1501691(1.5 MB) TX bytes:104883(104.8 KB)

如果不行,尝试重启系统并再次检查ifconfig

禁用 IPv6 - GRUB 方案

IPv6同样可以通过编辑grub配置文件禁用。

  • $ sudo gedit /etc/default/grub

查找包含"GRUBCMDLINELINUX"的行,并如下编辑:

  • GRUB_CMDLINE_LINUX="ipv6.disable=1"

同样可以加入名为"GRUBCMDLINELINUX_DEFAULT"的变量,这同样有用。保存并关闭文件,重新生成grub配置。

  • $ sudo update-grub2

重启,现在IPv6应该就已经禁用了。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-12-24 01:12 , Processed in 0.108002 second(s), 24 queries .

快速回复 返回顶部 返回列表