通过 IP v6 访问服务器?

通过 IP v6 访问服务器?

问题:我正在使用 IPv6 并将其转换为 IPv4 或反之亦然。

我想访问 http://127.0.0.1/

并进行了标准的 ipv4 到 ipv6 计算:AA = 127 BB = 0 CC = 0 DD = 1

使用架构

0000:0000:0000:0000:0000:ffff:AABB:CCDD

这让我:

0000:0000:0000:0000:0000:ffff:7F00:0001

所以我尝试了

http://[:::::ffff:7F00:1]

但它没有显示任何东西。经过一番谷歌搜索,我发现我需要

http://[::1]/

使用 IPv6 访问环回接口。

现在我并不感到太惊讶,因为环回接口可能是一个特殊情况。但随后我尝试访问我的公共文件服务器:

http://88.84.21.77/

我计算出的 IPv6 地址是

http://[::ffff:5854:154d]/

但它也没有解决。

现在我的问题是:我在转换过程中是否做错了什么,或者它不是那样工作的。

或者可能是因为我的服务器或 ISP 不支持 IPv6?我的服务器在 Ubuntu 9.04 下运行,并带有所有必要的补丁。

答案1

IPv6 不仅仅是 IPv4 地址的另一种书写方式,您无法像以前那样在它们之间进行转换。使用 v6 的服务器将拥有与其 v4 地址截然不同的 v6 地址。例如,主机orange.kame.net有 v4 地址203.178.141.194和 v6 地址2001:200:dff:fff1:216:3eff:feb1:44d7

要成功使用 IPv6,您需要 ISP 支持(不幸的是,这种情况并不常见)或为您建立隧道的设备。后者内置于 Windows 7、Mac OS X 和其他一些操作系统中。

答案2

或者可能是因为我的服务器或 ISP 不支持 IPv6?

是的,完全正确。要么您的 ISP 必须原生支持 IPv6,要么您使用其中一个已知的隧道代理设置 6in4 隧道(例如http://tunnelbroker.net/)。

答案3

您尝试使用的前缀 (::ffff:0:0/96) 适用于 IPv4 映射地址。这是一种 API 机制,允许软件打开单个套接字并接受 IPv4 和 IPv6 请求。在我的 IPv6 启用主机上,OpenSSH、vsftp 和 lighttpd 中的地址以该格式记录,例如

auth.log.0:Aug 20 07:01:18 my_host sshd[19411]: refused connect from ::ffff:60.190.31.214 (::ffff:60.190.31.214)

你不应该在任何实时流量中看到此前缀;它将在网络上显示为 IPv4。有一个类似的前缀(::ffff:0:0:0/96,请注意额外的“0”),它被提议用于 6to4 转换形式。我不知道它是否正在使用。我在任何实时网络流量中都没有看到任何“::ffff”地址。

正如其他一些人指出的那样,IPv6 不是 IPv4 的向后兼容超集。这是最大的抱怨人们对它有意见。你要么通过双栈或隧道独立运行它,要么翻译它

我开始尝试 IPv6 是通过创建隧道。一旦我感到满意,我就会双栈我的面向公众的服务器。幸运的是,我的托管服务提供商使用原生 IPv6。

相关内容