![如何从接口中删除一个 IPv6 地址?](https://linux22.com/image/1476418/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%8E%A5%E5%8F%A3%E4%B8%AD%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%20IPv6%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我的主板linux kernel 2.6.23.12
上eth0
接口有两个 IPv6 地址。
root@ramana:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FF:AB:CD:EF:85:94
inet addr:192.168.20.107 Bcast:192.168.20.255 Mask:255.255.255.0
inet6 addr: fe80::20d:b9ff:fe3c:8594/64 Scope:Link
inet6 addr: 2001:1890:110e:1111::a245/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6289 errors:0 dropped:0 overruns:0 frame:0
TX packets:12197 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:587799 (574.0 KiB) TX bytes:2057305 (1.9 MiB)
Interrupt:10 Base address:0x4000
我想禁用其中的第一个 ipv6 地址。我该怎么做?
嗯,有一个问题这里。但我的内核里没有这个文件。
答案1
一般来说,你真的不应该删除链路本地地址,因为它是核心 IPv6 功能(例如邻居发现(即 IPv6 ARP))运行所必需的。
也就是说,您可以使用ip addr
以下方法添加或删除 IPv4/6 地址:
ip addr del 2001:1890:110e:1111::a245/64 dev eth0
ip
是现代 Linux 网络配置工具,ifconfig
在 Linux 上应避免使用。它仍然可以删除单个地址,但仅限于 IPv6:
ifconfig eth0 del 2001:1890:110e:1111::a245/64
答案2
第一个 IPv6 地址是链路本地地址。每个 IPv6 接口都必须有一个。一个接口有多个 IPv6 地址是完全正常的。
答案3
要从接口中删除 IPv6 地址,您需要为“ip”命令指定“-6”参数,如下所示:
$ sudo ip -6 addr del fe80::20d:b9ff:fe3c:8594/64 dev eth0
如果没有它,命令也能成功执行,但是界面不会发生任何变化。
答案4
- 进入 VLAN 1 接口的接口配置模式。SEFOS# configure terminal SEFOS(config)# interface vlan 1
- 删除为该接口配置的 IPv6 地址。SEFOS(config-if)# no ipv6 address fec0::1111:0:1 96 SEFOS(config-if)# no ipv6 address fe80::203:2ff:fe03:501 link-local SEFOS(config-if)# exit SEFOS(config)# exit
- 查看 VLAN 1 接口的 IPv6 信息。SEFOS# show ipv6 interface vlan 1
vlan1 已启动,线路协议已启动 IPv6 已启用 链路本地地址:fe80::214:4fff:fe6c:560f ... 当您在 IPv6 接口中删除链路本地地址时,会自动配置链路本地地址。或者单击以下链接获取更多信息 https://docs.oracle.com/cd/E39109_01/html/E24662/z40000f71393620.html