本教程适用于以下操作系统版本

  • Debian 11(Bullseye)
  • Debian 10(Buster)

本页内容

  • 先决条件
  • 安装软件包依赖
  • 添加 Jitsi 和 Prosody 软件源
  • 配置 UFW 防火墙与 Systemd 资源限制
  • 使用 Certbot 生成 SSL Let's Encrypt 证书
  • 在 Debian 11 上安装 Jitsi Video Conference
  • 在 Jitsi Video Conference 上启用身份验证
  • 使用 Jitsi 创建第一个会议
  • 结论

Jitsi 是一套用于构建安全视频会议平台的免费开源解决方案。Jitsi 基于 coturn、Prosody、Jitsi Video Bridge、Jitsi Meet 等开源软件构建。Jitsi 的主要组件是 Jitsi Video Bridge(JVB)和 Jitsi Meet,它们允许用户通过互联网发起会议。

Jitsi 兼容用于 Web 通信的 WebRTC 开放标准。Jitsi 兼容 WebRTC 开放标准,并提供更优的质量、低延迟,以及具备带宽估计和可伸缩视频编码的高级视频路由。

在客户端方面,Jitsi 提供了面向多种系统的应用程序,包括面向电脑用户的 Jitsi Desktop,以及 Android 和 iOS 客户端。

先决条件

本文将逐步介绍在最新的 Debian 11(Bullseye)上安装与配置 Jitsi Video Conference 的过程。完成本指南后,你将能够使用 Jitsi Video Conference 创建会议。

在开始之前,请确保你已满足以下要求:

  • 操作系统:Debian 11 Bullseye
  • Root 权限

现在让我们开始吧。

安装软件包依赖

第一步是安装一些软件包依赖,例如 gnupg2、nginx-full、sudo、apt-transport-https、curl 以及 Java OpenJDK。

1. 使用以下命令更新你的 Debian 软件源并安装上述软件包。

sudo apt install apt-transport-https gnupg2 nginx-full sudo curl -y

2. Jitsi 需要 Java OpenJDK 1.8 或 1.11 版本;Debian 默认软件源提供 Java OpenJDK 1.11。

现在执行以下命令来安装 Java OpenJDK 软件包。

sudo apt install default-jdk -y

安装完成后,使用以下命令验证 Java OpenJDK 版本。

java -version

你将看到类似以下的输出。

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)

所有软件包安装完成后,继续配置 Jitsi 和 Prosody 软件源。

添加 Jitsi 和 Prosody 软件源

Jitsi 包含 Jitsi Videobridge、Jicofo、Jigasi、Prosody(外部软件)等核心组件。

在安装 Jitsi 之前,你必须将 Prosody 和 Jitsi 软件源添加到系统中。为此,请运行以下命令。

1. 使用以下命令添加 Prosody 软件源和 GPG 密钥。

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

2. 使用以下命令添加 Jitsi 软件源和 GPG 密钥。

curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

3. 接下来,使用以下命令更新并刷新你的 Debian 软件源。

sudo apt update

配置 UFW 防火墙与 Systemd 资源限制

出于安全考虑,建议配合 UFW 防火墙运行 Jitsi。此外,为了让 Jitsi 获得更好的性能,你需要在 Debian 系统上提高相关限制(最大打开文件数、最大进程数)。

1. 运行以下命令安装 UFW 防火墙软件包。

sudo apt install ufw -y

2. UFW 安装完成后,执行以下 'ufw' 命令为 Jitsi 开放一些端口。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp

现在运行以下命令启动并设置 UFW 服务开机自启。

sudo ufw enable

输入 ' y ' 确认并按 ' Enter ' 启用,你就已在 Debian 系统上激活了 UFW 防火墙。

Jitsi 的详细端口如下:

  • 端口 80/tcp:HTTP 端口,将用于生成 SSL Let's Encrypt。端口 443/tcp:客户端请求将通过 HTTPS 协议进行安全保护。
  • 端口 10000/udp:通用的视频和音频通信端口。
  • 端口 22/tcp:用于管理 Jitsi 服务器的默认 SSH 端口。
  • 端口 3478/udp:用于查询 STUN 服务器。
  • 端口 5349/tcp:通过 TCP 进行音视频通信的备用端口(如果 UDP 端口被封锁,将使用此端口)。

3. 要设置最大打开文件数、最大进程数和最大任务数的限制,你需要使用 nano 编辑器修改配置文件 ' /etc/systemd/system.conf'。

sudo nano /etc/systemd/system.conf

对于 Java 应用程序,建议将最大限制设置为 '65000'。复制并粘贴以下配置。

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

保存配置并退出。

4. 接下来,重启服务器并重新登录,然后使用以下命令验证系统限制配置。

systemctl show --property DefaultLimitNPROC
systemctl show --property DefaultLimitNOFILE
systemctl show --property DefaultTasksMax

请确保 ' DefaultLimitNPROC '(最大进程数)、' DefaultLimitNOFILE '(最大打开文件数)以及 ' DefaultTasksMax '(最大线程限制)的值均为 ' 65000 '。

使用 Certbot 生成 SSL Let's Encrypt 证书

在此步骤中,你将安装 certbot 工具并生成 SSL Let's Encrypt 证书,以保护 Jitsi 安装。

1. 运行以下 apt 命令安装 certbot 工具。

sudo apt install certbot -y

2. certbot 安装完成后,停止 Nginx 服务,并使用以下 certbot 命令生成 SSL Let's Encrypt 证书。请务必修改电子邮件地址和域名。

sudo systemctl stop nginx
sudo certbot certonly --standalone --agree-tos --no-eff-email --email 
[email protected]
 -d example.io

如果所有流程都已完成,你将在目录 ' /etc/letsencrypt/live/jitsi.example.io/ ' 下看到你的 SSL 证书。公钥证书为 ' fullchain.pem ',私钥为 ' privkey.pem '。

在 Debian 11 上安装 Jitsi Video Conference

在此步骤中,你将在 Debian 服务器上安装并配置 Jitsi Video Conference。

1. 使用以下 apt 命令安装 Jitsi 软件包。

sudo apt install jitsi-meet

输入 ' y ' 确认安装并按 ' Enter ' 继续。

在安装过程中,系统会要求你进行如下一些配置。

对于域名,输入你的 Jitsi 安装域名并选择 ' Ok '。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

对于 SSL 证书配置,选择 'I want to use my own certificate' 并选择 ' Ok '。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

现在输入你的 SSL 私钥 ' privkey.pem ' 的完整路径并选择 ' Ok '。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

现在输入 SSL 公钥 ' fullchain.pem ' 的完整路径并选择 ' Ok '。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

现在你已完成 Jitsi Video Conference 的安装。

2. 接下来,使用以下命令验证所有 Jitsi 服务。

验证 coturn 服务,确保其已激活并处于 active(运行中)状态。

sudo systemctl status coturn

验证 jicofo 和 jitsi-videobridge 服务,确保两者均已激活并处于 active(运行中)状态。

sudo systemctl status jicofo
sudo systemctl status jitsi-videobridge2

验证 prosody 服务,确保其已激活并处于 active(运行中)状态。

sudo systemctl status prosody

最后,使用以下命令启动并验证 Nginx 服务。

sudo systemctl start nginx
sudo systemctl status nginx

如果服务已停止,你可以使用 systemctl 命令启动。

现在进入下一步,在 Jitsi Video Conference 上配置身份验证。

在 Jitsi Video Conference 上启用身份验证

在此步骤中,你将在 Jitsi Video Conference 上启用身份验证。采用这种方式后,只有具备正确身份凭证的主持人才能发起 Jitsi 会议。

1. 首先,你必须在 Prosody 服务上启用身份验证,并定义访客域名。

编辑你的 Jitsi 域名安装的 Prosody 配置。在本示例中,域名示例为 ' jitsi.example.io '。

sudo nano /etc/prosody/conf.d/jitsi.example.io.cfg.lua

将默认的身份验证方式 ' anonymous ' 修改为 ' internal_hashed ',如下所示。

VirtualHost "jitsi.example.io"
    -- enabled = false -- Remove this line to enable this host
    authentication = "internal_hashed"

添加一个新的面向访客的虚拟主机,名称为 ' guest.jitsi.example.io ',如下所示。

VirtualHost "guest.jitsi.example.io"
    authentication = "anonymous"
    c2s_require_encryption = false

保存配置并退出。

2. 接下来,你必须将访客/匿名域名添加到 Jitsi Meet 配置中。

使用 nano 编辑器编辑 Jitsi Meet 配置文件 ' jitsi.example.io-config.js '。

sudo nano /etc/jitsi/meet/jitsi.example.io-config.js

将匿名域名 ' guest.jitsi.example.io ' 添加到 ' hosts ' 部分,如下所示。

    hosts: {
        // XMPP domain.
        domain: 'jitsi.example.io',
        // When using authentication, domain for guest users.
        // anonymousdomain: 'guest.example.com',
        anonymousdomain: 'guest.jitsi.example.io',

保存配置并退出。

3. 在 jicofo 配置目录下创建一个新配置文件 ' sip-communicator.properties '。

sudo nano /etc/jitsi/jicofo/sip-communicator.properties

复制并粘贴以下配置。这将允许来自已认证域名 ' jitsi.example.io ' 的请求访问 jicofo。

org.jitsi.jicofo.auth.URL=XMPP:jitsi.example.io

保存配置并退出。

4. 使用以下命令重启所有 Jitsi 服务,以使新配置生效。

sudo systemctl restart prosody
sudo systemctl restart jicofo
sudo systemctl restart jitsi-videobridge2
sudo systemctl restart nginx

5. 最后,你必须使用以下 prosodyctl 命令为你的 Jitsi Video Conference 创建一个新主持人用户。请务必修改用户名、域名和密码。

sudo prosodyctl register johndoe jitsi.example.io SecretPasswd

现在你已成功在 Jitsi Video Conference 上启用身份验证,并可以开始使用 Jitsi 创建你的第一个会议了。

使用 Jitsi 创建第一个会议

1. 打开你的网页浏览器,并在地址栏中输入你的 Jitsi 安装域名。

https://jitsi.example.io/

2. 要创建第一个会议室,请输入你的会议室名称并点击 'Start meeting' 按钮。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

3. 你将看到 'Waiting for the host ...' 弹窗。点击 ' I am the host' 按钮开始会议。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

4. 现在,输入 Jitsi 主持人用户名和密码,然后点击 ' Login ' 按钮。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

5. 随后你将看到你的 Jitsi 会议室界面。

在 Debian 11 系统上安装部署 Jitsi 视频会议平台

现在你已经使用 Jitsi Video Conference 创建了第一个会议。

结论

恭喜!你已经学习了在 Debian 11(Bullseye)上安装 Jitsi Video Conference 的基础方法。此外,你还学习了如何配置 UFW 防火墙、设置系统限制,以及使用 certbot 工具生成 SSL Let's Encrypt 证书。

在本教程结束时,你已经学习了如何在 Jitsi 上启用身份验证,并使用 Jitsi Video Conference 发起第一个会议。