在 Ubuntu 14.0.4 上禁用 iPv6 的问题

在 Ubuntu 14.0.4 上禁用 iPv6 的问题

为了在 Ubuntu 14.0.4 (LTS) 上禁用 iPv6,我添加了以下几行系统配置参数文件:

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

**我手动搜索了一下,发现目录中没有这个文件。

答案1

如果您确实想这样做,您唯一需要做的事情就是确保inet6计算机重新启动时不会加载该模块。

只需尝试一下(作为root用户)。

$ cat >/etc/modprobe.d/blacklist-ipv6.conf <<EOF
# Turn of IPv6 by blacklisting the module.
# Even though it isn't needed.
blacklist ipv6

EOF
$

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

不要忘记删除您已添加的那些更改/etc/sysctl.conf

答案2

您链接到的 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,一切就绪了。

相关内容