我已在 ubunntu 12.10 系统中使用 inet addr 172.16.17.235 和 inet6 addr fe80 :: a05b安装 apache2 : LAN中的25ff:fef0:68a4 / 64 。
现在,当我想打开位于/ var / www /的默认网站(index.html)时,我只需写下 http:// localhost 或 http:在我的网络浏览器(firefox 17.0)中//127.0.0.1 或者 http://172.16.17.235 ,它会打开 index.html 页面
但是当我想借助 ipv6寻址访问此 index.html 时,如下所示:
http:// [:: 1] 或
http:// [fe80 :: a05b:25ff:fef0:68a4]
浏览器显示以下错误:
无法连接Firefox
无法在[:: 1]或
建立与服务器的连接
Firefox无法在[fe80 :: a05b:25ff:fef0:68a4]与服务器建立连接。
任何人都能告诉我我的系统中缺少什么配置或我做错了什么。
BTW 当我ping我的localhost时:
ping6 :: 1或ping6 -I eth0 fe80 :: a05b:25ff:fef0:68a4
ping回复正常如下:
64字节来自:: 1:icmp_seq = 1 ttl = 64 time = 0.032 ms
或
64字节来自fe80 :: a05b:25ff:fef0:68a4:icmp_seq = 1 ttl = 64 time = 0.048 ms
答案 0 :(得分: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?)