eth0 接口上有一个 inet6 地址:
eth0 Link encap:Ethernet HWaddr 00:0c:29:d9:46:f5
inet6 addr: fe80::20c:29ff:fed9:46f5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:193 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4133 (4.1 KB) TX bytes:32902 (32.9 KB)
Interrupt:19 Base address:0x2024
我不需要这个地址,我使用以下命令将其删除:
sudo ifconfig eth0 inet6 del fe80::20c:29ff:fed9:46f5/64
但是,每次我重新启动系统时,这个地址就会出现。
如何禁用自动配置的 inet6 地址?
答案1
你不能,这就是 IPv6 的工作方式。(但是,你可以禁用 IPv6。见下文。)
解释:
IPv6 不使用地址解析协议要查找哪个 MAC 地址属于哪个 IP,它使用邻居发现协议。作为核心概念,NDP 通过 IP 而非以太网帧工作,因此它需要一个 IP 地址才能进行通信。这就是“fe80”链路本地地址。
解决方案:
如果您根本不想使用 IPv6,我建议您通过添加以下行将 Linux 内核中的 IPv6 模块列入黑名单/etc/modprobe.d/blacklist.conf
:
blacklist ipv6
重新启动后,所有 IPv6 地址都应该消失。
然而,如果你确实打算使用 IPv6,我建议你认真考虑一下阅读它,否则你将陷入痛苦和安全问题的世界。