在Ubuntu 14.0.4上禁用iPv6的问题

要在Ubuntu 14.0.4(LTS)上禁用iPv6,我在sysctl.conf文件中添加了以下行:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

因为我得到0,当我使用命令时:

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

据我所知,我按照给出的步骤。 当我尝试使用时:

 sudo sysctl -p 

我在终端输出一个输出:

 sysctl: cannot stat /proc/sys/net/ipv6/conf/disable_ipv6: No such file or directory net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

我检查了目录,发现文件/目录存在。

其他信息:我正在尝试在我的系统中安装Apache Hadoop(版本2.7.2)。 虽然所有服务都已启动并运行,但我不确定它是否适用于我的网络配置。 由于( 这里 )通知Hadoop与iPv6连接不兼容,所以我尝试运行:

 sudo sed -i 's/net.ipv6.bindv6only\ =\ 1/net.ipv6.bindv6only\ =\ 0/' \/etc/sysctl.d/bindv6only.conf && sudo invoke-rc.d procps restart 

当我这样做时,我收到一条消息:

 sed: can't read /etc/sysctl.d/bindv6only.conf: No such file or directory 

**手动搜索时,目录中没有此类文件。

如果你真的想要这样做,你唯一需要做的就是看到计算机重新启动时没有加载inet6模块。

试试这个(以root用户身份)。

 $ cat >/etc/modprobe.d/blacklist-ipv6.conf < 

但实际上,你不应该这样做。 只要您的LAN中没有IPv6网络,它就不会干扰您的IPv4网络。

不要忘记删除已添加到/etc/sysctl.conf更改。

您链接到的Hadoop页面实际上并不是说IPv6会给您带来问题。 如果您关闭IPv4并尝试使用IPv6,它所说的会导致您出现问题。

所以,你的目标不应该是摆脱IPv6。 应该让IPv4工作。

现在,该页面确实提到了他们建议设置的配置选项。 它与Hadoop如何向操作系统注册以侦听传入请求有关。 Ubuntu为您提供了注册以仅侦听IPv4连接,仅侦听IPv6或两者兼有的选项。

一些(较旧的,我很确定)Debian版本(Ubuntu所基于的)认为他们会尝试帮助应用程序进行转换,并更改了一些设置,以了解监听设置的工作方式。 设置是您提到的wiki页面所指的内容。 要关闭它,您只需将以下内容放在/etc/sysctl.conf文件中:

 net.ipv6.bindv6only = 0 

当你在那里时,删除线条:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

然后运行sysctl -p ,你应该全部设置。