30分钟搭好自建线上会议系统:BigBlueButton与bbb-install从零到一部署攻略
30分钟搭好自建线上会议系统BigBlueButton与bbb-install从零到一部署攻略【免费下载链接】bbb-installBASH script to install BigBlueButton in 30 minutes.项目地址: https://gitcode.com/gh_mirrors/bb/bbb-installBigBlueButton简称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.0464位为什么必须满足脚本按这两个系统的软件包机制做依赖安装换系统版本会直接导致依赖解析失败。2.7.x 对应 Ubuntu 20.043.0.x 对应 Ubuntu 22.04。✅ 硬件4核CPU / 4GB内存起步磁盘建议 40GB 以上为什么必须满足一次典型会议要同时跑媒体转发和网页客户端内存太小会频繁卡顿录制文件默认存在/var/bigbluebutton磁盘太小很快吃满。✅ 域名一个已解析到服务器公网IP的完整域名FQDN为什么必须满足Lets 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 infoexample.com这条命令做了三件事下载官方脚本 → 交给 Bash 解释执行 → 按参数完成安装。参数含义参数作用备注-w安装 UFW 防火墙只放行 22/80/443 和 UDP 16384-32768生产环境强烈建议加-v jammy-300安装 BigBlueButton 3.0.xUbuntu 22.04换focal-270则是 2.7.x-s bbb.example.com把主机名配置为你的域名换成你自己的 FQDN-e infoexample.com提供给 Lets Encrypt 的邮箱用于签发证书必须是真实可用的邮箱把bbb.example.com和infoexample.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 infoexample.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 infoexample.com -w -t MY_KEY:MY_SECRET安装后在https://你的域名/lti配置对接。生产环境务必把MY_KEY和MY_SECRET换成足够复杂的随机串这对凭据是平台的钥匙泄露等于把会议室大门敞开。想换密钥时用同样的KEY加新SECRET重跑一次即可覆盖。内网环境部署手动 DNS 验证-xLets 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 infoexample.com -w -x脚本会生成一串挑战值你需要在 DNS 里为_acme-challenge.bbb.example.com添加一条 TXT 记录再回去按回车继续。代价是证书每 90 天过期每次都要手动重复一遍这个流程。网络受限用户怎么办独立 TURN 中继-c有些用户的网络把 UDP 封得死死的比如某些公司内网WebRTC 直连不通。解决方案是单独开一台低配服务器跑 coturn用 443 端口 TCP 帮用户中转媒体流。在 TURN 服务器上执行不带-vwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -c turn.example.com:1234abcd -e infoexample.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 infoexample.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 infoexample.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. 安装时卡在 Lets 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),仅供参考