在CentOS 7 x64中搭建Mumble语音服务器
本文最后更新于:8 个月前
上篇介绍过在CentOS 7 x64上搭建TeamSpeak 3 服务器的全部流程,详情可以查看以下两篇专栏。
今天我们来看另一款语音通讯服务Mumble。
跟TeamSpeak 3 类似,Mumble是一款支持自行架设的语音通信软件,支持绝大多数操作系统(包括Android和iOS)。它的亮点是在保持高质量通信和加密的情况下,内置优秀的In-game Overlay,实测可以吊打TeamSpeak 3自带的Overwolf。另外的优秀之处在于它是一款开源软件,对同时在线人数并无限制。与之形成对比的是TeamSpeak 3 服务器免费使用的前提是只有一个实例且同时在线人数不超过32人。如果你需要搭建一个语音服务器同时需要多于32人同时在线,那Mumble是一个不错的选择。
准备工作
- 一个域名指向Mumble所在服务器的IP地址并确保成功解析
- vim或nano或者其它你喜欢的编辑器
开始安装
以root用户运行,先是下载最新的release(点这里查看最新release),linux服务器版本murmur:
wget https://github.com/mumble-voip/mumble/releases/download/1.3.0/murmur-static_x86-1.3.0.tar.bz2
tar -vxjf ./murmur-static_x86-1.3.0.tar.bz2
sudo 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
在murmur.ini
中,确保如下内容,其中host对应之前准备好的域名,serverpassword设为空时没有密码:
database=/var/lib/murmur/murmur.sqlite
logfile=/var/log/murmur/murmur.log
pidfile=/var/run/murmur/murmur.pid
...
port=64738
...
uname=murmur
host=mumble.demo.com
serverpassword=demo
创建murmur服务
sudo vim /etc/systemd/system/murmur.service
在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
RestartSec=15
Restart=always
[Install]
WantedBy=multi-user.target
在很多系统中/var/run 会在重启后被清空。为了在重启后重新生成pid目录,以root权限创建配置文件:
sudo vim /etc/tmpfiles.d/murmur.conf
在这个配置文件中写入:
d /var/run/murmur 775 murmur murmur
保存后退出。
日志轮替
为避免日志文件过多造成的困扰,创建配置文件:
sudo 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/murmur.ini
里面的端口保持一致。如果你在配置文件中修改了端口,请在以下文件中对端口也进行修改以保持一致。
sudo vim /etc/firewalld/services/murmur.xml
默认端口为64738,写入以下内容,保存后退出:
<?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
收尾工作
更新系统使我们刚才的设置生效:
sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload
开机自启动
sudo systemctl enable murmur.service
开始murmur服务:
sudo systemctl start murmur.service
停止murmur服务:
sudo systemctl start murmur.service
停止开机自启动:
sudo systemctl disable murmur.service
服务器管理员
至少成功运行murmur
服务一次,然后去log中找到密码,密码是第一次运行时自动生成的:
vim /var/log/murmur/murmur.log
其中<W>2020-03-06 23:53:13.049 1 => Password for 'SuperUser' set to 'PASSWORD'
这一条写明了用户名SuperUser
的密码是PASSWORD
。
修改SuperUser密码
/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini -supw Your_Password [srv]
替换其中的Your_Password为你自己的密码即可。
成为管理员
在成功运行了murmur服务,拿到了SuperUser密码后,打开Mumble客户端,完成证书的创建或者导入工作。在Mumble主界面选择服务器
–> 连接
–> 添加
,在弹出的选项卡里填入以下内容:
- 地址:mumble.demo.com
- 端口:64738
- 用户名:你的用户名(这是你在服务器中显示的名字)
- 别名:你的用户名@mumble.demo.com
填好后点连接
。
当你连入了服务器后右键单击自己的用户名,选择”注册”并同意。
断开当前连接,然后在服务器选项卡新添加一个服务器,填入以下内容:
- 地址:mumble.demo.com
- 端口:64738
- 用户名:SuperUser
- 别名:SuperUser@mumble.demo.com
在弹出密码框时输入SuperUser
的密码。
在服务器列表中右键点击Root
频道,选择编辑
–>分组
:
在分组的下拉菜单中选中admin
,在左下角的成员
下拉菜单中,输入前面在服务器注册的用户名并按回车。
断开当前连接,连接收藏夹里别名为:你的用户名@mumble.demo.com的服务器。
恭喜!你的账号你的用户名
现在获得了服务器的管理员权限。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!