只需构建 FreeBSD。

只需构建 FreeBSD。

https://web.archive.org/web/20160528234959/https://wiki.freebsd.org/IPv6Only讨论仅支持 IPv6 而非 IPv4 的 FreeBSD 映像。不过,该页面已不再存在(因此是我的存档链接),而且我找不到任何有关此内容的最新信息。我的问题:今天,在任何现代 UNIX 或 Linux 系统上,是否有可能只支持 IPv6 而不是 IPv4,就像旧的 FreeBSD 映像那样?如果执行此操作的方法需要自定义内核或类似的工作,那也没关系。

我在其他地方看到过这个问题(所有日期都在我最初问这个问题之后):

答案1

只需构建 FreeBSD。

今天这是可能的,因为 FreeBSD 继续提供所使用的机制。

它是一组用于关闭或排除 IPv4 的内核配置和 makefile 选项。基本的就是nooptions INET,但还要观察其他什么/usr/src/sys/conf/makeLINT.mk做。还要观察什么/usr/src/sys/conf/NOTES讲述了未同时启用 IPv4 和 IPv6 的连锁反应。

进一步阅读

答案2

是的当然。一种方法是不在主机上配置任何(公共)IPv4 地址或服务。更极端的是(如果操作系统支持的话)删除 IPv4 支持,但这更复杂,可能不可能,而且如果可能的话可能会破坏(通常是较旧的)服务。详细信息会因操作系统而异,因为它们在网络配置方式上都非常不同。

例如,在 macOS 上可能会运行

sudo ipconfig set en0 NONE
sudo ipconfig set en0 AUTOMATIC-V6

禁用 IPv4 并启用 IPv6 en0。 (lo0可能仍然有 IPv4,但其他系统不需要知道这一点。)

然而,这可能不是很有用,因为许多东西在 IPv6 上不支持或不可用,而且不像几年前有人可以像他们为切换到 TCP/IP 所做的那样呼吁旗帜日......

答案3

这在 Linux 上当然是可能的。内核中的网络协议是可配置的,您可以删除所有 IPv4 内容。然而,大多数发行版都会期望 IPv4 并尝试使用它,因此您也必须自定义发行版的这一部分(如果只是为了消除错误消息)。

当然,问题是你这样做能得到什么好处。是的,如果没有 IPv4 协议,内核会小一些。但是,仅使用现有内核,并将所有内容配置为不接受 IPv4 地址,或者首先不使用 IPv4,要简单得多。

相关内容