介绍
Mumble 是一款开源、低延迟、高音质的用于语音通信的 VoIP 应用程序。它主要是为游戏玩家设计的,并且是十多年前率先建立了真正低延迟语音通信的工具。Murmur 是 Mumble 的服务器组件。
准备工作
创建用户组与用户
groupadd -r murmur; useradd -r -g murmur -m -d /var/lib/murmur -s /sbin/nologin murmur
Debian 无需此操作
创建目录与权限结构
mkdir /usr/local/murmur; mkdir /var/log/murmur
chown -R murmur:murmur /var/log/murmur; chmod 0770 /var/log/murmur
安装
yum install -y bzip2
wget https://github.com/mumble-voip/mumble/releases/download/1.3.4/murmur-static_x86-1.3.4.tar.bz2
tar jxvf murmur-static_x86-1.3.4.tar.bz2
cp -R murmur-static_x86-1.3.4/* /usr/local/murmur
cp murmur-static_x86-1.3.4/murmur.ini /etc/murmur.ini
Debian:
apt update
apt install -y mumble-server
修改配置 vi /etc/murmur.ini
Debian:
nano /etc/mumble-server.ini
database=
logfile=/var/log/murmur/murmur.log
pidfile=/var/run/murmur/murmur.pid
; for Debian
; database=/var/lib/mumble-server/mumble-server.sqlite
; icesecretwrite=
; logfile=/var/log/mumble-server/mumble-server.log
; pidfile=/run/mumble-server/mumble-server.pid
welcometext="<br /><span style="color:#fbbc05">Mumble 是一个免费、开源的语音聊天应用程序,具有低延迟和高音质的特点。<br>它是十多年前首个实现真正低延迟语音通信的 VoIP 应用程序,低延迟和游戏并不是它唯一擅长的领域。</span><br /><br /><a href="https://blog.benhon.net/mumble.html"><span style="color:#349c50"><b>查看 Mumble 使用指南</b></span></a>"
;welcometext="<br /><span style="color:#fbbc05">Mumble is a free, open source, low latency, high quality voice chat application.<br>Mumble was the first VoIP application to establish true low latency voice communication over a decade ago. But low latency and gaming are not the only use cases it shines in.</span><br /><br /><a href="https://blog.benhon.net/mumble.html"><span style="color:#349c50"><b>View User's Guide</b></span></a>"
port=64738
;host=
serverpassword=
bandwidth=72000
timeout=30
users=50
;usersperchannel=12
messageburst=5
messagelimit=1
allowping=true
;rememberchannel=true
;textmessagelength=5000
;imagemessagelength=131072
;allowhtml=false
logdays=7
; 注册为公共服务器
;registerName=Mumble Server
;registerPassword=secret
;registerUrl=http://benhon.net
;registerHostname=static IP addresses
;registerLocation=CN
sslCert=/etc/nginx/ssl/benhon.net.crt
sslKey=/etc/nginx/ssl/benhon.net.key
uname=murmur
; for Debian
; uname=mumble-server
; 如果启用,则会向客户端发送有关服务器版本和操作系统的信息。
;sendversion=False
; 请注意,suggest* 选项出现在 1.2.3 之后,并且对客户端版本 1.2.3 和更早版本没有影响。
; 您可以为服务器设置建议的最低版本,如果客户端不满足最低要求,则在客户端连接时会在日志中通知客户端。
; suggestVersion 版本格式 X.X.X.
;suggestVersion=
; 设置为 true 将警告所有未启用位置音频的用户,服务器管理员建议启用它。
; 将其设置为 false 将具有相反的效果,如果您不关心用户是否启用位置音频,请将其设置为空白。
;suggestPositional=
; 设置为 true 将警告所有未启用即按即说的用户,服务器管理员建议启用它。
; 将其设置为 false 将产生相反的效果,如果您不关心用户是否启用 PTT,请将其设置为空白。
;suggestPushToTalk=
; 如客户端在 autobanTimeframe 秒内尝试 autobanAttempts 次连接则会被禁封 autobanTime 秒;
; 将 autobanAttempts 或 autobanTimeframe 设置为 0 则禁用此功能。
autobanAttempts=10
autobanTimeframe=120
autobanTime=300
; 您可以在此处配置Ice的任何配置选项。我们建议保留默认值。
; 请注意,此部分必须位于配置文件的最后。
[Ice]
Ice.Warn.UnknownProperties=1
Ice.MessageSizeMax=65536
设置防火墙
Murmur 监听 64738 端口,使用 TCP 与 UDP 协议,添加 iptables 放行规则。
/sbin/iptables -I INPUT -p tcp --dport 64738 -j ACCEPT
/sbin/iptables -I INPUT -p udp --dport 64738 -j ACCEPT
service iptables save
运行
/usr/local/murmur/murmur.x86 -fg -ini /etc/murmur.ini
Debian:
ll /etc/init.d/
systemctl stop mumble-server
systemctl disable mumble-server
/usr/sbin/murmurd -fg -ini /etc/mumble-server.ini
或
systemctl status mumble-server
systemctl start mumble-server
使用参数 -fg
将使 Murmur 运行于前台,方便查看 console 中显示的 SuperUser 密码。不使用参数 -fg
的话,Murmur 默认运行于后台,看不到 console 输出的信息。
SuperUser 密码
SuperUser 是服务器最高权限的管理员。SuperUser 密码只会在 Murmur 第一次运行时随机生成并显示在 console。当然,在日志中也可查询到,类似如下字样:
2015-10-15 20:37:34.805 1 => Password for 'SuperUser' set to '
EgYANjexEMyb
'
重置 SuperUser 密码
如果遗失了 SuperUser 的密码,可以使用指令重置。
/usr/local/murmur/murmur.x86 -fg -ini /etc/murmur.ini -supw <password>
此指令只用于重置 SuperUser 密码,并不会运行 Murmur。运行 Murmur 时不要使用 -supw
选项。
进程守护
这里需要用到进程管理工具 Supervisor。它会在后台监控 Murmur 进程,一旦发现 Murmur 异常终止便自动重新启动。这样就可以保证 Mumble 语音通讯服务一直在线。参照 进程管理工具 Supervisor 。
管理服务器
使用 SuperUser 登入
具体操作参照 Mumble 使用指南 - 连接服务器
SuperUser 用户无法参与语音聊天,SuperUser 只能管理服务器。
新增管理员用户
能不能实现一个账户又能语音聊天,同时不用切换到 SuperUser 又能管理服务器呢?答案是肯定的。退出 SuperUser,以一个新用户名登入服务器(例如 BenhoN):
登入后,注册到服务器,这样用户名会被独占,其他 Mumble 用户将无法使用此用户名登入到服务器。
同时备份 Mumble 客户端证书,因为独占的用户名与用户的权限是与客户端证书绑定的,所以请妥善保管证书。打开菜单“配置” > “证书向导” > “导出当前证书”。
现在,切换到 SuperUser 登入服务器,鼠标右键点击大厅名称,选择“编辑”,
点击“分组”选项卡,在“分组”下拉框中选择“admin”,然后在“成员”框中输入新用户 BenhoN 点击“添加”,点击“OK”保存退出。
这样新用户 BenhoN 就被添加到管理员组,拥有管理员权限了(如下图)。
ACL与权限组管理
Mumble 服务器提供了完善而又丰富的 ACL(访问控制列表)和用户权限管理,详细使用方法请参考官方文档 https://wiki.mumble.info/wiki/ACL_and_Groups/English
升级与备份
服务端升级时,新版的程序文件直接拷贝到安装目录 /usr/local/murmur/
替换旧文件即可;备份时,只需备份配置文件 /etc/murmur.ini
与数据库文件 /var/lib/murmur/murmur.sqlite
即可。
注意,如果迁移到了新环境,记得修改 sqlite 文件的权限,以免 Murmur 因无法读取数据库而启动失败。
chown murmur:murmur /var/lib/murmur/murmur.sqlite
Debian:
chown mumble-server:mumble-server /var/lib/mumble-server/mumble-server.sqlite
其他
服务端下载
https://dl.mumble.info/latest/stable/server-linux-x86
服务端配置详解
客户端使用指南
版权声明:本文为原创文章,版权归 BenhoN 所有。
本文链接:https://blog.benhon.net/archives/set_up_murmur.html
所有原创文章采用知识共享 署名-非商业性使用 4.0 国际 许可协议进行许可,你可以自由地转载和修改,但请务必注明文章来源并且不可用于商业目的。