在 CentOS 上搭建 Mumble 服務器


Mumble 服務器搭建

前言

Mumble 是一個開源、低延遲、高質量的語音通話平台。可以在多個平台搭建,並且有多個開源的客戶端(Windows、Linux、Android、MacOS)。這是 官網 Github

比如你可以在 F-Droid 下載一個開源的客戶端 Mumla ,可以使用自己搭建的服務器,也可以使用許多公共服務器。

Mumble 有以下特點:

  • 對用戶
    • 低延遲,用於游戲交流體驗超棒
    • 保持隱私和安全
      • 始終是加密通話
      • 默認使用公鑰、私鑰配對
    • 通過服務器辨別朋友
    • 對於游戲玩家:
      • In-game Overlay 看誰在說話、FPS、時間
      • 方位音頻,聽到玩家從游戲中的所處的位置說話。
    • 有指南幫助設置,例如配置麥克風
  • 對管理員
    • Libre 軟件,沒有授權什么的限制
    • 開源,安全,可擴展
    • 可擴展的用戶權限系統
    • 可通過 Ice 和 GRPC 協議擴展
  • 對 Hosters
    • 免費軟件
    • 可通過 Ice middleware 自動化管理
    • 低資源占用
    • 穩定的 server 軟件
    • 可自定義的 web-interfaces (通過 Ice)

這里是官方的服務器搭建指南: Server guide

其實像 Ubuntu 類的系統搭建是比較簡單的,有官方包,安裝運行就行,但是 CentOS 沒有官方 yum 可安裝的包,所以要手動搭建。

今天在我的阿里雲 CentOS 服務器上搭建了 Mumble 服務器。

安裝

Windows

下載安裝包安裝就行了

Linux

CentOS7

下載

(服務器端是 murmur ,不是 mumble,mumble 是客戶端)

tar -jxvf murmur-static_x86-1.3.0.tar.bz2
cd  cd murmur-static_x86-1.3.0
mkdir /usr/local/murmur
sudo cp -r ./murmur-static_x86-1.3.0/* /usr/local/murmur/
sudo cp ./murmur-static_x86-1.3.0/murmur.ini /etc/murmur.ini
創建 Murmur 賬戶、數據目錄、登陸目錄
sudo groupadd -r murmur
sudo useradd -r -g murmur -m -d /var/lib/murmur -s /sbin/nologin murmur
sudo mkdir /var/log/murmur
sudo chown murmur:murmur /var/log/murmur
sudo chmod 0770 /var/log/murmur
系統配置

Murmur.ini vim /etc/murmur.ini

database=/var/lib/murmur/murmur.sqlite
logfile=/var/log/murmur/murmur.log
pidfile=/var/run/murmur/murmur.pid

# 對了,把服務密碼設一下,不要讓人隨便就能加入
serverpassword=mypassword

# Reminder: When changing the port that murmur will listen to you will need to also update the firewall.
# Update the firewall by editing /etc/firewalld/services/murmur.xml
# Then run "sudo firewall-cmd --reload"
port=64738

# Comment out the following setting since the service will already be executing as the correct user:
# uname=murmur

# 再設下最大在線用戶數。估計我的服務器承載不了很多人
users=10

允許后台運行

創建一個系統單位,讓 Murmur 可以被系統管理,創建文件 vim /etc/systemd/system/murmur.service

[Unit]
Description=Mumble Server (Murmur)
Requires=network-online.target
After=network-online.target mariadb.service time-sync.target

[Service]
User=murmur
Type=forking
ExecStart=/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini
PIDFile=/var/run/murmur/murmur.pid
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

當前的系統中,/var/run 已經不能用了,創建 vim /etc/tmpfiles.d/murmur.conf

d /var/run/murmur 775 murmur murmur
自動覆蓋Log

設置 logrotate 不讓 log 文件 /var/log 裝滿。創建 vim /etc/logrotate.d/murmur

/var/log/murmur/*log {
    su murmur murmur
    dateext
    rotate 4
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload murmur.service > /dev/null 2>/dev/null || true
    endscript
}
防火牆(如果要更改默認端口的話)

/etc/firewalld/services/murmur.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
        <short>Murmur</short>
        <description>Mumble Server (Murmur)</description>
        <port protocol="tcp" port="64738" /><!-- Reminder: Update /etc/murmur.ini so that it uses the same ports -->
        <port protocol="udp" port="64738" />
</service>

再添加防火牆規則到默認區域並重新載入:

sudo firewall-cmd --permanent --add-service=murmur
sudo firewall-cmd --reload
SELinux

如果有 SELinux ,臨時禁用:

sudo setenforce 0

要永久禁用 SELinux :

SELINUX=disabled
最后步驟:

更新系統讓它准備運行 Murmur 服務

sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload

暫時啟動:

sudo systemctl start murmur.service

設置自動啟動:

sudo systemctl enable murmur.service

注意 :如果啟動 Murmur 后只得到了一個僵死的進程,那么需要安裝 redhat-lsb-core

系統准備

在控制台打開 64738 的 TCP 和 UDP 端口,

配置服務

ini 文件

改變 ini 文件后要重啟服務才能生效。 ini 長這個樣子:

welcometext=
port=
serverpassword=
上面一行留空表示是公共服務
bandwidth=
users=
registerName=根頻道的名字
#這是注釋

登陸

用手機端的 Mumla 測試下,延遲 64ms ,還不錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM