当前位置: 首页 > 科技观察

如何在UbuntuLinux上禁用IPv6

时间:2023-03-14 23:21:28 科技观察

想知道如何在Ubuntu上禁用IPv6?我将在这篇文章中介绍一些方法,以及为什么你应该考虑这个选项;如果您改变主意,我还会提到如何启用或重新启用IPv6。什么是IPv6?你为什么要禁用它?Internet协议版本6(IPv6)是Internet协议(IP)的最新版本。互联网协议是一种通信协议,它为网络上的计算机提供识别和定位系统,并通过互联网路由通信。IPv6于1998年设计,旨在取代IPv4协议。IPv6旨在提高安全性和性能,同时确保地址不会耗尽;它可以为每个设备全局分配一个以128位存储的唯一地址,而IPv4仅使用32位。尽管IPv6旨在取代IPv4,但它还有很长的路要走;Internet上只有不到30%的站点支持IPv6(这里是Google的统计数据),而IPv6有时会给某些应用程序带来问题。由于IPv6使用全球(唯一分配的)路由地址,并且(仍然)互联网服务提供商(ISP)不提供IPv6支持,因此IPv6的这一功能被用于提供全球服务的虚拟专用网络(VirtualPrivateNetworks).VPN提供商在优先级列表中的位置较低,因此他们可以专注于对VPN用户最重要的事情:安全性。不想让自己暴露在各种威胁之下可能是您想要在系统上禁用IPv6的另一个原因。虽然IPv6本质上比IPv4更安全,但我所指的风险具有不同的性质。如果您实际上不使用IPv6及其功能,那么启用IPv6会使您容易受到各种攻击,从而为黑客提供了另一种可能的利用工具。另外,仅仅配置基本的网络规则是不够的;您必须像调整IPv4一样注意调整IPv6的配置,这可能非常麻烦(而且维护也很麻烦)。IPv6带来了一系列与IPv4不同的问题(考虑到该协议的年代,其中许多已经在线可用),这给您的系统增加了另一层复杂性。据观察,在某些情况下禁用IPv6有助于提高Ubuntu中的WiFi速度。在Ubuntu上禁用IPv6[高级用户]在本节中,我将详细介绍如何在Ubuntu上禁用IPv6协议,请打开终端(默认快捷键:CTRL+ALT+T),让我们开始吧!注意:Next大多数输入终端的命令都需要root权限(sudo)。警告!如果您是普通的Linux桌面用户并且更喜欢稳定的工作系统,请避开本教程,以下部分适用于知道自己在做什么以及为什么这样做的用户。1、使用sysctl禁用IPv6首先可以执行如下命令查看是否启用了IPv6:ipa如果启用了,应该会看到一个IPv6地址(网卡名称可能与图片不同)IPv6AddressUbuntuIPv6地址Ubuntu在教程《在 Ubuntu 中重启网络》(LCTT译注:其实这篇文章并没有提到使用sysctl的方法...),你已经看到了sysctl命令,我们这里也将使用它。禁用IPv6只需要输入三个命令:sudosysctl-wnet.ipv6.conf.all.disable_ipv6=1sudosysctl-wnet.ipv6.conf.default.disable_ipv6=1sudosysctl-wnet.ipv6.conf.lo.disable_ipv6=1勾选命令是否生效:ipa如果命令生效,应该会发现IPv6条目消失了:IPv6DisabledUbuntu但是这种方法只能暂时禁用IPv6,所以下次系统启动时IPv6还是会启用。(LCTT译注:这里的暂时禁用是指本次所做的修改在本次关机前有效,因为相关参数保存在内存中,可以更改数值,但内存断电后会丢失;这在从这个意义上说,下面介绍的两种方法都是临时的,但是更改参数值的时间是在系统启动的初期,每次系统启动时都会应用。那么如何完成这个意义上的永久更改呢?答案是编译内核时禁用相关功能,想后悔就重新编译内核(伤心)。)使选项持久化的一种方法是修改文件/etc/sysctl.conf,这里我使用vim编辑该文件,但你可以使用任何你想使用的编辑器,并确保你有管理员权限(使用sudo):SysctlConfiguration在文件中添加如下几行(参数同前):net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.lo.disable_ipv6=1执行以下命令以应用设置:sudosysctl-p如果重启后IPv6仍然启用并且您想继续使用此方法,那么您必须(以root权限)创建文件/etc/rc.local并添加以下内容:#!/bin/bash#/etc/rc.local/etc/sysctl.d/etc/init.d/procpsrestartexit0然后使用chmod命令更改文件权限使其可执行:sudochmod755/etc/rc.local这将使系统(在启动时)从先前编辑的sysctl配置文件中读取内核参数。2.使用GRUB禁用IPv6的另一种方法是配置GRUB,它会在系统启动时向内核传递参数。这样做需要编辑文件/etc/default/grub(确保您拥有管理员权限)。GRUB配置现在需要修改以GRUB_CMDLINE_LINUX_DEFAULT和GRUB_CMDLINE_LINUX开头的两行以在启动时禁用IPv6:GRUB_CMDLINE_LINUX_DEFAULT="quietsplashipv6.disable=1"GRUB_CMDLINE_LINUX="ipv6.disable=1"在两行中添加参数ipv6.disable=1,并且这两行的默认值在不同的系统中可能不同。)保存文件,然后执行命令:sudoupdate-grub(LCTT译注:该命令用于更新GRUB配置文件,在没有update-grub命令的系统中,需要使用sudogrub-mkconfig-o/boot/grub/grub.cfg)设置会在重启后生效。在Ubuntu上重新启用IPv6要重新启用IPv6,您需要撤消之前的所有更改。但是如果你只是想暂时启用IPv6,可以执行如下命令:sudosysctl-wnet.ipv6.conf.all.disable_ipv6=0sudosysctl-wnet.ipv6.conf.default.disable_ipv6=0sudosysctl-wnet.ipv6.conf.lo.disable_ipv6=0否则,如果想一直开启,看看/etc/sysctl.conf有没有被修改,可以删除之前添加的部分,或者改成下面的值(两种方法是等价的):net.ipv6.conf.all.disable_ipv6=0net.ipv6.conf.default.disable_ipv6=0net.ipv6.conf.lo.disable_ipv6=0然后套用设置(可选):sudosysctl-pIPv6,这里不需要重新加载配置文件)这应该可以让你再次看到IPv6地址:IPv6ReenabledinUbuntu或者,你也可以删除之前创建的文件/etc/rc.local(可选):sudorm/etc/rc.local如果你修改文件/etc/default/grub,返回并删除您添加的参数:GRUB_CMDLINE_LINUX_DEFAULT="quietsplash"GRUB_CMDLINE_LINUX=""然后更新GRUB配置文件:sudoupdate-grub描述了如何在Linux上禁用IPv6,并简要描述了IPv6是什么以及您可能想要禁用它的原因。