好吧,一开始我只是想好玩而已,现在这是一个原则问题,因为我需要理解它。
我的路由器同时支持 IPV4 和 V6。因此,我有 2 个默认网关:
192.168.2.1
fe80::1%11
但是,我只能通过 V4 地址访问路由器配置页面,而不能通过 V6 地址访问。
如何通过 V6 地址访问此页面?
答案1
该fe80::
地址是链接本地地址。它需要附加范围(接口)ID,在您的情况下为%11
。不幸的是,许多浏览器不支持在 URL 中指定范围 ID。旧版本的 Firefox 曾经接受它,但当前的实现已损坏。
要使用 IPv6 通过浏览器访问路由器,您需要找出路由器有哪些“正常”(全局范围)地址。这些地址不需要范围 ID,并且可以在您的浏览器中使用。
找到可用的 IPv6 地址后,即可在 URL 中使用它。由于 URL 中的 IPv6 地址和端口号都使用 ,因此:
地址部分必须用 和 括起来[
。]
例如:
http://[2001:db8:1234::abcd]/
或者如果您必须指定端口号:
http://[2001:db8:1234::abcd]:8080/
答案2
我最近也遇到了类似的问题。我发现 chrome 和 Firefox 都不支持链接本地 ipv6 地址中必需的范围 ID。 山猫确实如此,但没有处理登录到我所连接的特定机器所需的 JavaScript。
我设法通过支持范围 ID 来解决此问题socat
。此命令将流量从本地主机 ipv4 地址代理到链接本地 ipv6 地址。
socat TCP4-LISTEN:8080, fork TCP6:[fe80::01%wlo1]:80
localhost proxy port: 8080
ipv6 address of remote machine: fe80::01
port of login page on remote machine: 80
scope ID of local machine: wlo1
将此命令留在 shell 中运行,我能够使用 Firefox 和 Chrome 在代理地址 127.0.0.1:8080 导航到 ipv6 机器的登录页面
答案3
使用去掉末尾的“%”和接口代码后的本地链路网关地址肯定有效。实际上,正确的路由器 IPv6 地址是:
http://[fe80::1]
地址两侧的方括号对于 URL 正常工作是必需的。
我在两个旧浏览器上测试了我的路由器的 IPv6 链路本地网关地址 (http://[fe80::xxxx:xxxx:xxxx:ef28]):Opera 54.0,已发布回去的路2018 年 6 月发布的 Chrome 68.0.3440.106 和 2018 年 8 月发布的 Chrome 68.0.3440.106。这两种浏览器都允许我成功登录,所以这种方法肯定有效。希望这对未来的用户有所帮助。