下面是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地址