前言
APACHE 很早就已經支援IPv6了,至於有多早?大概2006年左右我就試過讀取本機的 ::1 APACHE成功。不過那時是在 console 介面用 telnet 取得,事實上那時也沒有Ipv6的環境可以真的路由來測試。系統是 CentOS4.2 於2004年安裝,中間並沒有更新APACHE,所以就知道其實至少早在2004年APACHE就支援v6了。
設定
一、httpd.conf 監聽埠設定
例如我有 v4 2個介面 + v6 2個介面 則要設四條,注意v6位址一定要用[ ] 框起 :
Listen 163.17.38.83:80
Listen [2001:288:5400:2::83]:80
Listen [2001:288:5400:2::1]:80
如果所有介面都要監聽,則只設定一條,其餘刪除:
二、Virtual host(VH)
以中市的 ipv6.tc.edu.tw為例:
<VirtualHost *:80>
DocumentRoot /home/ipv6
ServerName ipv6.tc.edu.tw
CustomLog /var/log/http-access/ipv6.tcc.edu.tw combined
ErrorLog /var/log/http-error/ipv6.tcc.edu.tw
</VirtualHost>
單指定 IPv6
<VirtualHost [2001:288:5400:2::1]:80>
單指定 IPv4
<VirtualHost 163.17.38.84:80>
同時 IPv6/IPv4
<VirtualHost 163.17.38.84:80 [2001:288:5400:2::1]:80>
三、DNS 也要設定
DNS 要有 AAAA 記錄
* 請注意,是AAAA記錄不是反查PTR
四、網頁瀏覽方法
用網址不改變習慣
用 IPv6 位址上網的話,得加中括號把位址包起來 [ ]
http://[2001:288:5400:2::1]/
http://[2001:288:5400:2::1]:8080/
五、障礙排除
1. DNS 設定了 AAAA 的記錄嗎?
利用nslookup或是 http://ipv6.tc.edu.tw/ 來檢測
2. 伺服器的IPv6是否可以連外?
ping6 2001:288:5400:2::1 是否有回應
3. APACHE是否有監聽在IPv6的介面?
ss -lt 來查看
4. 網頁能連到,但是非常的鈍,要等大概30秒才會有回應。
基本上是IPv4可通但是IPv6不通的狀態,請檢查防火牆或網路。
直接用ip位址來連線來確認
5. 外面的使用者是否能正確的用IPv6連到我的網頁呢?
可使用外部提供的程式或是用台中市網提供的檢測網頁
http://ipv6.tc.edu.tw/
6. XP只有部分支援IPv6,一律會用 v4 的方式詢問及取回 DNS 的資料。
所以已支援 v6 的XP,如果拿掉 v4 的DNS位址,就一定得不到DNS資料,所以一定要手動設定 ipv6 的 dns 。
編修 2018-12-26 原文2009-10-24 01:15:00