如何通过link本地IPv6地址访问web服务器或网站?



下面是web服务器所在机器的ipconfig的输出:

以太网适配器本地连接:

连接特定的DNS后缀。:链路本地IPv6地址。……: fe80::f85b:4256:ee76:24a4%11 IPv4地址. . . . . . . . .。。: 10.213.254.119子网掩码. . . . . . . . . . .:255.255.255.0默认网关. . . . . . . . .: 10.213.254.252

我可以访问网站说:"http://10.213.254.119/test"现在我有兴趣知道如何使用链接本地IPv6地址访问同一页面?

我发现大多数浏览器不支持url中的作用域标识符。由于链接本地地址通常需要作用域标识符,这意味着这些浏览器无法访问链接本地地址。创建指向link-local地址的DNS表项也不能工作,因为DNS表项不能指定作用域标识符。

有时我需要访问设备的web界面,甚至不在同一链接上。这意味着我将有两个障碍阻止我使用链接本地地址访问它。但是我找到了一个简单的方法来解决这两个问题。

在运行浏览器的主机上运行ssh客户端。通过链路本地地址连接到与我想要访问的设备有直接链接的主机,并设置端口转发。例如,这样做的命令如下所示:

ssh -L '8080:[fe80::200:5eff:fe00:53b6%eth0]:80' host.example.com

此时我可以通过localhost访问它,它不需要作用域标识符:http://[::1]:8080/。当然,如果ssh客户端和ssh服务器碰巧都与web浏览器运行在同一台机器上,这也可以工作。

您可以使用curl访问它:

curl -6 -g --interface eth0 "http://[e80::f85b:4256:ee76:24a4]:8080" -vvv

大多数浏览器都不支持,即使他们支持,您也必须使用像http://[fe80::f85b:4256:ee76:24a4%eth0]/这样的URL,其中eth0是客户端系统上链接的标识符,因此每个客户端都可以不同。

最好使用可路由的IPv6地址

最新更新