10

我的设备和我尝试访问的主机都在同一个子网中。

设想:

我在同一子网中有一台交换机和一台服务器。我必须使用服务器中浏览器的 ipv6 链接本地地址访问交换机。谁能告诉我确切的语法?

4

2 回答 2

19

给出特定于浏览器的答案:对于大多数常见的浏览器,您不能。

正如 Sander Steffann 所指出的,有一种建议的标准格式用于指定 URL 的接口,该格式位于 RFC 6874 中。

Chromium 和 Firefox 以及似乎大多数其他浏览器的开发人员已决定故意不支持此功能。Firefox 实际上已经有意删除了对 ipv6 本地链接的支持。错误报告作为 WONTFIX 关闭。请参阅Chromium 错误 70762Firefox 错误 700999。此外,WHATWG 还拒绝了 RFC 6874 的实施。多年来一直如此,所以我怀疑任何缺少补丁或分叉的东西都会导致链接本地地址正常工作。似乎很多人都坚决不允许链接本地地址支持。

然而,一种解决方法是使用 SSH 转发。例如,

ssh -L '8080:[FE80::XXXX:XXXX:XXXX:XXXX%wlp4s0]:80' localhost
于 2017-10-23T03:29:28.470 回答
14

一个链接本地地址可以在多个链接上有效。例如,如果您的系统同时具有以太网和 Wi-Fi,则它们可能连接到不同的网络。因此,您需要将范围标识符添加到链接本地地址。其语法是将 % 和范围添加到 IPv6 地址。分数通常是接口的名称,例如在 Linux 上或eth0在Windows 上。每个系统的值都不同,因此您需要检查在您的情况下使用什么。ens19213

这给了你例如fe80::1111:2222%eth0。问题是 % 在 URL 中具有特殊含义,因此您需要对其进行转义。的逃避%%25

正确的 URL 语法是http://[fe80::1111:2222%25eth0]/. 官方标准是RFC 6874。不幸的是,许多浏览器不遵循标准,所以它可能不适合你。在这种情况下,请提交错误报告。需要有更多的人抱怨才能解决这个问题。

于 2017-07-25T10:12:06.963 回答