MAATRIX GAMES / Блог / Установка Mumble-сервера — пошаговый гайд

Установка Mumble-сервера — пошаговый гайд

MAATRIX GAMES

Гайдов по Mumble в сети много, но половина из них обрывается на «установили пакет — готово» и не говорит, что делать, если apt не видит нужный пакет, как поднять сервер в Docker или как зарегистрировать его в публичном списке, чтобы друзья находили сервер по имени, а не по IP. Ниже — пошаговый маршрут: от выбора способа установки до первого успешного коннекта клиентом, без пропущенных шагов.

Что нужно подготовить до установки

Прежде чем ставить сервер, определитесь с тремя вещами — от них зависит, какой раздел гайда читать дальше.

  • ОС. Debian/Ubuntu — самый гладкий путь, пакет mumble-server есть в стандартных репозиториях. На CentOS/AlmaLinux/Rocky пакета в базовых репо обычно нет — там пригодится бинарник или Docker.
  • Порт. По умолчанию Murmur (так называется серверная часть Mumble) слушает 64738 одновременно по TCP и UDP. Если порт уже занят другим сервисом на VPS — заранее решите, на какой его сменить.
  • Домен или статичный IP. Не обязателен, но если планируете регистрировать сервер в публичном списке Mumble или просто хотите давать друзьям запоминающийся адрес вместо IP — привяжите поддомен заранее (A-запись на IP VPS).

Ресурсы Murmur требует скромные: для 15–20 одновременно говорящих хватает 512 МБ RAM и 1 vCPU с большим запасом — узкое место у голосового сервера почти никогда не CPU, а полоса канала при высоком битрейте у многих говорящих сразу. Если сервер будет соседствовать с игровым (например, с Rust), можно смело ставить Mumble на тот же инстанс — заметной нагрузки он не добавит.

Установка через apt (Debian/Ubuntu)

Самый быстрый и наименее проблемный способ — пакет из репозитория:

sudo apt update
sudo apt install mumble-server -y

Debconf во время установки спросит два вопроса: запускать ли сервис автозапуском и настроить ли базовый конфиг мастером. На оба можно ответить «да» — тонкую настройку сделаем руками на следующем шаге. После установки сервис обычно поднимается сам:

sudo systemctl status mumble-server

Если статус active (running) — базовая установка готова, переходите сразу к разделу про mumble-server.ini.

На CentOS/AlmaLinux/Rocky пакета mumble-server в стандартных репозиториях, как правило, нет. Варианты: подключить EPEL и проверить, появился ли пакет там (зависит от версии дистрибутива и не гарантировано), либо использовать один из двух способов ниже — бинарник или Docker.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

Установка бинарником и через Docker

Бинарником (без пакетного менеджера)

Проект Mumble публикует на странице релизов на GitHub (mumble-voip/mumble) готовые Linux-сборки сервера — это статические бинарники, которые не требуют компиляции. Скачивать нужно архив именно с серверной частью (в имени файла обычно есть server), не клиентский билд — клиент вам на VPS не нужен.

cd /opt
wget <ссылка-на-архив-сервера-с-страницы-релизов>
tar -xf mumble-server-*.tar.xz
cd mumble-server-*/
./murmurd -ini /opt/mumble-server.ini

Конкретное имя файла и версия меняются от релиза к релизу, поэтому ссылку лучше брать актуальную прямо со страницы Releases репозитория, а не искать по памяти. Для продакшена этот способ используют реже, чем apt: обновления и systemd-интеграцию придётся настраивать вручную. Зато он выручает там, где нет apt-пакета и не хочется собирать сервер из исходников (сборка из исходного кода — тоже рабочий вариант, но занимает ощутимо больше времени и требует cmake, libboost, libssl-dev, qtbase5-dev и ещё десяток зависимостей).

Через Docker

Если сервер уже живёт в контейнерах — Mumble сюда вписывается без трения. Официальный образ на Docker Hub — mumblevoip/mumble-server:

docker run -d \
  --name mumble-server \
  -p 64738:64738/tcp \
  -p 64738:64738/udp \
  -v mumble-data:/data \
  --restart unless-stopped \
  mumblevoip/mumble-server

Конфиг и база SQLite при таком запуске лежат внутри именованного тома mumble-data — не забудьте примонтировать его именно как volume, а не оставлять в слое контейнера, иначе при пересборке образа улетят и настройки, и список зарегистрированных пользователей. Задать SuperUser-пароль в контейнере можно через docker exec:

docker exec -it mumble-server murmurd -ini /data/mumble-server.ini -supw НОВЫЙ_ПАРОЛЬ

Если сомневаетесь, что выбрать — классическую установку или контейнер, — общий разбор плюсов и минусов обоих подходов есть в статье про выбор Docker-контейнера или классической установки игрового сервера: логика применима и к голосовым серверам, не только к игровым.

Разбор mumble-server.ini

Основной конфиг лежит в /etc/mumble-server.ini при установке через apt (в контейнере — /data/mumble-server.ini, в бинарной установке — там, куда вы его положили). Откройте его:

sudo nano /etc/mumble-server.ini

Минимальный набор параметров, которые стоит проверить перед первым запуском:

# TCP+UDP порт сервера
port=64738

# Пароль для входа (пусто = без пароля, только регистрация)
serverpassword=

# Лимит одновременных пользователей
users=50

# Текст приветствия при подключении
welcometext="Добро пожаловать! Правила канала — в описании."

# Битрейт по умолчанию, бит/с на пользователя
bandwidth=72000

# Путь к логу
logfile=/var/log/mumble-server/mumble-server.log

# База пользователей и каналов (по умолчанию SQLite)
database=/var/lib/mumble-server/mumble-server.sqlite

SQLite хватает практически для любого клана или игрового сообщества — переход на MySQL/PostgreSQL имеет смысл только при десятках тысяч регистраций и сотнях каналов одновременно, что для голосового чата рядового сервера — редкий случай.

После любых правок конфига сервис нужно перезапустить:

sudo systemctl restart mumble-server

Проверить, что порт действительно слушается и по TCP, и по UDP:

sudo ss -tulpn | grep 64738

Если в выводе есть только одна из строк (tcp без udp или наоборот) — сервис не полностью поднялся, стоит посмотреть логи (sudo journalctl -u mumble-server -n 50) перед тем, как переходить дальше.

SuperUser, права и регистрация в публичном списке

SuperUser

«Из коробки» аккаунта SuperUser нет — либо пароль для него задал debconf при установке пакета, либо нужно выставить его вручную. Сервис на время команды должен быть остановлен:

sudo systemctl stop mumble-server
sudo murmurd -ini /etc/mumble-server.ini -supw НОВЫЙ_ПАРОЛЬ
sudo systemctl start mumble-server

SuperUser — это не рядовой игрок в списке подключённых, а полноправный администратор конфигурации сервера: с этой учёткой в клиенте доступны ACL (Access Control Lists) — права на каналы, регистрация, кик/бан прямо из интерфейса, без правки файлов на сервере. Заходят под ней тем же способом, что и обычным пользователем, только имя — строго SuperUser и пароль — тот, что задали командой выше.

Важный нюанс: не используйте SuperUser как повседневный аккаунт. Заведите себе обычную учётку через Server → Register в клиенте, а SuperUser включайте только для административных задач вроде выдачи прав модераторам (правый клик по корневому каналу → Edit → вкладка Groups/ACL, группа admin получает права на кик/мут без полного доступа к конфигурации).

Регистрация сервера в публичном списке

Если хотите, чтобы сервер был виден в official server list Mumble-клиента (полезно для открытых сообществ, необязательно для закрытого клана), в mumble-server.ini заполняются четыре поля:

registerName=Название вашего сервера
registerPassword=пароль-для-подтверждения-владения
registerUrl=https://ваш-сайт-или-дискорд
registerHostname=voice.ваш-домен.ru
allowping=true

registerPassword привязывает регистрацию к вам — при следующей регистрации с тем же именем сервера пароль должен совпасть, иначе список решит, что имя уже занято. Для закрытого клана эту секцию можно смело оставлять пустой — вы и так делитесь адресом сервера напрямую, без списка.

Файрвол, автозапуск и первое подключение

Порт 64738 нужно открыть и по TCP, и по UDP — это не опечатка в конфиге, а особенность протокола: TCP отвечает за управление, аутентификацию и текстовый чат в канале, UDP несёт сам голос (у него ниже задержка на потере пакетов, что критично для войса под нагрузкой).

sudo ufw allow 64738/tcp
sudo ufw allow 64738/udp
sudo ufw reload

Если у хостинга есть отдельный облачный файрвол или security group поверх файрвола ОС — продублируйте правило и там, иначе снаружи порт всё равно останется закрытым, хотя ufw status будет показывать «allow».

Автозапуск при установке через apt обычно включается сам, но лучше свериться явно:

sudo systemctl enable mumble-server
sudo systemctl is-enabled mumble-server

Это защищает от сценария «сервер VPS перезагрузили после планового апдейта хостинга, а войс не поднялся, пока кто-то не зашёл по SSH и не запустил его руками».

Дальше — подключение клиентом (скачивается с mumble.info, доступен для Windows/macOS/Linux, есть Mumla для Android):

  1. Установите и запустите клиент Mumble.
  2. Server → Connect → Add New...
  3. Заполните: Label (любое имя для себя), Address — IP или домен VPS, Port64738 (или ваш кастомный), Username.
  4. Если задан serverpassword — введите его в поле Password.
  5. При первом подключении клиент попросит подтвердить самоподписанный TLS-сертификат сервера, который Murmur создаёт сам при первом запуске. Это ожидаемо: Mumble шифрует весь трафик по умолчанию, даже без «настоящего» сертификата от Let's Encrypt.

Если предупреждение о самоподписанном сертификате раздражает — замените его на реальный, прописав пути в конфиге и перезапустив сервис:

sslCert=/etc/letsencrypt/live/ваш-домен/fullchain.pem
sslKey=/etc/letsencrypt/live/ваш-домен/privkey.pem

Для рядового игрового войса это чисто косметическое улучшение — предупреждение клиент показывает один раз и дальше запоминает отпечаток сервера навсегда, даже без валидного сертификата.

Голосовые сервера часто ставят рядом с текстовыми — например, дублируют структуру каналов с ботом на Discord или используют похожую логику прав, что и в гайде по TeamSpeak, если сообщество исторически привыкло к его интерфейсу и переезжает постепенно.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

Частые вопросы

apt install ругается, что пакет mumble-server не найден — что делать?

Проверьте, что подключены стандартные репозитории дистрибутива (sudo apt update без ошибок) и что у вас Debian/Ubuntu, а не производная система вроде CentOS — там пакета обычно нет вообще, нужен бинарник или Docker.

Чем отличаются Murmur и Mumble?

Mumble — название всего проекта и клиентского приложения. Murmur — историческое имя серверной части; в современных пакетах бинарник и systemd-юнит чаще называются mumble-server, но по сути это тот же Murmur.

Как перенести сервер на новый VPS без потери каналов и пользователей?

Скопируйте файл базы (mumble-server.sqlite, обычно в /var/lib/mumble-server/), сам конфиг mumble-server.ini и сертификаты из той же директории — этого достаточно, чтобы поднять сервер на новом хосте с теми же каналами, правами и регистрациями.

Нужен ли отдельный VPS под Mumble, если уже есть игровой сервер?

Нет, если ресурсов игрового сервера хватает с запасом. Murmur настолько лёгкий, что 512 МБ RAM на клан в 15–20 человек — это уже комфортный запас, а не минимум на грани.

Почему меня видно в канале, но никто не слышит голос?

Почти всегда файрвол: открыт TCP, а UDP забыт (или наоборот). Голос идёт строго по UDP — если порт заблокирован только для него, подключение к серверу пройдёт успешно, а звук — нет.