如何从浏览器(如IE、firefox等)访问具有IPV6链接本地地址的设备?

问题描述 投票:0回答:4

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

场景:

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

server ipv6 subnet link-local
4个回答
24
投票

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

正如 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

19
投票

一个链路本地地址可以在多个链路上有效。例如,如果您的系统同时具有以太网和 Wi-Fi,它们可能会连接到不同的网络。因此,您需要将范围标识符添加到链接本地地址。其语法是将 % 和范围添加到 IPv6 地址。分数通常是界面的名称,例如 Linux 上的

eth0
ens192
,或者 Windows 上的
13
。每个系统上的值都不同,因此您需要检查在您的情况下使用什么。

这给了你例如

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

正确的 URL 语法是

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


0
投票

对于那些在笔记本电脑上没有设置 sshd 服务器并且发现设置一个服务器很麻烦的人 --- 尝试查找端口转发脚本。

这是一个可用的Python脚本,没有外部依赖。

https://gist.github.com/NeverBehave/357ca63941d4af4ee3f54920be3d1f3c


0
投票

Windows 有部分解决方案,它实现了本地链接默认范围。

例如如果您在 Windows 的浏览器中输入“http://[fe80::1]”(或任何您的目标),只要您想要的目标位于默认界面上,那么它就会起作用。规范允许将缺失的范围(或范围“%0”)视为默认值,但它取决于实现。

这还要求默认为您想要的网络,不支持替代范围(您仍然不能在 URL 中使用“%x”),并且不适用于 Linux 等。

示例:从 Windows 上的 Chrome 访问我的本地路由器 (

http://[fe80::1]
):

© www.soinside.com 2019 - 2024. All rights reserved.