在Linux禁用IPv6可以使用下面的几种方式:

第一种方式:

在/etc/modprobe.d/dist.conf文件中添加installipv6 /bin/true,在reboot后使用使用lsmod | grep ipv6查看,IPv6模块没有被加载,在/proc/sys/net目录下也已经没有了ipv6的目录文件。[root@root net]# ls

core  ipv4 netfilter  unix

第二种方式:

在/boot/grub/grub.conf文件中,在启动的Linux内核版本中传递下面的参数ipv6.disable=1,该效果和方式一基本类似,都需要重新启动,但是在启动完成后,使用lsmod还是可以参看到ipv6模块信息,但引用ipv6模块数为0.在/proc/sys/net目录下也没有了ipv6的目录文件。

[root@root~]# lsmod | grep ipv6

ipv6                  331149  0

上面这种方式其实是根据IPv6模块的三个参数进行的,通过modinfo可以看到,IPv6模块支持三个参数,

modinfo ipv6

filename:      /lib/modules/2.6.32/kernel/net/ipv6/ipv6.ko

alias:          net-pf-10

license:        GPL

description:    IPv6 protocol stack for Linux

author:         Cast of dozens

srcversion:     AA5735202A5094F448BF9AE

depends:

vermagic:       2.6.32 SMP mod_unload modversions

parm:           disable:Disable IPv6 module suchthat it is non-functional (int)

parm:           disable_ipv6:Disable IPv6 on allinterfaces (int)

parm:           autoconf:Enable IPv6 addressautoconfiguration on all interfaces (int)

在Linux内核的文档中我们可以看到对这个三个参数的解释:

disable

Specifieswhether to load the IPv6 module, but disable all

itsfunctionality.  This might be used whenanother module

hasa dependency on the IPv6 module being loaded, but no

IPv6addresses or operations are desired.

Thepossible values and their effects are:

0IPv6 is enabled.

Thisis the default value.

1IPv6 is disabled.

NoIPv6 addresses will be added to interfaces, and

itwill not be possible to open an IPv6 socket.

Areboot is required to enable IPv6.

autoconf

Specifieswhether to enable IPv6 address autoconfiguration

onall interfaces.  This might be used whenone does not wish

foraddresses to be automatically generated from prefixes

receivedin Router Advertisements.

Thepossible values and their effects are:

0IPv6 address autoconfiguration is disabled on all interfaces.

Onlythe IPv6 loopback address (::1) and link-local addresses

willbe added to interfaces.

1IPv6 address autoconfiguration is enabled on all interfaces.

Thisis the default value.

disable_ipv6

Specifieswhether to disable IPv6 on all interfaces.

Thismight be used when no IPv6 addresses are desired.

Thepossible values and their effects are:

0IPv6 is enabled on all interfaces.

Thisis the default value.

1IPv6 is disabled on all interfaces.

NoIPv6 addresses will be added to interfaces.

在grub.conf中还可以使用ipv6.disable_ipv6=1禁止IPv6协议,和ipv6.disable不同的是对IPv6模块的引用不为零。

lsmod | grep ipv6

ipv6                  331934  30

使用echo 0 >/proc/sys/net/ipv6/conf/all/disable_ipv6命令可以把IPv6功能重新打开,

使用echo 0 > /sys/module/ipv6/parameters/disable_ipv6命令无法重新打开,这也是这两个控制IPv6协议开关的不同之处。即使在grub.conf文件中不添加ipv6的任何信息,向/sys/module/ipv6/parameters/disable_ipv6文件中写入也不能控制IPv6协议,建议使用proc目录下的变量控制。

第三种方式:

在/proc/sys/net/ipv6/conf/目录下有下面的目录:

[root@root conf]# ls

all default  eth0  gre0 lo

可以针对不同的接口禁止,如果是针对所有的接口,可以使用下面的命令,该命令会直接把接口上的IPv6地址给删掉,包括本地链路地址fe80::,

IPv6, net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

下面是Linux内核对该参数的解释:

disable_ipv6 - BOOLEAN Disable IPv6operation.  If accept_dad is set to 2,this value

willbe dynamically set to TRUE if DAD fails for the link-local

address.

Default:FALSE (enable IPv6 operation)

Whenthis value is changed from 1 to 0 (IPv6 is being enabled),

itwill dynamically create a link-local address on the given

interfaceand start Duplicate Address Detection, if necessary.

Whenthis value is changed from 0 to 1 (IPv6 is being disabled),

itwill dynamically delete all address on the given interface

附录:模块参数的定义

module_param_named(disable_ipv6,ipv6_defaults.disable_ipv6, int, 0444);

MODULE_PARM_DESC(disable_ipv6,"Disable IPv6 on all interfaces")

只在addrconf_init_net函数中使用了IPv6模块参数,所以IPv6模块的disable_ipv6参数只有在初始化时进行了赋值,系统启动后的修改无法改变原先的配置。

static int addrconf_init_net(struct net*net)

{

interr;

structipv6_devconf *all, *dflt;

err= -ENOMEM;

all= &ipv6_devconf;

dflt= &ipv6_devconf_dflt;

if(net != &init_net) {

all= kmemdup(all, sizeof(ipv6_devconf), GFP_KERNEL);

if(all == NULL)

gotoerr_alloc_all;

dflt= kmemdup(dflt, sizeof(ipv6_devconf_dflt), GFP_KERNEL);

if(dflt == NULL)

gotoerr_alloc_dflt;

}else {

/*these will be inherited by all namespaces */

dflt->autoconf= ipv6_defaults.autoconf;

dflt->disable_ipv6 =ipv6_defaults.disable_ipv6;

}

net->ipv6.devconf_all= all;

net->ipv6.devconf_dflt= dflt;

#ifdef CONFIG_SYSCTL

err= __addrconf_sysctl_register(net, "all", NET_PROTO_CONF_ALL,

NULL,all);

if(err < 0)

gotoerr_reg_all;

err= __addrconf_sysctl_register(net, "default", NET_PROTO_CONF_DEFAULT,

NULL,dflt);

if(err < 0)

gotoerr_reg_dflt;

#endif

return0;

#ifdef CONFIG_SYSCTL

err_reg_dflt:

__addrconf_sysctl_unregister(all);

err_reg_all:

kfree(dflt);

#endif

err_alloc_dflt:

kfree(all);

err_alloc_all:

returnerr;

}

linux内核disabled,Linux内核关闭IPv6协议的方式相关推荐

  1. linux关闭内核命令,Linux内核关闭IPv6协议的方式

    在Linux禁用IPv6可以使用下面的几种方式: 第一种方式: 在/etc/modprobe.d/dist.conf文件中添加install ipv6 /bin/true,在reboot后使用使用ls ...

  2. linux内核ipv6,Linux内核关闭IPv6协议的方式

    在Linux禁用IPv6可以使用下面的几种方式: 第一种方式: 在/etc/modprobe.d/dist.conf文件中添加install ipv6 /bin/true,在reboot后使用使用ls ...

  3. ubuntu下nextcloud性能和安全设置优化_Ubuntu linux 18.04安装图解及IPV6协议处理和优化...

    由于ipv6在国内的普及,让很多人梦寐以求的公网ip地址得到了解决,催生了建立家庭服务器的需求,也就是目前开始流传的雾计算,云计算高高在上,数据都控制在厂商手里,而雾计算则将服务器放置在个人的家中,解 ...

  4. Linux学习笔记:CentOS6关闭IPv6

    转自网络资料,目前最简单直接的方法 CentOS6 在/etc/modprobe.d/dist.conf结尾添加 alias net-pf-10 off alias ipv6 off 然后chkcon ...

  5. win7关闭网络计算机,Win7系统ipv6怎么关闭?Win7电脑关闭ipv6协议的方法

    经常接触电脑的小伙伴都知道,在电脑上我们联网使用需要使用互联网协议.IPV4协议是主流,被广泛使用,IPV4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星 ...

  6. centos7 开启ipv6_centos7怎么关闭ipv6仅使用ipv4?

    centos7使用ipv6协议,如果出现问题了将会很难排查,所以想要关闭ipv6,该怎么关闭呢?下面我们就来看看详细的教程. 使用ifconfig命令查看网卡信息,如果出现inet6 fe80::20 ...

  7. linux关闭内核命令,CentOS 7关闭/开启SELinux内核简单方法

    在使用Centos7系统时,可能经常都需要设置SELinux内核.SELinux内核是提供支持访问控制安全策略的机制,在Centos7系统上面安装一些应用软件时,SELinux内核开启的话可能会造成软 ...

  8. linux内核vrrp配置,在Linux下的(VRRP)虚拟路由冗余协议介绍(转)

    在Linux下的(VRRP)虚拟路由冗余协议介绍(转)[@more@] 这篇文章描述的是如何在Linux下实现VRRP (Virtual Router Redundancy Protocol 虚拟路由 ...

  9. linux内核添加spi驱动,Linux内核驱动之spi子系统spi协议.docx

    Linux内核驱动之spi子系统spi协议 概况 SPI接口是摩托罗拉首先提出的全双工三线同步串行外围接口SCK,MOSI,MISO,采用主从模式(Master Slave)架构:支持多slave模式 ...

最新文章

  1. 简单比较Python的数据持久化操作
  2. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试
  3. 8种相似度度量方式的原理及实现【笔记自用】【1】
  4. ping C类地址是否在线
  5. hdu 2553 N皇后问题【dfs】
  6. [渝粤教育] 西南科技大学 智能交通系统 在线考试复习资料
  7. 七夕赶上服务器架构升级,女朋友的约会怎么办
  8. selenium问题记录
  9. ubuntu下安装tftp
  10. 数值计算方法matlab课后答案,《现代的数值计算方法matlab版》习题解答.pdf
  11. [备忘]方正字库中英文对照表
  12. 框架合集:Java框架自学视频教程-动力节点
  13. 复杂性思维中文第二版 十二、合作进化
  14. Composition
  15. 真探第一季/全集True Detective1迅雷下载
  16. 使用POI为Excel添加数据有效性验证
  17. canvas实现2019最酷炫3D特效
  18. 毛毛雨 2007-11
  19. [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
  20. 各类指数数据(商品价格指数、消费者价格指数和企业景气及信心指数)

热门文章

  1. Kubernetes v1.10.x HA 全手动安装教程(TL;DR)
  2. 计算机中字符编码换算
  3. Kafka系列之-Kafka Protocol实例分析
  4. 如何杀掉可恶的Notkelvir病毒
  5. java redis的应用_Redis-Java 交互的应用
  6. 报告PPT|Python编程之美(45页)
  7. Python+pandas时间序列对象常用操作
  8. php文件出现UTF-8错误,php – 文件格式UTF8与BOM导致“标头已发送” – 错误
  9. 2. SpringBoot +Mybaits
  10. 手写 new 操作符