IPv6 有效性測試失敗。這是什麼意思?
當我使用https://ipv6-test.com/validate.php測試我的網站是否準備好 IPv6 時,(例如域 www.
$$ private $$.com),測試失敗並返回錯誤:
IPv6 web server web server is unreachable : Connection refused
https://ready.chair6.net/等其他測試站點也因有關 ipv6 的各種錯誤而未能通過測試。
我在進行測試時檢查了伺服器上沒有錯誤,並且我已經做了各種事情來啟用 ipv6。最後,我決定忽略這個問題,因為我不知道為什麼測試失敗,但我仍然可以 ping 伺服器上的 ipv6 地址。但我只想到這個問題:
測試是否得出結論該網站 www.
$$ private $$.com 只能從僅使用 ipv6 地址連接的客戶端訪問?如果是,那麼我應該擔心。你怎麼看? 編輯澄清(回答@Piotr P. Karwasz):
1)伺服器確實在監聽 IPv6:
2)這是 ip6tables -nVL INPUT 的輸出(請注意,我還完全禁用了防火牆以測試站點,但是在像您提到的那樣進行 curl 時連接拒絕仍然存在)
3)關於聽力指令。是的,ipv6 監聽指令在那裡。例如伺服器得到了這個設置:
server { listen ipv4:80 listen ipv6:80 ipv6only=on; } server { listen ipv4:443 ssl http2 listen ipv6:443 ssl http2 ipv6only=on; }
- 啟用 IPv6 配置:
在執行此命令時:
[ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'
輸出是:
IPv6 ready system!
- 執行此操作時:netstat -napl | grep 80 似乎 nginx 和 httpd 在 ipv6 上執行沒有問題。輸出是:
關於此伺服器的其他內容:
a) nginx_apache 作為反向代理(nginx 作為前端,apache 作為後端)
b) 作業系統是 Centos 8
c) 在 linode 使用 directadmin 主機(linode 已驗證他們這邊的 IPv6 沒有問題)。
編輯:已解決。感謝@Piotr P. Karwasz 指出 IP 中有錯字。這是一個字元 IP 的錯字,我把 f305 而不是 fe05
編輯域名以防止被搜尋引擎索引。
您測試了您的主機是否可以通過 IPv6 訪問
ping
,但您實際上並沒有在埠 80 上連接到它:curl -6 -i http://www.example.com/
連接失敗。這意味著:
- 您的伺服器不偵聽 IPv6 套接字。您可以通過以下方式檢查:
netstat -6nl | grep 80
尋找這樣的行:
tcp6 0 0 :::80 :::* LISTEN
然後檢查
Listen
配置中的指令。
- 防火牆阻止了 IPv6 埠。檢查:
ip6tables -nvL INPUT
如果策略是
DROP
並且您沒有ACCEPT
埠 80 的規則,則需要添加它。編輯:在您澄清之後,您似乎在nginx配置中輸入了 IPv6 地址時輸入了錯字:您忘記了地址的最後 8 個十六進制數字。除非你真的需要指定nginx應該監聽哪個地址,否則只需指定所有地址:
listen *:80; listen [::]:80;