[ad_1]
本教程将向您展示如何在 Ubuntu 20.04 服务器上安装 Jitsi Meet。 Jitsi Meet is afree 开源视频会议软件,适用于 Linux、macOS、Windows、iOS 和 Android。 如果您不信任 Zoom,您可以在您自己的服务器上运行您自己的视频会议平台。
Jitsi Meet的特点
- 完全免费
- 与他人共享您的计算机屏幕。
- 演示者模式允许您同时共享您的屏幕和相机,因此与会者可以在整个演示过程中看到演示者及其肢体语言。
- 您可以在共享屏幕的同时共享系统音频。
- 您可以将授权用户指定为主持人。 主持人可以一键将每个参与者静音。
- 网络上的通信使用 DTLS-SRTP 进行加密。
- 端到端加密(正在进行中)
- 您可以为您的会议设置密码,以防止随机陌生人进入。
- 录制会议/会议并将其保存到 Dropbox。
- 串流到 YouTube Live 并将录音存储在 YouTube 上。
- Android 和 iOS 应用
- 文字聊天
- 共享文本文档
- 电话拨入会议
- 拨出电话参与者
- 只需几行代码,您就可以将 Jits Meet 通话嵌入到任何网页中。
在 Ubuntu 20.04 上安装 Jitsi Meet 的要求
要运行 Jitsi Meet,您需要一台内存至少为 1GB 的服务器。 您可以单击此推荐链接在 Vultr 上创建一个帐户,以获得 50 美元的免费赠金(仅限新用户)。 在 Vultr 上拥有帐户后,在您的服务器上安装 Ubuntu 20.04 并按照以下说明进行操作。 当您有数十个用户时,请考虑升级您的服务器硬件。 服务器应该是 close 给您的用户,否则在线会议期间会出现延迟。
您还需要一个域名。 我在 NameCheap 注册了我的域名,因为价格低廉,而且他们提供终身免费的 whois 隐私保护。
第 1 步:从官方软件包存储库安装 Jitsi Meet
Jitsi Meet 不包含在默认的 Ubuntu 存储库中。 我们可以从官方 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 证书。
安装过程会配置一些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 Sat 2020-04-25 03:07:16 UTC; 8min ago Main PID: 3721 (java) Tasks: 35 (limit: 65000) Memory: 168.5M CGroup: /system.slice/jitsi-videobridge2.service └─3721 java -Xmx3072m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath>
提示:如果上述命令没有立即退出,您可以按Q键使其退出。
这 jitsi-meet
package 还拉取了其他包作为依赖,比如
- openjdk-8-jre-headless: Java运行时环境。 它是必需的,因为 Jitsi Meet 是用 Java 语言编写的。
- 吉科福: Jitsi 会议焦点 (
systemctl status jicofo
) - 韵律:轻量级 Jabber/XMPP 服务器(
systemctl status prosody
) - 共转: coturn TURN 服务器
第 2 步:在防火墙中打开端口
Jitsi Meet 侦听多个 UDP 端口,如使用以下命令所示。 (如果您的 Ubuntu 服务器没有 netstat
命令,你可以运行 sudo apt install net-tools
命令来安装它。)
sudo netstat -lnptu | grep java
要允许与会者从 Web 浏览器加入视频会议,您需要打开 TCP 端口 80 和 443。要通过网络传输视频,请打开 UDP 端口 10000 和 5000。如果您使用的是 UFW 防火墙,则运行以下命令命令打开这些端口。
sudo ufw allow 80,443/tcp sudo ufw allow 10000,5000/udp
第 3 步:获取可信的 Let’s Encrypt TLS 证书
转到您的 DNS 托管服务(通常是您的域注册商)为您的 Jitsi 主机名 (meet.example.com) 创建 DNS A 记录。 然后运行以下脚本以获取受信任的 Let’s Encrypt TLS 证书:
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Enter 您的电子邮件地址以接收重要的帐户通知。 然后它会下载 certbot-auto
并获得TLS证书。
如果一切正常,您将看到以下消息,表明已成功获取并安装 TLS 证书。
如果您使用的是干净的 Ubuntu 20.04 安装(不是从 18.04 或 19.10 升级的),则在获取 Let’s Encrypt 证书时可能会看到以下错误。
Package python-virtualenv is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'python-virtualenv' has no installation candidate
这是因为 Ubuntu 20.04 存储库没有 python-virtualenv
包裹。 我们可以从 Ubuntu 20.04 存储库安装 certbot 包并使用它来获取 TLS 证书,而不是使用上游的 certbot-auto 二进制文件来获取 TLS 证书。
sudo apt install certbot
接下来,我们需要更改实例 certbot-auto
到 certbot
在脚本中使用以下命令。
sudo sed -i 's/./certbot-auto/certbot/g' /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
再次运行该脚本,您应该能够成功从 Let’s Encrypt 获取 TLS 证书。
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
请注意,此脚本使用 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,你需要更换nginx
和apache
.--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;
Save 和 close 文件。 然后重新加载 Nginx 以使更改生效。
sudo systemctl reload nginx
第 5 步:开始新的在线会议
现在访问 https://meet.example.com
您将能够开始会议。 要传输音频,您需要允许网络浏览器使用您的麦克风。 要传输视频,您需要允许网络浏览器访问您的相机。
为您的会议命名,然后单击“开始”按钮。 会议开始后,您可以选择为会议设置密码。
步骤 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
Save 和 close 文件。
接下来,编辑 Jitsi Meet 配置文件。
sudo nano /etc/jitsi/meet/meet.example.com-config.js
找到以下行,
// anonymousdomain: 'guest.example.com',
删除双斜杠并更改来宾域。 将 meet.example.com 替换为您真正的 Jitsi Meet 主机名。
anonymousdomain: 'guest.meet.example.com',
Save 和 close 文件。
然后编辑 Jicofo 配置文件。
sudo nano /etc/jitsi/jicofo/sip-communicator.properties
在此文件的末尾添加以下行。
org.jitsi.jicofo.auth.URL=XMPP:meet.example.com
Save 和 close 文件。 重新启动 systemd 服务以使更改生效。
sudo systemctl restart jitsi-videobridge2 prosody jicofo
要在 Jisi Meet 中创建用户帐户,请运行以下命令。 您将被提升为新用户输入密码。
sudo prosodyctl register username meet.example.com
现在,如果您在 Jitsi Meet 中创建房间,则需要输入用户名和密码。
可选:为电话拨入或拨出设置 Jigasi
Jitsi 提供了一个电话界面,允许用户拨入会议或拨打拨出提醒电话。 安装 jigasi
包(用于 SIP 的 Jitsi 网关)。
sudo apt install jigasi
在安装过程中,您需要输入您的 SIP 用户名和密码。 如果您没有,您可以在 OnSIP.com 上创建一个免费的 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 中创建的帐户和密码。
org.jitsi.jigasi.xmpp.acc.USER_ID=[email protected] org.jitsi.jigasi.xmpp.acc.PASS=user1_password org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false
Save 和 close 文件。 重新启动 jigasi
系统服务。
sudo systemctl status 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 地址。 Save 和 close 文件。 然后重新启动 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 20.04 上设置 Jitsi Meet 服务器。 与往常一样,如果您发现这篇文章有用,请订阅我们的免费时事通讯以获取新教程。 保重?
[ad_2]