如何从浏览器(如IE、Firefox等)访问具有IPv6链路本地地址的设备?

14

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

情景:

我有一台交换机和一台服务器在同一个子网中。我需要使用我的服务器上的浏览器通过IPv6链路本地地址来访问交换机。 请问有人能告诉我确切的语法吗?

3个回答

24

针对浏览器,一般情况下你无法使用链接本地地址。

正如Sander Steffann指出的那样,在RFC 6874中提出了一个规定接口URL的标准格式。

Chromium和Firefox的开发人员似乎都故意不支持此功能,而其他大多数浏览器也是如此。Firefox实际上已经故意删除了ipv6链接本地支持。相关bug报告被关闭为“WONTFIX”。参见Chromium bug 70762Firefox bug 700999。此外,WHATWG也拒绝了RFC 6874的实现。这种情况已经持续多年,因此我认为除了打补丁或分支以外,不可能使链接本地地址工作。显然有很多人坚决反对允许链接本地地址支持。

然而,有一个解决方法可以使用SSH转发。例如:

ssh -L '8080:[FE80::XXXX:XXXX:XXXX:XXXX%wlp4s0]:80' localhost

遗憾:“WONTFIX - JamesTheAwesomeDude
最近决定重新开放这个问题:https://bugzilla.mozilla.org/show_bug.cgi?id=700999#c94 - shrx

19

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

这样就能得到例如fe80 :: 1111:2222%eth0。问题是%在URL中具有特殊含义,因此您需要对其进行转义。%的转义为%25

正确的URL语法是http://[fe80::1111:2222%25eth0]/。此项官方标准为RFC 6874。不幸的是,许多浏览器不遵循此标准,因此它可能对您无效。在这种情况下,请提交错误报告。需要有更多人投诉才能解决这个问题。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接