30分钟搭好自建线上会议系统:BigBlueButton与bbb-install从零到一部署攻略
30分钟搭好自建线上会议系统:BigBlueButton与bbb-install从零到一部署攻略
【免费下载链接】bbb-installBASH script to install BigBlueButton in 30 minutes.项目地址: https://gitcode.com/gh_mirrors/bb/bbb-install
BigBlueButton(简称BBB)是一套开源的网络会议系统,而bbb-install正是它官方出品的BASH安装脚本,能把原本需要折腾一整天的部署流程压缩到30分钟以内。这篇文章带你从选服务器开始,到跑通第一条安装命令,再到装上房间管理、对接教学平台、排查常见翻车点,一步不落走完全程。
为什么你需要它:一次网课翻车的思考
假设你在给一家培训机构的教务系统做运维。学期开始前,机构采购的商用会议软件突然按人头涨价,还限制单场时长;换一家免费方案,又担心用户数据存在境外服务器上,也满足不了"把会议入口嵌进自家网校"的需求。
这时候自建就成了顺理成章的选择。BigBlueButton是专门为在线教育设计的开源会议系统,支持白板、分组讨论、投票、录制回放,而且通过LTI协议能无缝对接Moodle等主流学习平台——数据在自己服务器上,扩展全由你做主。
但自建最大的门槛是安装。BBB依赖几十个组件:Nginx、FreeSWITCH、WebRTC信令、Redis、MongoDB……手动配一遍,光依赖冲突就够喝一壶。bbb-install脚本的价值就在这里:它把这些步骤全部自动化,你只需要提供域名、邮箱和几个开关参数,剩下交给它跑完。
本文目标:让你用一台干净的Ubuntu服务器,跟着命令走一遍,成功打开属于你自己的会议系统。
一分钟判断值不值得读
| 维度 | 结论 |
|---|---|
| 部署耗时 | 视网络速度,通常 15~30 分钟 |
| 硬件要求 | 最低 4核 / 4GB,推荐 8GB 内存以上 |
| 操作难度 | 中等。会 SSH、能看懂命令参数即可 |
| 适用人群 | 想自建在线课堂、远程培训、内部会议的运维或技术负责人 |
| 主要成本 | 一台云服务器 + 一个域名,软件本身完全免费 |
如果你只是临时测试,可以用-j参数跳过部分生产环境要求,脚本照样能跑,只是不建议线上直接用。
动手前检查单
安装脚本很"聪明",但它不会帮你完成下面这些前置工作。缺任何一项,脚本要么中途报错,要么装完了客户端打不开。
✅ 操作系统:Ubuntu 20.04 或 22.04(64位)
- 为什么必须满足:脚本按这两个系统的软件包机制做依赖安装,换系统版本会直接导致依赖解析失败。2.7.x 对应 Ubuntu 20.04,3.0.x 对应 Ubuntu 22.04。
✅ 硬件:4核CPU / 4GB内存起步,磁盘建议 40GB 以上
- 为什么必须满足:一次典型会议要同时跑媒体转发和网页客户端,内存太小会频繁卡顿;录制文件默认存在
/var/bigbluebutton,磁盘太小很快吃满。
✅ 域名:一个已解析到服务器公网IP的完整域名(FQDN)
- 为什么必须满足:Let's Encrypt 签发的 HTTPS 证书必须绑定真实域名;而浏览器只有在 HTTPS 下才允许网页调用麦克风、摄像头和屏幕共享。没有
-s和-e参数,客户端根本不会加载。 - 验证方式:
dig bbb.example.com @8.8.8.8,看返回的 IP 是否就是你的服务器。
✅ 网络端口:外部防火墙放行下列流量
| 端口 | 协议 | 用途 |
|---|---|---|
| 22 | TCP | SSH 登录 |
| 80 / 443 | TCP | HTTP 跳转与 HTTPS 会议入口 |
| 16384 - 32768 | UDP | FreeSWITCH 与 HTML5 客户端的 RTP 媒体流 |
- 为什么必须满足:这是脚本装完也管不到的部分。如果你用云厂商的"安全组",比如 AWS 的 Security Group、Azure 的入站规则,必须手动加上。否则域名解析正常、服务正常,用户却死活连不进来。
- 补充说明:脚本里的
-w参数装的是服务器本机的 UFW 防火墙,和云平台外部防火墙是两回事。建议两处都配置,双保险。
最小可用方案:一条命令先让它跑起来
先别想着装这装那,我们的原则是"先成功运行,再谈优化"。登录服务器后,以 root 身份执行下面这条命令:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com这条命令做了三件事:下载官方脚本 → 交给 Bash 解释执行 → 按参数完成安装。参数含义:
| 参数 | 作用 | 备注 |
|---|---|---|
-w | 安装 UFW 防火墙,只放行 22/80/443 和 UDP 16384-32768 | 生产环境强烈建议加 |
-v jammy-300 | 安装 BigBlueButton 3.0.x(Ubuntu 22.04) | 换focal-270则是 2.7.x |
-s bbb.example.com | 把主机名配置为你的域名 | 换成你自己的 FQDN |
-e info@example.com | 提供给 Let's Encrypt 的邮箱,用于签发证书 | 必须是真实可用的邮箱 |
把bbb.example.com和info@example.com换成你自己的值,然后就可以去倒杯咖啡了。脚本会顺手装好一个 cron 任务,证书到期前自动续期,这个不用你操心。
安装完成后验证两件事:
- 跑一遍健康检查:
bbb-conf --check,输出没有红色报错即为通过。 - 浏览器打开
https://你的域名,能进入会议客户端页面就算成功。
注意:如果安装时没有带
-s和-e,即使脚本装完了,浏览器也会因为缺少 HTTPS 拒绝打开摄像头和麦克风,页面等于废了。这一步不能省。
进阶与定制:按需加装功能模块
基础版能开会了,但离"好用"还差几步。下面每个模块都是独立开关,按需开启即可,互不冲突。
给用户一个友好的房间入口:Greenlight(-g)
裸装的 BigBlueButton 只有 API 接口,没有登录界面,普通人没法直接用。Greenlight 是官方出品的"房间管理器",提供注册登录、个人房间、录制管理、房间加密等能力,装完用户就能自助开会。
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g安装成功后访问https://你的域名,就能看到注册和登录页面,注册账号即可创建房间。
装完后别忘了创建管理员账户:进入后台(Administrator 菜单)可管理全部用户、录制和房间,还能调整注册方式、上传你自己的 Logo 和主题。
对接学习管理系统:LTI 框架(-t)
如果你们的网校基于 Moodle 等 LMS 平台,希望学生点一下课程里的按钮就进会议,LTI 框架就是干这个的。它是 BigBlueButton 与 LTI 认证平台之间的桥梁,按KEY:SECRET一对凭据安装:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -t MY_KEY:MY_SECRET安装后在https://你的域名/lti配置对接。生产环境务必把MY_KEY和MY_SECRET换成足够复杂的随机串,这对凭据是平台的钥匙,泄露等于把会议室大门敞开。想换密钥时,用同样的KEY加新SECRET重跑一次即可覆盖。
内网环境部署:手动 DNS 验证(-x)
Let's Encrypt 默认要能从公网访问你的服务器来验证域名归属。如果你的服务跑在私有网络里,公网访问不到,就在命令末尾加-x,改为手动验证:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -x脚本会生成一串挑战值,你需要在 DNS 里为_acme-challenge.bbb.example.com添加一条 TXT 记录,再回去按回车继续。代价是:证书每 90 天过期,每次都要手动重复一遍这个流程。
网络受限用户怎么办:独立 TURN 中继(-c)
有些用户的网络把 UDP 封得死死的(比如某些公司内网),WebRTC 直连不通。解决方案是单独开一台低配服务器跑 coturn,用 443 端口 TCP 帮用户中转媒体流。在 TURN 服务器上执行(不带-v):
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -c turn.example.com:1234abcd -e info@example.com然后在 BBB 服务器上追加-c turn.example.com:1234abcd重跑安装命令,把 TURN 服务器地址告诉 BBB。一台 TURN 服务器可以同时服务多台 BBB 服务器。
录制文件挂到数据盘(-m)
会议多起来后,录制文件会非常占空间。-m参数能把/var/bigbluebutton软链到独立数据盘:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -m /mnt/bbbdata全家桶 + 升级
把上面需要的模块拼到一条命令里,一次装完。下面这条会装上 Greenlight、Keycloak(统一身份认证)和 LTI 框架:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g -k -t MY_KEY:MY_SECRET之后想升级系统,原样重跑这条命令即可——脚本对已装的组件走升级路径,-k参数只有在 Keycloak 出问题时才需要保留,平时用-g就会连带更新它。
翻车现场:五个高频问题排查
问题难免,关键是会看症状、找原因。下面按"症状 → 可能原因 → 解决思路"拆解五个最常见的坑。
1. 页面打不开,或打不开但白屏
- 症状:浏览器访问域名无响应,或者能打开但会议客户端一直加载不出来。
- 可能原因:域名没解析到服务器;云安全组没放行 80/443;安装时漏了
-s参数导致没有 HTTPS 证书。 - 解决思路:先
dig 你的域名核对解析结果;再检查安全组规则是否包含 80/443;最后确认安装命令里带了-s和-e,缺证书的话用bbb-conf --check查看证书状态。
2. 能进会议室,但对方听不到我的声音
- 症状:页面正常,进入后麦克风选项灰色或点击没反应,媒体建立不起来。
- 可能原因:UDP 16384-32768 端口被外部防火墙拦了,WebRTC 的媒体流根本到不了服务器。
- 解决思路:检查云平台安全组和服务器 UFW 规则,确认 UDP 端口段已放行;再用另一台机器测
nc -u 服务器IP 16384看 UDP 是否可达。客户端不支持 HTTP 直连,务必确认访问的是 HTTPS 地址。
3. 安装时卡在 Let's Encrypt 证书申请
- 症状:脚本输出报"验证失败"或超时,反复重试都过不去。
- 可能原因:域名 A 记录没有指向当前服务器公网 IP,或者 80 端口没通到服务器上。
- 解决思路:回到 DNS 控制台核对 A 记录,改完等几分钟再用
dig验证;确认外部防火墙放行了 80 端口。内网环境则改用上文提到的-x手动 DNS 验证方案。
4. 升级时报"不支持从当前版本升级"
- 症状:重跑脚本想升级,结果直接拒绝执行。
- 可能原因:BBB 升级要求操作系统版本也跟着换(比如 2.7 在 Ubuntu 20.04、3.0 在 Ubuntu 22.04),或者旧版本太老,官方不再支持原地升级。
- 解决思路:按官方提示,在新系统上开一台新服务器装最新版,把配置和录制数据迁移过去,而不是硬着头皮原地升级。
5. 内网安装时 DNS 挑战验证过不去
- 症状:用了
-x也失败,脚本提示 TXT 记录找不到。 - 可能原因:TXT 记录的域名拼错,或者 DNS 服务商没有把记录及时传播出去。
- 解决思路:确认记录名是
_acme-challenge.你的域名,值必须完整复制(连中间的横杠);用dig TXT _acme-challenge.你的域名确认记录可见后再按回车。记住,内网模式下证书每 90 天要手动续一次,续期命令在脚本输出的日志里有提示。
下一步行动清单
到这里,你已经拥有了一套能开会、能录制、能对接教学平台的自建会议系统。接下来建议按这个顺序推进:
- 创建管理员:登录 Greenlight,按安装日志里的指引创建管理员账号,完成后台初始化设置。
- 限制注册策略:把默认的"开放注册"改为"邀请加入"或"审批制",防止陌生人占用你的服务器资源。
- 改品牌与策略:在后台替换 Logo、调整默认主题和录制权限,让平台看起来像自家的。
- 压测一下:约几个人开一场会,同时录屏,确认音视频、共享屏幕、录制回放都正常后再正式投入使用。
延伸阅读资源:
- 脚本完整参数清单:运行
bash bbb-install.sh -h可查看全部选项及示例。 - 项目 README 与源码:
README.md和bbb-install.sh就在项目根目录,想看脚本每一步做了什么,直接读源码。 - 想自己拉源码研究,可以 clone 仓库:
https://gitcode.com/gh_mirrors/bb/bbb-install。 - 官方文档站:docs.bigbluebutton.org 提供防火墙配置、系统管理、自定义主题等更深度的文档。
自建会议系统的路,走到这里只是起点。脚本能帮你省掉 95% 的安装体力活,剩下 5% 的调优——比如容量规划、网络优化、品牌定制——正是你作为运维真正产生价值的地方。
【免费下载链接】bbb-installBASH script to install BigBlueButton in 30 minutes.项目地址: https://gitcode.com/gh_mirrors/bb/bbb-install
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
