2012-11-22 19 views
1

我已經安裝了的Apache2ubunntu 12.10系統INET地址172.16.17.235IPv6地址打開網站INET6地址FE80 :: A05B:25ff:fef0:68a4/64局域網。

現在,當我想打開位於/ var/WWW /默認網站(index.html的),我只是寫
的http://本地主機
http://127.0.0.1
HTTP ://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]與服務器建立連接。錯誤從

任何人都可以告訴我我的系統中缺少什麼配置或者我做錯了什麼。

BTW當我平到我localhost作爲:
ping6 :: 1或ping6 -I eth0的FE80 :: A05B:25ff:fef0:68a4
ping回覆即將細如:
64個從字節:: 1:icmp_seq = 1個TTL = 64時間= 0.032毫秒

從64個字節FE80 :: A05B:25ff:fef0:68a4:icmp_seq = 1個TTL = 64時間= 0.048毫秒

回答

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?)

+0

我已經嘗試編寫http:// [fe80 :: a05b:25ff:fef0:68a4%0]和http:// [fe80 :: a05b:25ff:fef0 :68a4%64]但都打開谷歌的結果與上面的查詢...這裏0是我的以太網適配器(eth0)沒有,我試圖64,因爲在寫ifconfig我的系統顯示inet6地址爲fe80 :: a05b:25ff :fef0:68a4/64 ....仍然沒有工作..... –

+0

@ r.bhardwaj 64是子網地址。在Linux下,你可以使用'eth0',否則你可以嘗試1,2等。 – glglgl

+0

%1,%2,%3 ..等都不起作用。在每種情況下瀏覽器搜索它作爲谷歌查詢....任何其他建議? –