Решение проблемы с загрузкой ресурспака через РКН
Полное руководство по настройке Cloudflare R2 + кастомный домен
Полное руководство по настройке Cloudflare R2 + кастомный домен
📌 Суть проблемы
Если ваш Minecraft сервер использует плагин Nexo (или Oraxen) для раздачи ресурспака, и у игроков из России возникает ошибка загрузки - скорее всего причина в РКН.
Стандартные методы раздачи пака:
- Selfhost - сервер раздаёт пак сам, порт легко блокируется провайдерами
- Polymath - используется домен atlas.nexomc.com, который блокируеться на момент 2026 года
- Cloudflare R2 (pub-xxx.r2.dev) - публичные домены R2 массово заблокированы РКН
В логе клиента это выглядит так:
Код:
[Download-1/ERROR]: Failed to download https://pub-xxx.r2.dev/resourcepacks/xxx.zip
Caused by: java.net.SocketException: Попытка установить соединение была безуспешной,
т.к. от другого компьютера за требуемое время не получен нужный отклик✅ Решение
Раздавать ресурспак через Cloudflare R2 с привязкой собственного домена. Так пак скачивается с вашего домена, который не заблокирован, а не с публичного r2.dev.
🛠 Пошаговая инструкция
Шаг 1 - Создаём бакет в Cloudflare R2
- Зайдите на https://dash.cloudflare.com
Cloudflare R2 бесплатно даёт 10GB хранилища и 10 миллионов операций в месяц - для ресурспака Minecraft этого более чем достаточно. - В левом меню: Storage & Databases → R2 Object Storage → Overview
- Нажмите + Create bucket
- Назовите бакет, например nexo-pack
- Регион оставьте по умолчанию
Шаг 2 - Включаем публичный доступ
- Откройте созданный бакет → вкладка Settings
- Найдите раздел Public Development URL
- Убедитесь что он включён (кнопка показывает Disable - значит активен)
- Скопируйте ссылку вида - она пригодится временно
Шаг 3 - Создаём API токен
- На странице R2 Overview нажмите Manage R2 API Tokens
- Нажмите Create Account API Token
- Заполните:
- Token name: любое название
- Permissions: Object Read & Write
- Specify bucket: выберите ваш бакет
- TTL: Forever
- Нажмите Create API Token
- ⚠ ВАЖНО: сохраните Access Key ID и Secret Access Key - они показываются только один раз!
Шаг 4 - Добавляем домен в Cloudflare
Если ваш домен уже на Cloudflare - пропустите этот шаг
- На главной Cloudflare нажмите Add a domain
- Введите ваш домен и выберите Free план
- Cloudflare выдаст два NS-сервера вида:Код:
kenneth.ns.cloudflare.com vera.ns.cloudflare.com - Зайдите к своему регистратору и замените NS-серверы на те что выдал Cloudflare
- Ждите 1-2 часа пока изменения распространятся (придёт письмо на почту)
Шаг 5 - Привязываем домен к R2 бакету
- Откройте бакет → Settings → Custom Domains → + Add
- Введите поддомен, например pack.ваш-домен.com
- Cloudflare автоматически добавит CNAME запись
- Нажмите Connect domain
Шаг 6 - Настраиваем Nexo конфиг
Откройте plugins/Nexo/config.yml и настройте секцию Pack.server:
Код:
Pack:
server:
type: S3
s3:
endpoint_url: https://ВАШ_ACCOUNT_ID.r2.cloudflarestorage.com
path_style: true
chunked_encoding: false
public_url: https://pack.ваш-домен.com
region: auto
bucket: nexo-pack
access_key: ВАШ_ACCESS_KEY_ID
secret_key: ВАШ_SECRET_ACCESS_KEY
url_expiration: 7d⚠ Ключевой момент: в public_url указывайте ваш кастомный домен, а НЕ pub-xxx.r2.dev - именно это решает проблему с РКН!
- Сохраните конфиг
- Сделайте /nexo reload all
- Nexo автоматически загрузит ресурспак в R2 это будет видно в консоли

🔍 Как проверить что всё работает
В логе сервера при старте должно появиться что-то вроде:
Код:
[Nexo] Uploading pack to S3...
[Nexo] Pack successfully uploadedВ логе клиента НЕ должно быть:
Код:
Failed to download https://pack.ваш-домен.com/resourcepacks/xxx.zip💡 Почему именно этот метод?
| Метод | Бесплатно | РКН | Надёжность |
|---|---|---|---|
| Selfhost | ✅ | ❌ Блокируется | Средняя |
| Polymath | ✅ | ❌ Блокируется | Средняя |
| R2 (r2.dev) | ✅ | ❌ Блокируется | Высокая |
| R2 + кастомный домен | ✅ | ✅ Работает | Высокая |
Последнее редактирование: