如何在Ubuntu 14.04中禁用IPv6?

我正在使用Ubuntu 14.04。为了禁用ipv6,我已经完成了以下操作。
我使用gedit打开了/etc/sysctl.conf,并在sysctl.conf的末尾粘贴了以下几行代码。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1 

但是当我使用以下命令进行检查时,
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

我得到的结果是'0'(即仍然启用)。请帮助我禁用IPv6,以便我可以使用Hadoop。
我按照这个链接上的说明进行操作。
3个回答

要禁用IPv6,您需要使用任何文本编辑器打开/etc/sysctl.conf并在末尾插入以下行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

如果IPv6仍未禁用,则问题是sysctl.conf仍未激活。
要解决此问题,请打开终端(Ctrl+Alt+T)并输入以下命令,
sudo sysctl -p

你将在终端中看到这个:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

之后,如果你运行:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

它将报告:
1

如果你看到1,那就表示IPv6已成功禁用。

1重启后,值1是否保持不变? - user334031
1@Georjia 是的...在此之后,IPv6将被永久禁用...直到您重新启用它... - A J
7即使cat /proc/sys/net/ipv6/conf/all/disable_ipv6显示已禁用(1),Ubuntu x64 14.04仍然可以在主接口上自动配置一个IPv6地址(网络管理器默认设置为自动)。 - stackblow
1如果内核中禁用了IPv6,这个方法就不起作用,因为找不到/proc/sys/net/ipv6/。还必须有其他的方法。 - obayhan
我也遇到了同样的问题。一段时间内,IPv6被禁用了,但是最近又开始收到关于它的启动消息了。 - r1k0
1我尝试了这个(获取1)和下面Mostafa的建议,但是ipv6仍然出现在我的dmesg中,并且减慢了我的启动速度 - 我该怎么办? [ 19.434645] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready - FooBar
如果IPv6仍在重新启动,Mostafa Ahangarha的答案值得一试-我正在许多机器上使用它来完全禁用系统范围内的IPv6,目前还没有任何问题。 - Mr.Gosh
1如果someapp.conf.d目录可用,我倾向于避免直接编辑配置文件。在我的系统上,有一个/etc/sysctl.d/目录,其中包含许多用于各种设置的配置文件。我创建了一个新的文件夹叫做30-noipv6.conf,将上面的设置放进去,然后使用sudo sysctl -p /etc/sysctl.d/30-noipv6.conf命令加载它。 - dragon788

你可能想从启动时禁用它。为此,请使用具有根访问权限的喜欢的文本编辑器打开/etc/default/grub(例如sudo vi /etc/default/grub)。
在这个文件中,找到以下行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

并将其更改为:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

保存文件并运行以下命令更新 grub:
sudo update-grub

=============================
Mint 19和Ubuntu 18.04:

在Mint 19上,可以使用"xed admin:///etc/default/grub"命令,而在Ubuntu 18.04上可能需要使用"gedit admin:///etc/default/grub"命令来获取一个图形化界面编辑器,以便对文件进行编辑。其余步骤将保持不变。


1为什么和何时我们想要禁用使用GRUB而不是设置sysctl? - txs
有一些情况下,我在使用sysctl禁用ipv6时失败了。我记得上次是几个月前,在配置我的树莓派时发生的。 - Mostafa Ahangarha

除了Ross Rogers上面的回答之外,你还应该补充:
sudo nano /etc/init/scip.conf

# description "Start sysctl at boot"

description "sysctl"

start on runlevel [2345]
stop on runlevel [016]

console log

respawn
respawn limit unlimited

exec /sbin/sysctl -p

2为什么?它有什么作用? - GuiGS
看起来它在引导到运行级别2、3、4和5时运行sysctl -p命令。然而,有一个问题http://askubuntu.com/questions/654291/i-cant-get-any-information-or-help-about-an-init-process-called-scip-which-ha 暗示这个scip.conf的东西并不真正起作用。 - Jistanidiot
sysctl在启动时自行运行,所以这是错误的。 - Alex R