自托管指南 - Debian/Ubuntu 服务器
按照以下步骤在基于 Debian 的 GNU/Linux 系统上快速安装 Jitsi-Meet。开箱即用支持以下发行版:
- Ubuntu 20.04 (Bionic Beaver) 或更新版本
注意:许多安装步骤需要root
或sudo
访问。
所需的包和存储库更新
您将需要以下软件包:
gnupg2
nginx-full
sudo
# 仅当您使用 sudo 时才需要curl
# 或者wget
到下面的“添加 Jitsi 包存储库”
必须使用 OpenJDK 8 或 OpenJDK 11。
确保您的系统是最新的并且安装了所需的软件包:
# Run as root or with sudo
# Retrieve the latest package versions across all repositories
apt update
# Ensure support for apt repositories served via HTTPS
apt install apt-transport-https
在 Ubuntu 系统上,Jitsi 需要来自 Ubuntuuniverse
包存储库的依赖项。要确保启用此功能,请运行以下命令:
sudo apt-add-repository universe
# Retrieve the latest package versions across all repositories
sudo apt update
设置完全限定域名 (FQDN)(可选)
如果用于托管 Jitsi Meet 实例的机器 jitsi.dengyike.com 已经在 DNS 中设置了FQDN(例如),您可以使用以下命令进行设置:
sudo hostnamectl set-hostname
jitsi.dengyike.com
然后在/etc/hosts
文件中添加相同的 FQDN :
127.0.0.1 localhost
120.24.195.49 jitsi.dengyike.com
注意:120.24.195.49
是您服务器的公共 IP 地址。
最后在同一台机器测试中,您可以使用以下命令 ping FQDN:
ping "$(hostname)"
如果一切都按预期工作,您应该看到:jitsi.dengyike.com
对于 Ubuntu 20.04,添加 Prosody 包存储库
这将添加 Prosody 存储库,以便安装 Prosody .11,这是包括大厅功能在内的功能所必需的。
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 -
添加 Jitsi 包存储库
这会将 jitsi 存储库添加到您的包源中,以使 Jitsi Meet 包可用。
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
# update all package sources
sudo apt update
设置和配置您的防火墙
需要在防火墙中打开以下端口,以允许到 Jitsi Meet 服务器的流量:
- 80 TCP - 使用 Let's Encrypt 进行 SSL 证书验证/更新
- 443 TCP - 用于一般访问 Jitsi Meet
- 10000 UDP - 用于一般网络视频/音频通信
- 22 TCP - 如果您使用 SSH 访问服务器(如果不是 22,则相应地更改端口)
- 3478 UDP - 用于查询 stun 服务器(coturn,可选,需要更改 config.js 以启用它)
- 5349 TCP - 用于通过 TCP 的后备网络视频/音频通信(例如,当 UDP 被阻止时),由 coturn 提供服务
如果您正在使用ufw
,则可以使用以下命令:
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
sudo ufw allow 5222/tcp
sudo ufw enable
使用以下命令检查防火墙状态:
sudo ufw status verbose
通过路由器转发端口
如果您在 NAT 后面的服务器上运行 Jitsi Meet ,请将路由器上的端口转发到您服务器的 IP 地址。
注意:如果参与者看不到或听不到对方,请仔细检查您的防火墙/NAT 规则。
TLS 证书
为了进行加密通信,您需要TLS 证书。
在安装 Jitsi Meet 期间,您可以选择不同的选项:
-
推荐的选项是选择Generate a new self-signed certificate and create a Lets-Encrypt Certificate later(见下文)(这将替换自签名证书)。
-
但是如果你想使用不同的证书,或者你想选择不同的 Let's Encrypt 挑战类型(详情见下文),你应该先创建那个证书,然后安装 jitsi-meet 并选择I want to use my own certificate。
-
您也可以使用自签名证书,但不建议这样做,原因如下:
-
使用自签名证书将导致在您的用户浏览器中显示警告,因为他们无法验证您的服务器的身份。
-
Jitsi Meet 移动应用程序需要由受信任的证书颁发机构签署的有效证书,如果您选择自签名证书,将无法连接到您的服务器。
-
安装 Jitsi Meet
注意:安装程序将检查Nginx或Apache是否存在(按该顺序)并在它找到的 Web 服务器中配置一个虚拟主机来为 Jitsi Meet 提供服务。
如果您已经在同一台机器上的 443 端口上运行 Nginx,则将跳过 turnserver 配置,因为它会与您当前的 443 端口冲突。
# jitsi-meet installation
sudo apt install jitsi-meet
SSL/TLS 证书生成: 您将被询问 SSL/TLS 证书生成。
主机名: 您还将被要求输入 Jitsi Meet 实例的主机名。如果您有域,请使用特定的域名,例如:jitsi.dengyike.com 或者,您可以输入机器的 IP 地址(如果它是静态的或未更改)。
该主机名将用于 Jitsi Meet 内的虚拟主机配置,而且您和您的通讯员将使用它来访问网络会议。
生成 Let's Encrypt 证书(可选,推荐)
为了进行加密通信,您需要TLS 证书。
最好的方法是创建一个由证书颁发机构签名的证书。这样您就可以避免自签名证书出现问题(有关详细信息,请参见上文)。最简单的方法是使用Let's Encrypt。
只需在您的 shell 中运行以下命令:
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
请注意,此脚本使用HTTP-01 质询类型,因此您的实例需要通过公共 Internet 的 80 和 443 端口访问。如果您想使用不同的质询类型,请不要使用此脚本,而是选择I想在jitsi-meet
安装过程中使用我自己的证书。
浏览器访问
将 VP8 编码改为 H264 编码
修改 config.js
sudo vim /etc/jitsi/meet/jitsi.dengyike.com-config.js
/264
修改 sip-communicator.properties
sudo vim /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.jicofo.ENABLE_H264=true
org.jitsi.jicofo.ENABLE_VP8=true
org.jitsi.jicofo.ENABLE_VP9=true
重启服务
sudo systemctl restart prosody
sudo systemctl restart jicofo
sudo systemctl restart jitsi-videobridge2
卸载
sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2
有时以下软件包将无法正确卸载:
- jigasi
- jitsi-videobridge
发生这种情况时,只需再次运行卸载命令就可以了。
失败的原因是有时卸载脚本比停止守护进程的进程更快。卸载命令的第二次运行修复了这个问题,因为此时 jigasi 或 jitsi-videobridge 守护进程已经停止。
日志文件
/var/log/jitsi/jvb.log
/var/log/jitsi/jicofo.log
/var/log/prosody/prosody.log