Если IP сетки сайтов недоступен из материкового Китая, все сайты на нём становятся невидимыми для китайских посетителей и поисковых систем, хотя из-за рубежа всё работает идеально. IP может стать недоступным из-за истории предыдущего пользователя, фильтрации всего диапазона, блокировки отдельного порта или домена либо проблем с маршрутизацией у оператора. В статье показано, как проверить доступность из нескольких точек Китая, отличить эти случаи друг от друга, массово проверить целый блок IP и быстро перенести сайты с проблемного IP.
Онлайн-сервисы проверки из разных точек (например, ITDOG, 17CE, Boce или Chinaz) выполняют ping, проверку TCP-портов и HTTP с десятков узлов в сетях China Telecom, China Unicom и China Mobile. Для каждой проблемы выполните три проверки:
| Что вы видите | Вероятная причина |
|---|---|
| Все китайские узлы не проходят ping и TCP; зарубежные узлы работают | IP недоступен из материкового Китая |
| Ping проходит, но TCP 80/443 уходит в таймаут или сбрасывается | Блокировка отдельных портов для этого IP или проблема с файрволом на сервере |
| IP и порт работают, но домен не открывается или резолвится в посторонние IP | Проблема с доменом (DNS-загрязнение или фильтрация по имени хоста), а не с IP |
| Не работает только один оператор (например, China Mobile) | Проблема с маршрутизацией у этого оператора или на пути к нему |
| Днём работает, вечером большие потери | Перегрузка международных каналов, а не блокировка |
Сравните ответы публичного резолвера и резолвера в материковом Китае. Повторите запрос несколько раз: если китайский резолвер возвращает адреса, не имеющие отношения к вашему серверу, проблема в домене, и перенос сайта на другой IP не поможет.
dig +short example.com A @1.1.1.1
dig +short example.com A @114.114.114.114
dig +short example.com A @223.5.5.5
Чтобы проверить сразу все IP из /24, запустите небольшой скрипт на машине, находящейся в материковом Китае (достаточно недорогого облачного сервера или офисного компьютера). Он проверяет TCP 80 и 443 на каждом IP и выводит те, что не прошли проверку.
# ips.txt: one IP per line (generate with: for i in $(seq 2 254); do echo 203.0.113.$i; done > ips.txt)
cat > check-ips.sh <<'EOF2'
#!/bin/bash
while read -r ip; do
r80=$(timeout 4 bash -c "</dev/tcp/$ip/80" 2>/dev/null && echo ok || echo FAIL)
r443=$(timeout 4 bash -c "</dev/tcp/$ip/443" 2>/dev/null && echo ok || echo FAIL)
echo "$ip 80:$r80 443:$r443"
done < ips.txt | tee result-$(date +%F).txt | grep FAIL
EOF2
chmod +x check-ips.sh && ./check-ips.sh
IP отвечает только на тех портах, где что-то слушает, поэтому запускайте проверку для IP, к которым привязан сайт (или хотя бы default server Nginx). Сравните результат с такой же проверкой с сервера за пределами Китая, чтобы отделить реальные проблемы с доступностью от IP, на которых просто нет сервиса.
Проблемы с маршрутизацией провайдер часто может исправить. Соберите:
# From the server towards major Chinese resolvers (apt install mtr-tiny / dnf install mtr)
mtr -rwc 50 114.114.114.114
mtr -rwc 50 223.5.5.5
# From the machine in China towards your server
mtr -rwc 50 203.0.113.10
Сохраните скриншоты проверок из разных точек с указанием времени проверки. Об анализе маршрутов см. статьи проверка обратного маршрута в Китай и диагностика связности с помощью ping, tcping и mtr.
sites.txt и запустите скрипт развёртывания), затем выполните reload Nginx.Держите наготове список проверенных неиспользуемых IP, чтобы переносить сайт за считаные минуты, а старый IP через некоторое время перепроверьте, прежде чем использовать снова. Проверьте и содержимое сайта: сайты с контентом, запрещённым в Китае, снова попадут под ограничения на любом IP.
Запускайте массовую проверку из шага 4 ежедневно по cron на своей китайской машине и отправляйте себе список сбоев или мониторьте ключевые сайты с помощью Uptime Kuma на этой машине (см. мониторинг с Uptime Kuma). Распределение сайтов по нескольким блокам /24 ограничивает последствия, если с одним из диапазонов возникнут проблемы (см. серверы для сеток сайтов с IP из нескольких C-классов).
Нет. Сервер работает; не работает путь от Китая до него. Пройдите шаги 1–5, чтобы выяснить, в чём дело: в IP, порте, домене или маршруте оператора.
Да. Проверяйте каждый новый IP из точек в Китае до того, как размещать на нём сайты, и оставляйте в списке для развёртывания только прошедшие проверку.
Создайте тикет с результатами проверок из нескольких точек и выводом mtr из шага 5. Мы проверим маршрутизацию для вашего блока и обсудим с вами варианты.
Если проблема не решена, создайте тикет — техническая поддержка IMIDC работает 24/7. Укажите IP сервера, затронутые IP и домены, скриншоты проверок из разных точек и результаты mtr, чтобы мы быстрее нашли причину.