Mumble——简介及搭建
一款开源语音通信应用程序-Mumble
1. Mumble
Mumble是一款开源语音通信应用程序,具有可自定义的游戏覆盖图,应用程序外观,对话记录和高级语音活动检测功能。
官网传送门:https://mumble.com/
2. 安装
2.1 准备工作
- 一个域名指向Mumble所在服务器的IP地址并确保成功解析
- vim或nano或者其它你喜欢的编辑器
2.2 开始安装
↓以root用户运行,先是下载最新的release,linux服务器版本murmur↓
wget https://github.com/mumble-voip/mumble/releases/download/1.3.1/murmur-static_x86-1.3.1.tar.bz2
tar -vxjf ./murmur-static_x86-1.3.1.tar.bz2
sudo mkdir /usr/local/murmur
sudo cp -r ./murmur-static_x86-1.3.1/* /usr/local/murmur/
sudo cp ./murmur-static_x86-1.3.1/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
3. 系统设置
3.1 修改murmur.ini
↓打开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
3.2 创建murmur服务
↓创建murmur.service文件↓
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
↓在murmur.conf这个配置文件中写入↓
d /var/run/murmur 775 murmur murmur
保存后退出
3.3 日志轮换
↓为避免日志文件过多造成的困扰,创建配置文件↓
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
}
3.4 防火墙
↓此处防火墙设置的端口需要和系统配置文件/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
3.5 收尾工作
↓更新系统使我们刚才的设置生效↓
sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload
3.6 开机自启动
↓设置开机服务器自启动↓
sudo systemctl enable murmur.service
4. 服务器管理命令
4.1 开启murmur服务
↓输入指令↓
sudo systemctl start murmur.service
4.2 停止murmur服务
↓输入指令↓
sudo systemctl stop murmur.service
4.3 停止开机自启动
↓输入指令↓
sudo systemctl disable murmur.service
5. 服务器管理员
5.1 查找SuperUser信息
↓至少成功运行murmur服务一次,然后去log中找到密码↓
↓密码是第一次运行时自动生成的↓
↓使用 cat 指令查看密码↓
cat -n /var/log/murmur/murmur.log
↑其中2020-04-14 23:53:13.049 1 => Password for 'SuperUser' set to 'PASSWORD'↑
↑这一条写明了用户名SuperUser的密码是PASSWORD↑
5.2 修改SuperUser密码
↓输入指令并替换其中的Your_Password为你自己的密码即可↓
/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini -supw Your_Password
5.3 让其它账户成为管理员
在成功运行了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的服务器 恭喜!账号你的用户名现在获得了服务器的管理员权限
6. 搭建完成
至此
一个属于你的私人语音服务器就搭建完成了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PostgreSQL 日志系统 及 设置错误导致磁盘塞满案例
- 六、乘胜追击,将剩下的Git知识点搞定
- 树莓派基础实验39:解析无线电接收机PWM、SBUS信号
- nodejs源码分析第十九章 -- udp模块
- Spark Extracting,transforming,selecting features
- 逆向so文件调试工具ida基础知识点
- 二叉搜索树中的众数
- 了解递归:普通函数递归和非递归栈式实现之间的区别
- 字节真题 ZJ26-异或:使用字典树代替暴力破解降低时间复杂度
- curl命令半天没响应,有可能返回内容导致session挂了
- 查看JVM参数信息 查看G1堆的使用情况
- LC1263-AI寻路优化: 距离优先bfs -> heuristic + A* -> tarjan + A*
- 从Zookeeper 到 Elastic Job 的原理解析和使用(一)
- 从Zookeeper 到 Elastic Job 的Simple Job使用(二)
- resteasy 接收post请求参数——json and 表单