如果我訪問https://ipv6-test.com/網站告訴我不支援 IPv6 連線。
如何診斷哪些元件無法支援 IPv6?
據我所知,鏈條是這樣的:
+---------+ +----+ +--------+ +-----+ +------+
| Browser | --> | OS | --> | Router | --> | ISP | --> | Site |
+---------+ +----+ +--------+ +-----+ +------+
如果這些項目中的任何一項不支援 IPv6,則 IPv6 支援將不可用。但我怎麼知道是哪一個導致了失敗呢?
(fwiw,我在 Windows 10 上使用 Firefox,但我正在尋找適用於其他瀏覽器和其他 Windows 版本的通用解決方案 - 如果合適的話,甚至可能是其他作業系統。)
答案1
從中間開始:您的電腦有可以使用的 IPv6 位址嗎?
假設目前的瀏覽器和作業系統都支援 IPv6(除非刪除),但每個 ISP 都需要單獨將 IPv6 部署到其網路。
所以先看看ipconfig /all
或ip addr
檢查你是否有全球的IPv6 位址和 IPv6 閘道。目前全域位址以 開頭2xxx:
,而fxxx
本機位址則有幾種不同類型。
如果您有 IPv6 位址,請檢查是否可以ping
透過網域名稱和 IPv6 位址進行伺服器。 (Sprint 的網站是2600::
一個方便的測試位址。)如果可以的話 – IPv6 可能在您的瀏覽器中被停用;如果您無法 – IPv6 可能會在您的路由器中損壞,或被那些認為 IPv6 支援「洩漏」的 VPN 應用程式之一封鎖。
如果您可以按位址 ping 站點,但不能按名稱 ping 站點,請確保您的 DNS 伺服器不會過濾 AAAA 記錄,就像 PiHole 或某些 VPN 等軟體通常所做的那樣。實際的 DNS 伺服器是否僅支援 IPv4 並不重要,這不會影響其提供 AAAA 記錄的能力,例如nslookup -q=aaaa google.com 8.8.8.8
。
如果你不有 IPv6 位址,請檢查您的路由器是否有(在其 WAN 和 LAN 介面上)。它需要為自己取得一個全域 WAN 位址(這部分可能會因 ISP 的不同而有所不同),然後為您的 LAN 取得一個全域前綴(使用 DHCPv6-PD)。它可能沒有位址,只是因為您的 ISP 尚未推出 IPv6(無論是在您所在的區域還是根本沒有)。
答案2
根據我的經驗,通常是 ISP 需要先為您啟用 IPv6,然後您在路由器上進行設定。除非有人自行停用了 IPv6 相關功能,否則您的裝置將會接收到它。
向您的 ISP 詢問您的 IPv6 詳細資訊。他們將根據需要啟用它並向您發送以下重要詳細資訊:
• 附遮罩的WAN IP,
• LAN 前綴,也帶有掩碼,有時稱為前綴長度。請記住,雖然前綴以 結尾::
,但您必須在其後添加一個非零數字,這將使其成為有效的 IP,例如1
路由器是否接受 LAN IPv6 位址等欄位。
然後,您可以在路由器上設定這些。確保啟用 radvd。
如果您希望與純 IPv6 用戶端良好運行,則必須透過建立自訂 radvd.conf 檔案在 radvd 回應中新增自訂欄位。最重要的是 RDNSS。若要為設定為僅使用 IPv6 的有問題的 Windows 7 用戶端提供支持,請將位址新增fec0:0:0:ffff::1
至路由器 LAN 接口,例如 br0。這是因為 Windows 7 會忽略路由通告封包指定的 DNS 並使用此 DNS。
您可能考慮新增的另一個欄位是 DNSSL。這指定您的網域後綴,通常類似於lan
,local
或home
。這樣做將改善 Windows 中的本機網路名稱解析,由於缺少此配置,Windows 中的本機網路名稱解析通常會出現錯誤。在 IPv4 上可以透過新增domain=lan
(自訂單字區域網路)在 dnsmasq.conf 中。