1

我已经在我的ubunntu 12.10系统中安装了apache2 ,在 LAN 中使用inet addr 172.16.17.235inet6 addr fe80::a05b:25ff:fef0:68a4/64。 现在,当我想打开位于 /var/www/ 的默认网站(index.html)时,我只需在我的网络浏览器中编写http://localhosthttp://127.0.0.1http://172.16.17.235 ( firefox 17.0),它会打开index.html页面 ,但是当我想在ipv6 寻址的帮助下访问这个index.html时,如下所示:http://[::1]http://[fe80::a05b: 25ff:fef0:68a4]









浏览器显示以下错误:
无法连接 Firefox 无法与
[::1] 的服务器
建立连接或 Firefox 无法与 [fe80::a05b:25ff:fef0:68a4] 的服务器建立连接.

谁能告诉我我的系统中缺少什么配置或我做错了什么。

顺便说一句,当我 ping 到我的本地主机时:
ping6 ::1 或 ping6 -I eth0 fe80::a05b:25ff:fef0:68a4
ping 回复很好:
来自 ::1 的 64 个字节:icmp_seq=1 ttl=64 time= fe80::a05b:25ff:fef0:68a4 的0.032 ms
或64 字节:icmp_seq=1 ttl=64 time=0.048 ms

4

1 回答 1

1

如果要使用该fe80::范围内的 IPv6 地址,则必须指定它应该通过哪个网络适配器。(从技术上讲,您必须提供与使用的网络适配器相关的区域 ID)。

在 ping 上,您使用-l eth0. 在 Firefox 中,您可以使用必须找出的正数来做到这http://[fe80::a05b:25ff:fef0:68a4%x]一点x


编辑:如果你绝对不知道发生了什么,你可以试试这个:

python -c 'import sys,socket; print socket.getaddrinfo(sys.argv[1], (sys.argv[2:]+[0])[0], 0, socket.SOCK_STREAM)' fe80::a05b:25ff:fef0:68a4%eth0

看看结果。在我的系统上,它看起来像

[(10, 1, 6, '', ('fe80::a05b:25ff:fef0:68a4%eth0', 0, 0, 3))]

其中最后一个数字3是真正的区域 ID。

如果这给了你一个结果,你的名字解析工作正常,如果没有,它就坏了。

下一步可能是尝试创建 HTTP 连接:

python -c 'import sys,socket; c=socket.create_connection((sys.argv[1], 80)); c.send("GET / HTTP/1.0\n\n"); print c.recv(100000).split("\r\n\r\n",1)[0]' fe80::a05b:25ff:fef0:68a4%eth0

如果可行,则问题出在您的浏览器上,否则,由于任何原因,您都无法访问服务器。(您的 Web 服务器守护程序是否绑定到 IPv6?)

于 2012-11-22T11:38:30.837 回答