Apache-2.2

IPv6 有效性測試失敗。這是什麼意思?

  • January 2, 2020

當我使用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;
}
  1. 啟用 IPv6 配置:

在此處輸入圖像描述

在執行此命令時:

[ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'

輸出是:

IPv6 ready system!
  1. 執行此操作時: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;

引用自:https://serverfault.com/questions/997041