我的设备和我尝试访问的主机都位于同一子网中。
场景:
我在同一子网中有一台交换机和一台服务器。我必须从服务器中的浏览器使用 ipv6 链接本地地址访问交换机。 谁能告诉我确切的语法吗?
给出特定于浏览器的答案:对于大多数常见的浏览器,你不能。
正如 Sander Steffann 指出的那样,有一个建议的标准格式用于指定 URL 的接口,该格式位于 RFC 6874 中。
Chromium 和 Firefox 以及似乎大多数其他浏览器的开发人员已决定故意不支持此功能。 Firefox 实际上已有意删除了 ipv6 链接本地支持。错误报告作为 WONTFIX 关闭。请参阅 Chromium 错误 70762 和 Firefox 错误 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