在Ubuntu 18.04上安装Jitsi Meet –自托管视频会议

本教程将向您展示如何在Ubuntu 18.04服务器上安装Jitsi Meet。 Jitsi Meet是一款免费的开源视频会议软件,可在Linux,macOS,Windows,iOS和Android上运行。 如果您不信任Zoom,则可以在自己的服务器上运行自己的视频会议平台。

Jitsi Meet的功能

  • 完全免费
  • 与他人共享您的计算机屏幕。
  • 演示者模式使您可以同时共享屏幕和摄像机,因此与会者可以在整个演示过程中看到演示者及其肢体语言。
  • 您可以在共享屏幕的同时共享系统音频。
  • 您可以将授权用户分配为主持人。 主持人可以一键静音每个参与者。
  • 使用DTLS-SRTP对网络上的通信进行加密。
  • 端到端加密(正在进行中)
  • 您可以为会议设置密码,以防止随机的陌生人进入。
  • 记录会议/会议并将其保存到Dropbox。
  • 流式传输到YouTube Live并将录音存储在YouTube上。
  • Android和iOS应用
  • 文字聊天
  • 分享文字文件
  • 电话拨入会议
  • 拨出至电话参与者
  • 您只需几行代码就可以将Jits Meet呼叫嵌入到任何网页中。

在Ubuntu 18.04上安装Jitsi Meet的要求

要运行Jitsi Meet,您需要一台至少具有1GB RAM的服务器。 您可以单击此引荐链接在Vultr上创建一个帐户,以获取$ 50的免费信用(仅限新用户)。 在Vultr拥有一个帐户后,在您的服务器上安装Ubuntu 18.04并按照以下说明进行操作。 当您有数十个用户时,请考虑升级服务器硬件。 服务器应靠近您的用户,否则在在线会议期间会发现延迟。

您还需要一个域名。 我在NameCheap上注册了我的域名,因为价格低廉,并且终身免费提供Whois隐私保护。

步骤1:从官方软件包存储库安装Jitsi Meet

默认的Ubuntu存储库中不包含Jitsi Meet。 我们可以从官方的Jitsi软件包存储库中安装它,该存储库还包含其他几个有用的软件包。 通过SSH登录到服务器,然后运行以下命令以添加官方Jitsi存储库。

echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list

导入Jitsi公钥,以便APT软件包管理器可以验证从此存储库下载的软件包的完整性。

wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

由于Jitsi存储库需要HTTPS连接,因此我们需要安装 apt-transport-https 包,以使APT建立到Jitsi存储库的HTTPS连接。

sudo apt install apt-transport-https

接下来,更新本地软件包索引并在Ubuntu上安装Jitsi Meet。

sudo apt update 
sudo apt install jitsi-meet

在安装过程中,您需要输入Jitsi实例的主机名。 与会者加入视频会议时,该主机名将显示在Web浏览器地址栏中。 您可以使用描述性主机名,例如 meet.example.com

在下一个屏幕中,您可以选择生成新的自签名TLS证书,以便稍后可以获取并安装受信任的Let’s Encryption证书。

jitsi-meet-web-config-ssl-certificate

安装过程将配置一些Linux内核参数,并将其保存到 /etc/sysctl.d/20-jvb-udp-buffers.conf 文件。 安装完成后,Jitsi Meet将自动启动。 您可以通过以下方式查看其状态:

systemctl status jitsi-videobridge2

样本输出:

● jitsi-videobridge2.service - Jitsi Videobridge
   Loaded: loaded (/lib/systemd/system/jitsi-videobridge2.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-04-24 12:11:13 UTC; 3min 27s ago
 Main PID: 3665 (java)
    Tasks: 37 (limit: 65000)
   CGroup: /system.slice/jitsi-videobridge2.service
           └─3665 java -Xmx3072m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HO

提示:如果以上命令没有立即退出,则可以按Q键使其退出。

jitsi-meet 软件包还提取了其他软件包作为依赖项,例如

  • openjdk-8-jre-headless: Java运行时环境。 这是必需的,因为Jitsi Meet是用Java语言编写的。
  • 杰科夫:Jitsi Conference Focus(systemctl status jicofo
  • 韵律:轻量级Jabber / XMPP服务器(systemctl status prosody
  • turn:coturn TURN服务器

步骤2:在防火墙中打开端口

Jitsi Meet侦听几个UDP端口,如以下命令所示。 (如果您的Ubuntu服务器没有 netstat 命令,您可以运行 sudo apt install net-tools 命令来安装它。)

sudo netstat -lnptu | grep java

jitsi遇见监听端口

要允许与会者通过Web浏览器加入视频会议,您需要打开TCP端口80和443。并且要通过网络传输视频,请打开UDP端口10000和5000。如果您使用的是UFW防火墙,请运行以下命令命令打开这些端口。

sudo ufw allow 80,443/tcp

sudo ufw allow 10000,5000/udp

第3步:获取可信的我们加密TLS证书

转到您的DNS托管服务(通常是您的域名注册商)为您的Jitsi主机名(meet.example.com)创建DNS A记录。 然后运行以下脚本来获取受信任的“加密TLS”证书:

sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

输入您的电子邮件地址以接收重要的帐户通知。 然后它将下载 certbot-auto 并获得TLS证书。

jitsi遇见https letsencrypt

如果一切正常,您将看到以下消息,指示已成功获取并安装TLS证书。

jitsi遇见https letsencrypt

请注意,此脚本使用 http-01 挑战,这意味着您的Apache或Nginx Web服务器需要侦听公共IP地址的端口80。 如果您的服务器环境不支持 http-01 挑战,那么您不应该运行上面的脚本。 您需要使用其他挑战类型。 就我而言,我使用DNS质询。

sudo certbot --agree-tos -a dns-cloudflare -i nginx --redirect --hsts --staple-ocsp --email [email protected] -d meet.linuxbabe.com

哪里:

  • --agree-tos:同意服务条款。
  • -a dns-cloudflare:我使用cloudflare DNS插件进行身份验证,因为我使用Cloudflare DNS服务。
  • -i nginx:使用Nginx插件安装TLS证书。 如果使用Apache,则需要替换 nginxapache
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。

步骤4:启用HTTP2

HTTP2可以提高网页加载速度。 要在Nginx中启用HTTP2,请编辑虚拟主机配置文件。

sudo nano /etc/nginx/sites-enabled/meet.example.com.conf

找到以下两行。

listen 443 ssl;
listen [::]:443 ssl;

最后添加http2。

listen 443 ssl http2;
listen [::]:443 ssl http2;

保存并关闭文件。 然后重新加载Nginx以使更改生效。

sudo systemctl reload nginx

步骤5:开始一个新的在线会议

现在访问 https://meet.example.com 您将可以开始会议。 要传输音频,您需要允许网络浏览器使用您的麦克风。 要传输视频,您需要允许网络浏览器访问您的相机。

Jitsi Meet开始一个新的会议

为会议命名,然后单击“执行”按钮。 会议开始后,您可以选择为会议设置密码。

步骤6:设定使用者验证

默认情况下,任何人都可以进入您的Jitsi Meet实例,创建会议室并开始会议。 要设置用户身份验证,请编辑Prosody配置文件。

sudo nano /etc/prosody/conf.d/meet.example.com.cfg.lua

找到以下行。

authentication = "anonymous"

将其更改为以下内容,这将要求用户输入用户名和密码才能开始会议。

authentication = "internal_plain"

但是,我们不希望与会者在加入会议时输入用户名和密码,因此我们需要为访客创建匿名登录,方法是在此文件的末尾添加以下行。 请注意,您无需为以下内容创建DNS A记录 guest.meet.example.com

VirtualHost "guest.meet.example.com"
    authentication = "anonymous"
    c2s_require_encryption = false

jitsi符合韵律用户认证

保存并关闭文件。

接下来,编辑Jitsi Meet配置文件。

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

找到以下行,

// anonymousdomain: 'guest.example.com',

删除双斜杠并更改来宾域。 用您的真实Jitsi Meet主机名替换met.example.com。

anonymousdomain: 'guest.meet.example.com',

保存并关闭文件。

然后编辑Jicofo配置文件。

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

在此文件的末尾添加以下行。

org.jitsi.jicofo.auth.URL=XMPP:meet.example.com

保存并关闭文件。 重新启动systemd服务,以使更改生效。

sudo systemctl restart jitsi-videobridge2 prosody jicofo

要在Jisi Meet中创建用户帐户,请运行以下命令。 系统会提示您输入新用户的密码。

sudo prosodyctl register username meet.example.com

现在,如果您在Jitsi Meet中创建房间,则需要输入用户名和密码。

jitsi满足用户认证

可选:设置Jigasi进行电话拨入或拨出

Jitsi提供了一个电话界面,允许用户拨入会议或拨打拨出提醒电话。 安装 jigasi 包(用于SIP的Jitsi网关)。

sudo apt install jigasi

在安装过程中,您将需要输入您的SIP用户名和密码。 如果您没有,则可以在OnSIP.com上创建一个免费的SIP帐户。

jitsi Meet jigasi SIP网关

如果在步骤6中设置了用户身份验证,则需要编辑Jigasi配置文件。

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

找到以下几行。

# [email protected]_DOMAIN
# org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASS
# org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

取消注释它们,然后输入您在步骤6中创建的帐户和密码。

[email protected]
org.jitsi.jigasi.xmpp.acc.PASS=user1_password
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

保存并关闭文件。 重新启动 jigasi 系统服务。

sudo systemctl restart jigasi

可选:配置Coturn

如果在安装Jitsi Meet的过程中看到以下消息,则需要配置Coturn使其正常工作。

Warning! Could not resolve your external ip address! Error:^
Your turn server will not work till you edit your /etc/turnserver.conf config file.
You need to set your external ip address in external-ip and restart coturn service.

编辑Coturn配置文件。

sudo nano /etc/turnserver.conf

找到以下行。

external-ip=127.0.0.1

将127.0.0.1替换为服务器的公用IP地址。 保存并关闭文件。 然后重新启动Coturn。

sudo systemctl restart coturn

故障排除技巧

如果遇到错误,可以检查Nginx错误日志(/var/log/nginx/error.log)找出问题所在。 您还可以检查systemd服务的日志。

sudo journalctl -eu jitsi-videobridge2 
sudo journalctl -eu prosody 
sudo journalctl -eu jicofo

包起来

我希望本教程可以帮助您在Ubuntu 18.04上设置Jitsi Meet服务器。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取新教程。 保重🙂

Sidebar