如何在Linux中的特定接口上禁用ipv6?


24

有人可以告诉我如何在CentOS中的特定网络接口上禁用ipv6自动配置吗?

当前的情况是:

一台PC具有两个连接到同一LAN的网络适配器eth0和eth1,其中,IPv6路由器使用NDRA(邻居发现路由器广告)数据包通告IPv6前缀。结果,eth0和eth1都自动使用该前缀配置IPv6地址。

但是,我只想在eth1上启用ipv6并在eth0上禁用它。我尝试了以下方法,但是它们不起作用。

1. / etc / sysconfig / network

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

这将同时禁用eth0和eth1上的ipv6。

2. / etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

然后,它不起作用。我已经重新启动了网络服务。我对此问题有些困惑。先谢谢了。


1
sysconfig.txt绝对意味着您所做的应该禁用特定接口上的IPv6。但是,这些标志似乎被忽略了。有两个关于此的错误报告,也被忽略。参见bugzilla.redhat.com/show_bug.cgi?id=982740bugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski

Answers:


41

您可以使用以下行从/etc/sysctl.conf禁用它:

net.ipv6.conf.eth0.disable_ipv6 = 1

看一下/ proc / sys / net / ipv6 / conf / eth0。您可以在该目录中设置许多选项,例如保持启用IPv6但禁用autoconf等。


4
仅供参考,对于那些希望禁用所有功能,而不仅仅是禁用一个接口的人,只需将“ eth0”替换为“ all”即可
Peter

1
实际上,无需修改,而是使用上述内容/etc/sysctl.conf创建一个/etc/sysctl.d名为的文件00_ipv6_off.confifconfig然后将显示没有IPv6功能的接口。
David Tonhofer

在一行中:echo "net.ipv6.conf.eth0.disable_ipv6 = 1" > /etc/sysctl.d/00_ipv6_off.conf
David Tonhofer

11
$ sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

弃用

# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

为了确保此更改在重新启动后仍然存在,您需要将此行添加到/etc/sysctl.conf文件中:

net.ipv6.conf.eth0.disable_ipv6=1

请注意,使用该/etc/sysconfig/network-scripts/ifcfg-eth0文件是不可移植的。


3

您应该是root用户才能在下面设置网络参数:

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

如果debian安装程序被困在检测网络设置上,这也将在安装程序中起作用。转到控制台(alt + 2),然后键入此命令。返回安装程序。按Ctrl + C退出检测,然后重新初始化网络检测。
lsu_guy

1

在ifcfg-eth0或ifcfg-eth1中使用以下变量:

IPV6INIT=no
IPV6_AUTOCONF=no

应该做到的。重申:

/ etc / sysconfig /网络

NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

然后确保您重新启动网络服务:

% /etc/init.d/network restart

如果运行ifconfig,应该在启用了ipv6的以太网设备(eth0或eth1)上看到inet6。

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 01:26:BD:85:CA:30  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::226:c7ff:fe85:a720/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2497072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2253781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2004576667 (1.8 GiB)  TX bytes:1296051472 (1.2 GiB)

是的,这有点奇怪。设置“ net.ipv6.conf.eth0.disable_ipv6 = 1”是一个很好的解决方案。感谢您的回答。
伊夫·梅西

1
嗯,没有蹲在我的系统上(在虚拟环境中为RH 6.5 X86_64。)不过,很高兴知道那些适用于那些系统。
luis.espinal 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.