语音开黑软件Mumble的部署与使用

什么是Mumble?

Mumble是一款开源的语音通信软件,专为游戏玩家和团队协作设计。它以低延迟、高质量的语音传输和强大的权限管理系统而闻名,是许多游戏社区和专业团队的首选语音工具。

Mumble的主要特点

  • 低延迟:专为游戏优化,延迟极低,确保实时通信
  • 高质量音频:支持高保真音频传输,提供清晰的语音体验
  • 强大的权限系统:灵活的ACL(访问控制列表)管理,可精细控制用户权限
  • positional audio:支持3D positional audio,在支持的游戏中提供沉浸式体验
  • 开源免费:完全开源,无广告,可自由部署和定制
  • 跨平台:支持Windows、macOS、Linux等多种操作系统
  • 安全加密:所有通信均经过加密,保护用户隐私
阿呆的服务器 客户端官网 云盘下载

版本1.5.735密码:adai

Mumble设置
  1. 登录
    服务器->添加
    地址: 输入服务器地址
    端口: 服务器端口号默认64738
    用户名: 进入服务器的用户昵称。管理员输入:superuser会出现密码
    别名: 服务器别名

  2. 麦克风设置

    设备:设备修改成自己麦克风设置
    传输模式: 连续发言语音激活按键发言
    连续发言:自由麦
    语音激活:安静阈值:低于此值视为不启用麦克风,语音阈值:高于此值使用启用麦克风
    按键发言:设置按键触发麦克风
    压缩质量:你的语音数据包的音频质量,理论是越高越好,但也要看服务器最高支持多少质量

  3. 设置耳机
    点击设置->音频输出

  4. 快速连接服务器
    点击设置->网络->勾选启动时自动连接上次的服务器

  5. 关闭上传隐私数据
    勾选 请勿向Mumble服务器和页面服务器发送操作系统信息

  6. 开启语音播报
    点击设置->消息->启动语音播报

  7. 高级设置

    • 回声消除:在音频输入设置中,勾选”启用回声消除”可以减少麦克风拾取的扬声器声音
    • 噪音抑制:勾选”启用噪音抑制”可以自动过滤背景噪音,提高语音清晰度
    • 自动增益控制:勾选”启用自动增益控制”可以自动调整麦克风音量,保持稳定的输出水平
    • 压缩质量:根据网络状况调整压缩质量,建议在良好网络环境下设置为9-10
服务器搭建
1
2
3
4
5
6
7
8
#添加用户
adduser mumble
#添加sudo权限
sudo adduser mumble sudo
#切换到mumble用户
su mumble
#切换到mumble目录
cd /home/mumble

安装mumble-server

1
2
3
apt install mumble-server
#启动服务,点击两次yes,之后设置superuser用户密码
sudo dpkg-reconfigure mumble-server

启动服务

1
sudo systemctl start mumble-server

打开配置文件

1
sudo nano /etc/mumble-server.ini

welcometext:服务器欢迎语句
port:端口
serverpassword:服务器密码
bandwidth:带宽,影响音频质量和服务器资源消耗默认72000,可设置更高如96000/128000
users:服务器可加入人数
registerName:更改默认Root频道名称

部分配置被注释,请删除前面的 ;

设置完重启配置文件
1
sudo service mumble-server restart
开放64738端口
1
sudo ufw allow 64738
  1. 拉取镜像(可选,运行时会自动拉取)
    1
    docker pull mumblevoip/mumble-server:latest
  2. 运行容器
    1
    2
    3
    4
    5
    6
    7
    docker run --detach \
    --name mumble-server \
    --publish 64738:64738/tcp \
    --publish 64738:64738/udp \
    --volume ./data/mumble:/data \
    --restart on-failure \
    mumblevoip/mumble-server:latest
  3. 更新与删除
    1
    2
    3
    4
    5
    6
    7
    # 拉取最新版
    docker pull mumblevoip/mumble-server:latest
    # 或拉取指定版本(如 v1.5.634)
    docker pull mumblevoip/mumble-server:v1.5.634
    # 删除
    docker stop mumble-server
    docker rm mumble-server
  1. 创建文件夹并进入
    1
    mkdir mumble && cd mumble
  2. 创建并编辑docker-compose.yml Ctrl + XYEnter保存
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    services:
    mumble-server:
    image: mumblevoip/mumble-server:latest
    container_name: mumble-server
    hostname: mumble-server
    restart: on-failure
    environment:
    MUMBLE_CUSTOM_CONFIG_FILE: /data/mumble-server.ini
    MUMBLE_SUPERUSER_PASSWORD: password
    ports:
    - 64738:64738
    - 64738:64738/udp
    volumes:
    - ./data:/data

    如果只需要最新版本填写:latest,MUMBLE_SUPERUSER_PASSWORD:Superuser账户密码

  3. 启动docker
    1
    sudo docker compose up -d


    连接 Docker Hub 时超时,需要更换Docker源。点击查看更换方法

  4. 编辑mumble参数,mumble-server.ini配置模板。
    停止docker compose
    1
    sudo docker compose stop
    进入data并创建mumble配置文件
    1
    2
    cd data #docker-compose文件夹中
    sudo nano mumble-server.ini
    1
    2
    3
    4
    5
    6
    welcometext="欢迎来到我的服务器" #欢迎语
    port=64738 #连接端口号
    serverpassword=password # 连接服务器密码
    users=100 #连接服务器最高人数
    registerName=xx #默认频道名称
    bandwidth=72000 #带宽,影响音频质量和服务器资源消耗默认72000,可设置更高如96000/128000
    重启docker compose
    1
    sudo docker compose up -d
  5. 更新与删除
    1
    2
    3
    4
    5
    6
    7
    # 更新
    docker-compose pull #拉取最新镜像
    docker-compose up -d #重新部署容器
    # 删除
    docker-compose down #基础删除(保留数据卷,仅删除容器和网络)
    docker-compose down -v #彻底删除(包括数据卷,数据会丢失)
    docker-compose down --rmi all #额外清理(删除未使用的镜像)

开放外部端口

  1. 本地服务器:在路由器中找到端口转发添加端口
  2. 云服务器:进入服务器实例详情页面->配置安全组规则->配置规则->手动添加->选择协议类型,目标填写端口号
权限管理(ACL)

官方文档

ACL

创建分组

右键默认频道(ROOT)->编辑->分组,输入名称点击添加。

添加成员

分组中选中新增的分组,在成员栏中,需要手动输入管理员名称,点击添加

添加成员必须是注册的用户才能添加。

赋予分组权限

右键默认频道(ROOT)->编辑->ACL(访问控制列表)
@all 所有人
@auth 已注册用户
@in 在这个频道里
@out 在此频道之外
@~sub 子频道
点击添加,在分组中找到我们刚添加的分组,在右侧给予相关权限

这里需要注意权限的上下顺序依次覆盖的。如果@all放在最下面,那么我们设置的所有权限都没有任何作用

区分权限范围

  1. 全局权限:在Root频道激活的ACL是可以被任何频道继承的。如果每个频道都勾选继承ACL即可实现全局
    创建第二个频道,并打开ACL(访问控制列表),这时候默认继承ACL是不勾选的。此时就没有任何管理权限。
  2. 频道内权限:非ROOt频道创建的权限仅适用于当前频道,如使用相同分组,那么分组中的成员也仅适用于当前频道。
    名称适用范围详细说明
    编辑ACL频道频道控制的写权限,包含除说话外的所有其他权限
    通过频道允许穿越该频道访问子频道,没有此权限无法访问子频道(是Enter权限的前提)
    进入频道允许加入并停留在该频道
    说话频道允许在频道中说话,没有此权限会被服务器静音
    禁言/禁听频道允许静音和禁听其他用户
    移动用户频道允许将用户从当前频道移动到其他频道,需要源和目标频道都有此权限
    创建频道频道允许创建新的子频道
    链接频道频道允许链接频道,需要源和目标频道都有此权限
    文字消息频道允许在频道中发送文本消息
    密语频道允许从外部向该频道密语,类似于说话权限,但适用于密语数据包
    创建临时频道频道允许创建临时子频道
    踢出用户服务器允许踢出服务器用户,仅在Root频道有效
    封禁用户服务器允许封禁服务器用户,仅在Root频道有效
    注册用户服务器允许注册和注销用户,仅在Root频道有效
    注册自己服务器允许用户注册自己,仅在Root频道有效
    重置用户信息服务器允许重置用户的评论或头像,仅在Root频道有效
    监听频道允许收听该频道的声音,没有此权限无法听到频道中的语音

ACL核心逻辑

ACL管理(参考)

  • 全局管理员 :管理整个服务器
  • 频道_管理员 :仅管理特定频道及子频道
  • 频道_成员 :只能访问特定频道
  • 专属频道_管理员 :仅管理该专属频道
  • 专属频道_成员 : 仅访问该专属频道
  • 游客 :只能访问公共频道

Mumble ACL权限生效遵循3条关键规则,直接决定配置是否生效:

  1. 身份多标签匹配:一个用户会同时属于多个组(如已注册用户=auth + 所有人=all;管理员=管理员组 + auth + all),系统会检查所有匹配该用户的规则;
  2. 拒绝权限优先(Deny > Allow):只要有任意一条匹配规则拒绝某权限,即使其他规则允许,最终权限仍为“拒绝”;
  3. 默认拒绝:所有匹配规则都未明确允许某权限时,默认权限为“拒绝”;
  4. 规则顺序仅作用于:同一用户匹配的多条规则均为“允许”或均为“拒绝”时,按从上到下取第一条生效
### 一、创建用户组

1. 创建全局组

  1. 右键Root频道 → 编辑 → 分组
  2. 创建以下全局组:
    • 全局管理员(管理整个服务器)
    • 频道_管理员(仅管理非公共频道)
    • 频道_成员(仅访问非公共频道)

二、详细权限设置

1. 默认权限设置(Root频道)

  1. 右键Root频道 → 编辑 → ACL
  2. 点击添加按钮添加新规则
  3. 设置规则:
    • all(所有人)
    • 权限:仅勾选
      • 通过
      • 进入
      • 文字消息
      • 其他权限全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  4. 再次点击添加按钮
  5. 设置规则:
    • auth(已注册用户)
      • 通过
      • 进入
      • 监听
      • 说话
      • 文字消息
      • 其他权限全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  6. 再次点击添加按钮
  7. 设置规则:
    • 全局管理员
    • 权限:勾选需要授予的权限和拒绝的权限
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  8. 点击应用保存设置
  9. 确保ACL规则按以下顺序排列(从上到下优先级递减):
    • all
    • all
    • auth
    • 全局管理员

2. 非公共频道设置

  1. 右键非公共频道 → 编辑 → ACL
  2. 点击添加按钮添加新规则
  3. 设置规则:
    • all(所有人)
    • 权限:全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  4. 再次点击添加按钮
  5. 设置规则:
    • 频道_成员
    • 权限:勾选
      • 通过
      • 进入
      • 说话
      • 密语
      • 文字消息
      • 监听
      • 其他权限全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”,如果是仅限专属频道的单个频道,勾选”作用于当前频道”即可。
  6. 再次点击添加按钮
  7. 设置规则:
    • 点击添加按钮
    • 频道_管理员
    • 权限:勾选需要授予的权限和拒绝的权限
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  8. 确保ACL规则按以下顺序排列(从上到下优先级递减):
    • all
    • all
    • auth
    • 全局管理员
    • all
    • 频道_成员
    • 频道_管理员

3. 专属频道(不受全局管理员管理)

  1. 右键专属频道设置 → 编辑 → ACL → 取消勾选”继承父频道的ACL”

  2. 点击添加按钮添加新规则

    • all(所有人)
    • 权限:全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  3. 再次点击添加按钮

  4. 设置规则:

    • :输入频道_成员
    • 权限:勾选
      • 通过
      • 进入
      • 说话
      • 密语
      • 文字消息
      • 监听
      • 其他权限全部拒绝
    • 应用到:勾选”作用于子频道”和”作用于当前频道”,如果是仅限专属频道的单个频道,勾选”作用于当前频道”即可。
  5. 再次点击添加按钮

  6. 设置规则:

    • :输入频道_管理员
    • 权限:勾选需要授予的权限和拒绝的权限
    • 应用到:勾选”作用于子频道”和”作用于当前频道”
  7. 确保ACL规则按以下顺序排列:

    • all
    • all
    • 频道_成员
    • 频道_管理员

三、添加组成员

  1. 添加全局管理员

    • 右键Root频道 → 编辑 → 分组
    • 选择全局管理员
    • 在成员栏输入用户名,点击”添加”
  2. 添加非全局权限

    • 右键频道 → 编辑 → 分组
    • 选择对应管理员或成员组,添加相应用户

视频

Mumble备份文件

Windows

数据库:%APPDATA%\Mumble\mumble.sqlite
设置:在Windows注册表的HKEY_CURRENT_USER\Software\Mumble\Mumble

Mac OS X

数据库:$HOME/Library/Application Support/Mumble/Mumble/.mumble.sqlite
设置:$HOME/Library/Preferences/net.sourceforge.mumble.Mumble.plist

Linux

数据库: $HOME/.local/share/Mumble/Mumble/mumble.sqlite
设置: $HOME/.config/Mumble/Mumble.conf

故障排除

常见问题及解决方法

1. 无法连接到服务器

  • 检查服务器地址和端口是否正确
  • 确认服务器已启动且网络正常
  • 检查防火墙设置,确保64738端口已开放
  • 尝试暂时关闭防火墙和杀毒软件

2. 语音质量差或有延迟

  • 检查网络连接,确保带宽充足
  • 调整客户端压缩质量,降低网络负载
  • 服务器端增加带宽设置(bandwidth参数)
  • 关闭其他占用网络资源的应用程序

3. 麦克风无法正常工作

  • 确认麦克风设备已正确连接并设置为默认设备
  • 检查Mumble中的麦克风设置,确保选择了正确的设备
  • 调整语音激活阈值或切换到按键发言模式
  • 检查操作系统的麦克风权限设置

4. 听不到其他用户的声音

  • 确认耳机设备已正确连接并设置为默认设备
  • 检查Mumble中的音频输出设置,确保选择了正确的设备
  • 确认未被静音或音量过低
  • 检查服务器端的权限设置,确保有收听权限

5. 回声问题

  • 启用Mumble中的回声消除功能
  • 调整麦克风和扬声器的位置,避免近距离放置
  • 使用耳机替代扬声器
  • 降低扬声器音量

6. 服务器启动失败

  • 检查配置文件语法是否正确
  • 确认端口未被其他程序占用
  • 查看服务器日志文件获取详细错误信息
  • 尝试使用默认配置文件重新启动