ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

30分钟搭好自建线上会议系统:BigBlueButton与bbb-install从零到一部署攻略

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 是否就是你的服务器。

✅ 网络端口:外部防火墙放行下列流量

端口协议用途
22TCPSSH 登录
80 / 443TCPHTTP 跳转与 HTTPS 会议入口
16384 - 32768UDPFreeSWITCH 与 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.cominfo@example.com换成你自己的值,然后就可以去倒杯咖啡了。脚本会顺手装好一个 cron 任务,证书到期前自动续期,这个不用你操心。

安装完成后验证两件事:

  1. 跑一遍健康检查bbb-conf --check,输出没有红色报错即为通过。
  2. 浏览器打开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_KEYMY_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 天要手动续一次,续期命令在脚本输出的日志里有提示。

下一步行动清单

到这里,你已经拥有了一套能开会、能录制、能对接教学平台的自建会议系统。接下来建议按这个顺序推进:

  1. 创建管理员:登录 Greenlight,按安装日志里的指引创建管理员账号,完成后台初始化设置。
  2. 限制注册策略:把默认的"开放注册"改为"邀请加入"或"审批制",防止陌生人占用你的服务器资源。
  3. 改品牌与策略:在后台替换 Logo、调整默认主题和录制权限,让平台看起来像自家的。
  4. 压测一下:约几个人开一场会,同时录屏,确认音视频、共享屏幕、录制回放都正常后再正式投入使用。

延伸阅读资源:

  • 脚本完整参数清单:运行bash bbb-install.sh -h可查看全部选项及示例。
  • 项目 README 与源码:README.mdbbb-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),仅供参考

返回列表