Решение проблем
Распространённые проблемы и их решения при работе сервера Freedom Messenger.
Сервер не запускается
Порт уже используется
Другой процесс занимает порт 443 (или ваш настроенный порт). Найдите и остановите его:
sudo lsof -i :443
sudo systemctl stop nginx # если nginx занимает 443 Нет доступа к порту 443
Бинарнику нужен capability CAP_NET_BIND_SERVICE для привязки к портам ниже 1024:
sudo setcap cap_net_bind_service=+ep /opt/freedom-mess/freedom-mess Ошибка прав доступа к конфигурации
Сервер требует права 0600 для config.toml:
chmod 600 /opt/freedom-mess/config.toml Не прошла проверка целостности базы
База данных может быть повреждена. Восстановите из последнего бэкапа. См. Резервное копирование.
Проблемы с TLS-сертификатом
Сертификат не выдаётся (режим HTTPS)
Let's Encrypt должен подтвердить ваш домен. Проверьте:
- Порт 80 открыт (используется для HTTP-01 challenge)
- A-запись домена указывает на IP этого сервера
- Нет другого сервиса на порту 80
- DNS-записи распространились (
dig ваш-домен.com)
Сертификат истёк
Сертификаты обновляются автоматически. Если обновление не сработало, перезапустите сервер — он попытается обновить при запуске. Проверьте логи на наличие ACME-ошибок.
Проблемы с подключением
WebSocket-разрывы
Если пользователи часто отключаются:
- Проверьте память сервера — если достигнут лимит 512 МБ, systemd может перезапустить сервис
- В режиме Cloudflare убедитесь, что поддержка WebSocket включена (она включена по умолчанию)
- Проверьте, нет ли прокси или фаервола, разрывающего неактивные соединения
Ошибка Cloudflare 524
Cloudflare возвращает 524, когда origin-сервер не отвечает в течение 100 секунд. Проверьте, что сервер запущен и слушает порт 8080.
Проблемы со звонками
Звонки не соединяются
- Убедитесь, что UDP-порт 3478 открыт в фаерволе
- Проверьте
public_ipв config.toml - Проверьте, что оба пользователя предоставили доступ к микрофону
Звук в одну сторону
Обычно вызвано неправильным public_ip или асимметричным NAT. Проверьте, что публичный IP совпадает с тем, что видят внешние сервисы.
Производительность
Высокое потребление памяти
Нормальное потребление в простое — 30-80 МБ. Если память растёт выше 200 МБ:
- Проверьте количество активных WebSocket-соединений в панели администратора
- Проверьте количество горутин — аномально высокое число может указывать на утечку
- Перезапустите сервер для освобождения памяти
Медленные запросы к базе
SQLite использует режим WAL для производительности. Если запросы медленные:
- Проверьте дисковый I/O — производительность SQLite зависит от скорости диска
- Сервер выполняет часовые WAL-чекпоинты — проверьте в логах, что они завершаются
- Рассмотрите переход на SSD, если используется HDD
Получение помощи
Если вашей проблемы нет в списке:
- Проверьте логи сервера:
sudo journalctl -u freedom-mess -f - Проверьте логи в панели администратора (фильтр по уровню error)
- Создайте issue на GitHub с текстом ошибок и конфигурацией (скройте секреты)