Answers:
可以通过以下方式临时禁用eth1的自动配置:
sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0
或与以下所有接口:
sudo sysctl -w net.ipv6.conf.all.autoconf=0
sudo sysctl -w net.ipv6.conf.all.accept_ra=0
通过在呼叫中使用1而不是0来进行重新启用。
永久禁用它可以通过输入来完成/etc/sysctl.conf
。在Debian Etch上(可能也在更新的版本上),如果未设置accept_ra
,系统将使用Link本地地址(fe80..
)自动配置
如下面的Gart所述,如果主机本身是路由器而accept_ra
不是2
,则将禁用自动地址配置和路由器发现。
net.ipv6.conf.<iface|all|default>.forwarding=1
和
net.ipv6.conf.<iface|all|default>.accept_ra=0
或net.ipv6.conf.<iface|all|default>.accept_ra=1
。
iface
你的界面在哪里
该sysctl
解决方案在Ubuntu 18.04 Bionic上对我们不起作用。我们通过以下方法解决了它:
编辑/etc/netplan/01-netcfg.yaml
,配置:
network:
...
ethernets:
eth0:
...
dhcp6: no
accept-ra: no
您可能需要使用接口名称而不是eth0
。保存文件后,执行:
netplan apply
要么 reboot
如果您已经从自动配置中接收到IPv6 IP,并且想要在不重新启动的情况下将其删除,则可以执行以下操作:
ip -6 addr del 1111:2222:1:0:aaaa:bbbb:cccc:dddd/64 dev eth0
当然,您需要在此命令中替换IP和设备。
Ubuntu 18和ipv6的问题在于systemd-networkd控制内核参数,因此尽管可以使用sysctl禁用ipv6,但如果配置未另外说明,networkd会很乐意为您打开它们。
我禁用ipv6的解决方案是将netplan中的本地链接配置为空标量(前提是您没有本地链接ipv4 IP)
network:
version: 2
renderer: networkd
ethernets:
eth0:
..
link-local: [ ]
该配置将编译网络的配置,该配置将发布在/run/systemd/network/10-netplan-eth0.network中,这将说服网络不要为eth0设置ipv6。
如果您也想在环回中禁用ipv6,则可以通过将内核参数net.ipv6.conf.all.disable_ipv6设置为1轻松实现。networkd似乎无法控制环回。
sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.forwarding=1
设置),则将禁用自动地址配置和路由器发现。