我的 Web 伺服器(Ubuntu、Nginx)具有主機指派的 IPv4 和 IPv6 位址。對於我的網站,我應該只將其綁定到 IPv6 位址嗎?這是標準推薦方式嗎?或者,我應該同時使用 IPv4 和 IPv6 位址嗎?
答案1
同時使用 IPv4 和 IPv6
您應該同時使用 IPv4 和 IPv6 位址。
目前,網路上幾乎每個人都擁有 IPv4 位址,或位於某種 NAT 後面,並且可以存取 IPv4 資源。
然而,在撰寫本文時只有約0.7% 2.3% 3.8% 6.5% 9% 12% 19% 22% 26% 32% 37% 43% 的網路支援 IPv6,但隨著 IPv6 開始在全球推廣,這個數字正在穩步增長。
在極少數地方,ISP 提供主要是IPv6 或僅有的IPv6 針對住宅客戶,並使用大規模 NAT、NAT64 或其他此類解決方案進行 IPv4 連線。隨著 IPv4 位址空間最終耗盡,這個數字預計還會成長。這些用戶通常會透過 IPv6 獲得更好的效能。
當 ISP 部署大規模 NAT 來解決 IPv4 耗盡問題時,由於大規模 NAT 閘道固有的連線限制,使用者的所有網路連線的可靠性都會降低。例如,一個網頁可能只加載部分但不是全部資源,在應該有圖像的地方留下損壞的圖標,丟失樣式和腳本等。如果您希望您的網站對這些使用者來說是可靠的,則必須透過 IPv6 提供服務(且 ISP 必須部署 IPv6)。
由於 IPv6 是 Internet 的發展方向,因此啟用您的網站 IPv6 現在可以讓您處於領先地位,並讓您在問題變得嚴重之前就解決它們。
配置nginx
預設情況下,Linux 和 nginx 可以同時綁定 IPv4 和 IPv6:改變你的listen
指令到:
listen [::]:80;
listen 80;
或者,對於 SSL 站點:
listen [::]:443 ssl;
listen 443 ssl;
答案2
兩者綁定!
我們有一個 IIS 網站,其程式碼使用客戶端使用的 DNS 名稱對其自身進行內部引用。這個過程總是會失敗。
另一個症狀是伺服器本地運行的瀏覽器無法透過伺服器名稱找到網站,只能透過 IPv4 位址找到網站。也就是說,http://192.168.55.139
會起作用,但http://myhost
會失敗。預設情況下,使用ping myhost
將傳回 IPv6 位址(ping myhost -4
將傳回 IPv4 位址)。
修復方法是開啟 IIS 並更改網站的綁定以綁定到 IPv6 位址以及 IPv4 位址。