Когда я использую 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. наконец, я решил проигнорировать эту проблему, так как я не знаю, почему тест не удался, но я все еще могу пропинговать адрес 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;
}
4) Включена конфигурация IPv6:
также при выполнении этой команды:
[ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'
Результат:
IPv6 ready system!
5) При этом: netstat -napl | grep 80 Похоже, что nginx и httpd без проблем работают на ipv6. Результат:
Другое об этом сервере:
а) nginx_apache как обратный прокси (nginx как фронтенд и apache как бэкэнд)
б) Операционная система - Centos 8
c) Использование хоста directadmin на linode (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, вам нужно его добавить.
редактировать: После ваших разъяснений кажется, что вы допустили опечатку, указав свой IPv6-адрес в nginx конфигурация: вы забыли последние 8 шестнадцатеричных цифр адреса. Если вам действительно не нужно указывать, по какому адресу следует nginx слушайте, просто укажите все адреса:
listen *:80;
listen [::]:80;