Reefox

Если что-то не работает

Частые проблемы, их причины и решения. Команды выполняются на сервере Reefox Panel по SSH. Если не помогло — напишите в поддержку, что именно вы сделали и что увидели.

Сайт не открывается или браузер ругается на сертификат

Почти всегда причина в DNS.

  1. Проверьте, что все DNS-серверы домена отдают IP сервера (раздел Сервер и домен).

  2. Выпустите сертификат заново:

    sudo certbot --nginx -d vpn.example.com --non-interactive --agree-tos -m you@example.com --redirect
  3. Проверьте: curl -sS https://vpn.example.com/health должен ответить {"status":"ok"...}.

Если сайт не отвечает совсем, проверьте, что приложение запущено: docker ps должна показать vpn-app, vpn-postgres и vpn-redis. Перезапуск приложения: docker restart vpn-app.

Бот не отвечает

Проверьте по порядку:

  • Доступ к Telegram. curl -m 10 -sS -o /dev/null -w '%{http_code}\n' https://api.telegram.org должен вывести число. Если висит, хостер закрыл Telegram, и нужен другой сервер.
  • Техработы и лицензия. При включённых техработах бот отвечает текстом о них. При остановленной лицензии — «Сервис временно недоступен». Посмотрите плашку вверху админки.
  • Токен не занят кем-то ещё. Если этот токен подключён к другому серверу или сервису, Telegram отдаёт сообщения только одному из них. Надёжнее всего выпустить в @BotFather новый токен и вставить его в Настройки → Telegram бот.
  • Обязательный канал. Если бот не администратор канала, он никого не пропускает дальше.
  • Логи. docker logs vpn-app --tail 200 покажет ошибку, если бот не запустился.

Код из Telegram не приходит

Относится к мастеру первой настройки и к смене пароля.

  1. Нажмите Start у своего основного бота с того аккаунта, чей Telegram ID указан.
  2. Запросите код ещё раз.

Если при установке ошиблись в токене бота или Telegram ID, исправьте их прямо в базе. Подставьте свои значения:

docker exec vpn-postgres psql -U vpn -d vpn_db -c "UPDATE settings SET value = '123456789' WHERE key = 'admin_tgid';"
docker exec vpn-postgres psql -U vpn -d vpn_db -c "UPDATE settings SET value = '1234567890:AAAA-ваш-токен' WHERE key = 'bot_token';"
docker exec vpn-redis redis-cli DEL settings:all
docker restart vpn-app

Через минуту откройте админку и запросите код снова.

Забыли пароль администратора

Задайте новый пароль командами ниже. Вместо NewPassword-123 впишите свой: не короче 6 символов, латинские буквы, цифры, - или _.

HASH=$(docker exec vpn-app python -c "import bcrypt; print(bcrypt.hashpw(b'NewPassword-123', bcrypt.gensalt()).decode())")
docker exec vpn-postgres psql -U vpn -d vpn_db -c "UPDATE admins SET password_hash = '$HASH' WHERE username = 'admin';"

Команда должна ответить UPDATE 1. Теперь войдите с логином admin и новым паролем. Потом очистите историю терминала командой history -c, чтобы пароль в ней не остался.

Клиент оплатил, а доступа нет

  1. Найдите платёж в Платежах по номеру вида 7K3F-9QMZ или по клиенту.
  2. Посмотрите статус:
    • «Ждёт оплаты» — провайдер не сообщил об оплате. Проверьте, что адрес уведомлений прописан в кабинете провайдера (раздел Приём оплаты). Клиент может нажать «Я оплатил — проверить»: для YooKassa и Platega это перепроверит платёж сразу. CryptoBot засчитывается только по уведомлению.
    • «Выдаём доступ» — деньги пришли, но VPN-серверы не ответили. Проверьте «Локации». Reefox Panel повторяет выдачу каждые 5 минут.
    • «Нужна сверка» — сверьте платёж в кабинете провайдера. Если деньги есть, выдайте доступ вручную: карточка клиента → «Продлить доступ».
    • «Счёт истёк» — клиент оплатил позже 15 минут. Такая оплата засчитывается, когда провайдер пришлёт уведомление. Если уведомлений нет, выдайте доступ вручную.
  3. У YooKassa проверьте ключи: при неверном секретном ключе уведомления не принимаются, а клиент видит «Способ оплаты временно недоступен».

У клиента не подключается VPN

  • Локация работает? Посмотрите статус сервера на странице «Локации». Сервер «Оффлайн» временно пропадает из подписки.
  • Подписка активна? Откройте карточку клиента.
  • Приложение обновило подписку? Попросите клиента нажать в приложении «Обновить подписку» или добавить её заново из кабинета.
  • «Превышен лимит устройств» в списке серверов — подключено больше устройств, чем разрешает пакет. Клиент может освободить место в кабинете, в разделе устройств, а вы — кнопкой «Отвязать» в его карточке. Или клиенту нужен пакет больше.
  • «Клиент не передал HWID» — приложение не сообщает Reefox Panel, что это за устройство. Добавьте подписку кнопкой из кабинета, а не вручную, и обновите приложение.
  • Поменяли настройки подключения в 3x-ui? Нажмите Ключи → Перевыпустить все.

Письма не приходят

  • Посмотрите Настройки → Сайт → Доставка: там последние ошибки отправки.
  • В режиме «Свой сервер» письма теряются, если хостер закрыл порт 25 или нет записей SPF, DKIM и PTR. Проще перейти на Yandex Postbox или Resend.
  • Попросите клиента проверить папку «Спам».

Кнопка «Обновить» ничего не делает

Обновление запускает служебная служба на сервере. Проверьте её:

systemctl status vpn-host-cmd

Если она не active (running), запустите её командой systemctl restart vpn-host-cmd. Обновление недоступно, пока лицензия не активна или идёт перенос сервера. Обновить можно и вручную, одной командой.

Сообщения о лицензии в админке

СообщениеЧто делать
«Лицензия ещё не подтверждена: нет ответа от сервера лицензий»Проверьте, что сервер выходит в интернет: curl -sS https://store.reefox.ru/health
«Давно нет связи с сервером лицензий»То же. Без связи Reefox Panel работает 72 часа
«Ключ лицензии не принят сервером лицензий»Ключ не тот или удалён. Возьмите ключ в боте лицензий, «🔑 Мои лицензии»
«Этот ключ уже работает на другом сервере»Ключ занят другим сервером. Если вы переехали вручную, напишите в поддержку
«Лицензия истекла»Оплатите в боте лицензий. Всё включится само в течение минуты
«Лицензия заблокирована»Напишите в поддержку

Закончилось место на диске

df -h /
du -sh /var/lib/docker/containers/*/*-json.log | sort -h | tail -5

Если место съели логи контейнеров, очистите самый большой файл из вывода второй команды: truncate -s 0 путь_к_файлу. После обновлений на диске копятся ненужные слои образов, их убирает docker image prune -f. Не удаляйте тома Docker: в них ваша база данных.

Что прислать в поддержку

  • домен и версию Reefox Panel (она видна в сообщениях бота об обновлениях);
  • что вы делали и что увидели: текст ошибки или скриншот;
  • вывод docker logs vpn-app --tail 100, если проблема на сервере.

Не присылайте содержимое файла .env, пароли, ключи API и токены.