联网出现问题,详细介绍如何在Ubuntu上禁用IPv6 | 您所在的位置:网站首页 › ubuntu关闭ipv6防火墙 › 联网出现问题,详细介绍如何在Ubuntu上禁用IPv6 |
这篇文章详尽记录了如何在Ubuntu上禁用IPv6,如果您的Ubuntu联网出现了问题,有可能就是IPv6在作妖,可以试试禁用它。 现在联网的设备越来越多,IPv4地址将要耗尽,IPv6主要就是为解决这个问题而生,作为未来互联网基础设施的一部分,但它还是一个正在研究中的协议,并未大规模普及使用,但互联网的未来最终将依赖于IPv6标准。 然而,现在许多服务提供商根本没有实施它,还有一些服务提供商的配置很差,导致各种连接问题层出不穷。如果在使用IPv6进行连接时遇到了问题,可以在系统上禁用它。 自Ubuntu 18.04以来,操作系统默认启用了IPv6协议。请注意,如果你在联网时没有遇到任何问题,那么就没有必要禁用IPv6。以下所有步骤都需要在终端中完成。在Ubuntu桌面版上,可以按CTRL+ALT+T键轻松打开终端。 在Ubuntu上使用sysctl禁用IPv6 第一个在Ubuntu上禁用IPv6的方法是利用sysctl包。 可以利用这个包来修改系统内核的属性,使IPv6永远不被启用。 暂时停用IPv6使用这种方法,可以暂时禁用IPv6协议。 当Ubuntu设备重新启动时,IPv6模块将重新开启。 1. 在设备的终端上,运行以下两个命令。 这些命令改变了所有网络设备的IPv6配置以及默认值。 将这些值从默认的0改为1,这样IPv6就会被禁用。 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=12. 可以使用ip命令来验证Ubuntu系统是否已经禁用IPv6。 在终端中运行以下命令,输出网络接口的详细信息。 ip a用 “a “参数告诉 “ip “命令,要打印出所有网络接口的状态。 3. 在输出结果中,应该没有了 “inet6 “条目。 如果仍然看到这个条目,可能需要尝试使用其他方法,因为这表明IPv6仍然是启用的。 在Ubuntu启动时禁用IPv6现在已经知道如何在Ubuntu上使用sysctl禁用IPv6了,还需要把这一更改永久化。 上一节的问题是,虽然临时禁用了,但只要设备重启,这些变化就会被重置。 为了使这些变化持久化,需要修改 “sysctl.cfg “配置文件。 1. 要编辑sysctl配置文件,可以利用nano文本编辑器。 你可以使用任何你想要的文本编辑器,但我发现nano是最容易使用的一个,特别是对于初学者。 sudo nano /etc/sysctl.conf2. 在该文件底部增加以下几行: 可以使用CTRL + W,然后CTRL + V跳到文件的底部。 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1当的Ubuntu系统重新启动时,这些设置从系统启动时就被设置,IPv6被禁用。 3. 写完这些修改后,按CTRL + X,然后按Y,再按ENTER键保存。 4. 现在,必须处理一个由/etc/init.d/propcs在启动过程中被过早调用而引起的问题。 由于它可能太早启动,一些设置,如我们的IPv6禁用选项可能永远不会被应用。 可以创建一个文件来解决这个问题,这个文件会在启动序列的后面运行,从而启动我们需要的脚本。 通过在Ubuntu设备上使用以下命令开始写入这个文件。 sudo nano /etc/rc.local5. 在该文件中,需要输入以下几行: 这几行会调用procps,这样它就会重新加载sysctl配置。 在启动过程中稍后会调用这个功能,IPv6禁用现在应该可以按照预期的方式工作了。 #!/bin/bash #/etc/rc.local /etc/init.d/procps restart exit 0完成后,请按CTRL + X,然后按Y,再按ENTER键保存文件。 6. 还没有结束,需要调整新文件的权限。 使用chmod命令为所有用户提供这个文件的执行权限。 sudo chmod 755 /etc/rc.local如果没有执行权限,系统将无法在启动时使用该文件。 8. 最后,使用以下命令重新启动设备。 重启Ubuntu设备测试下禁用IPv6的配置是不是生效了。 sudo reboot9. Ubuntu重新启动后,就可以验证IPv6是否已经被禁用。 要检查网络设备的状态,可以利用ip命令。 ip a从这个命令中,应该看到输出中没有inet6值。 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:d3:28:99 brd ff:ff:ff:ff:ff:ff inet 192.168.0.193/24 brd 192.168.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever 在特定接口上禁用IPv6可以修改前面两节,在特定的网络接口上禁用IPv6。 这些变化相当直接,只需要知道网络接口的名称。 1. 可以利用以下命令检索所有网络接口的名称。 ip link2. 在这个命令中,应该看到网络接口的列表,就像下面的样子。 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:2c:84:22 brd ff:ff:ff:ff:ff:ff由于Ubuntu利用的是随机的网络名称,有两点可以说明。 首先,任何以 “en “开头的网络名称都是以太网接口。 同样,任何以 “el “开头的网络都是无线网络接口。 确定要禁用的IPv6的接口,然后进入下一步。 3. 现在,可以按照上面的步骤操作了。 不过,这次要做的事情略有不同。 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1不要使用上面的文字,而是使用下面的配置,其中 “NETWORKNAME “是要禁用的网络接口的名称。 net.ipv6.conf.NETWORKNAME.disable_ipv6-1例如,使用下面的文本位来禁用以太网接口上的IPv6。 net.ipv6.conf.enp0s3.disable_ipv6=1 在Ubuntu上使用GRUB禁用IPv6除了使用sysctl禁用Ubuntu系统中的IPv6之外,还可以使用GRUB。 GRUB是Ubuntu自9.10版本以来一直使用的启动加载器和管理器。 修改GRUB的设置,可以让它在启动时禁用IPv6。 1. 先来修改一下grub配置文件。 修改这个文件时要小心,因为它有可能破坏Ubuntu。 sudo nano /etc/default/grub2. 在这个文件中,需要找到以下两行: 如果使用的是nano,可以使用CTRL+W更快地找到这些行。 GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""3. 在这两行中,需要在双引号(” “)内添加ipv6.disable=1。 例如,配置应该最终看起来像我下面的样子。 GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1"如果你的GRUB_CMDLINE行中已经有了文本,请确保用空格将新的值隔开。 4. 按CTRL + X,然后按Y,再按ENTER键保存你对GRUB配置文件的修改。 5. 已经对GRUB配置进行了修改,现在运行update-grub软件。 这个软件会保存对启动加载器的更改,所以下次启动设备时,应该已经禁用了IPv6。 sudo update-grub6. 为了让改变生效,需要重新启动Ubuntu设备。 可以通过运行以下命令重新启动Ubuntu。 sudo reboot7. 现在可以使用ip命令来验证Ubuntu设备是否禁用了IPv6。 使用以下内容列出所有网络接口的状态。 ip a如果一切正常,应该看到这个结果中没有返回任何inet6条目。 结论此时,您应该已经成功地禁用了Ubuntu系统上的IPv6。 禁用IPv6可以帮助各种场景,例如连接到配置错误的IPv6处理的服务。 虽然不应该禁用IPv6,但我们也无能为力,因为有时候IPv6就是没法正常访问网络。 如果你需要什么问题,欢迎在下面留言。 平均: 0 / 5. votes: 0 到目前为止还没有投票!成为第一位评论此文章。 欢迎转载,请留下出处链接:Labno3 » 联网出现问题,详细介绍如何在Ubuntu上禁用IPv6 |
CopyRight 2018-2019 实验室设备网 版权所有 |