我的设备和我试图访问的主机都在同一个子网中。
情景:
我有一台交换机和一台服务器在同一个子网中。我需要使用我的服务器上的浏览器通过IPv6链路本地地址来访问交换机。 请问有人能告诉我确切的语法吗?
我的设备和我试图访问的主机都在同一个子网中。
情景:
我有一台交换机和一台服务器在同一个子网中。我需要使用我的服务器上的浏览器通过IPv6链路本地地址来访问交换机。 请问有人能告诉我确切的语法吗?
针对浏览器,一般情况下你无法使用链接本地地址。
正如Sander Steffann指出的那样,在RFC 6874中提出了一个规定接口URL的标准格式。
Chromium和Firefox的开发人员似乎都故意不支持此功能,而其他大多数浏览器也是如此。Firefox实际上已经故意删除了ipv6链接本地支持。相关bug报告被关闭为“WONTFIX”。参见Chromium bug 70762和Firefox bug 700999。此外,WHATWG也拒绝了RFC 6874的实现。这种情况已经持续多年,因此我认为除了打补丁或分支以外,不可能使链接本地地址工作。显然有很多人坚决反对允许链接本地地址支持。
然而,有一个解决方法可以使用SSH转发。例如:
ssh -L '8080:[FE80::XXXX:XXXX:XXXX:XXXX%wlp4s0]:80' localhost
链接本地地址可以在多个链接上有效。例如,如果您的系统同时具有以太网和Wi-Fi,那么可能连接到不同的网络。因此,您需要向链接本地地址添加作用域标识符。其语法是在IPv6地址后添加%和作用域。得分通常是接口名称,例如Linux上的eth0
或ens192
,或Windows上的13
。每个系统的值都不同,因此您需要检查在您的情况下使用什么。
这样就能得到例如fe80 :: 1111:2222%eth0
。问题是%在URL中具有特殊含义,因此您需要对其进行转义。%
的转义为%25
。
正确的URL语法是http://[fe80::1111:2222%25eth0]/
。此项官方标准为RFC 6874。不幸的是,许多浏览器不遵循此标准,因此它可能对您无效。在这种情况下,请提交错误报告。需要有更多人投诉才能解决这个问题。
对于那些没有在他们的笔记本电脑上设置sshd服务器,并且发现设置一个会很麻烦的人——尝试找到端口转发脚本。
这是一个可用的Python脚本,没有外部依赖关系。
https://gist.github.com/NeverBehave/357ca63941d4af4ee3f54920be3d1f3c