Linux是否支持IPv4映射的IPv6地址?

我在混合的IPv4 / IPv6环境中工作。 我读了这个语法可以将IPv4地址映射到IPv6空间

:: ffff:1.2.3.4(1.2.3.4是IPv4地址)

Linux是否支持这种表示法? 所有这些在我的服务器上失败:

ping6 ::ffff:1.2.3.4 # to the server IP ping6 ::ffff:127.0.0.1 

不要使用ping6 ,请尝试ssh'ing ::ffff:127.0.0.1

我认为这里的具体失败与ping6有关,而不是IP4映射的地址。

IPv4映射的IPv6地址是否实际使用IPv4,因此不适用于ping6

Linux有一个套接字选项,IPV6_V6ONLY,它阻止了一些使用IPv4映射地址的应用程序。 不过,我认为ping6的具体问题是内部工作的方式。

这是来自netbsd,但我认为它涵盖了这个问题。

您应该知道,IPv4映射的IPv6仍然是IPv4 – 它只是以类似IPv6的文本格式(或实际上,在调用操作系统的库或内核时使用二进制套接字地址格式)呈现。

对于双协议应用程序,这是没有问题的 – 他们知道如何切换(隐式地使用正确的(现代)库调用时)。