准备工作
一个域名;
一个有公网的服务器或者云服务器;
拥有root或者sudo权限。
安装实操
本次实例的环境
goddady的域名,AWS的免费服务器(Ubuntu20)
安装操作
安装AWS服务器,本次安装的操作系统是Ubuntu20,对于ssh怎么登陆自行解决。
把goddady的域名和ASW的公网IP绑定,公网IP就是ssh登陆的ip地址。
- 系统环境准备
sudo apt update
sudo apt full-upgrade
- jitsi需要的环境准备
sudo apt install gnupg2 nginx-full openjdk-8-jdk
sudo apt install apt-transport-https
- 源准备
sudo apt-add-repository universe
sudo apt update
- jitsi源下载准备
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安装
sudo apt install jitsi-meet
这中间需要填写域名,比如godaddy注册的域名为meet.block.xyz,这里就填写这个。
另外一个需要选择的是https的证书,默认选择就可以,后面再重新生成,命令为
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
这里需要填写邮件,用来接收相关资讯,主要是这个证书免费,有过期时间提醒,需要手动续签。
- 配置安全组
80 TCP - for SSL certificate verification / renewal with Let's Encrypt
443 TCP - for general access to Jitsi Meet
10000 UDP - for general network video/audio communications
22 TCP - if you access you server using SSH (change the port accordingly if it's not 22)
3478 UDP - for quering the stun server (coturn, optional, needs config.js change to enable it)
5349 TCP - for fallback network video/audio communications over TCP (when UDP is blocked for example), served by coturn
- 程序重启
sudo service jicofo restart
sudo service jitsi-videobridge2 restart
sudo service prosody restart
sudo service nginx restart
- jitsi-meet卸载
sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2
这样就完全安装完成。
问题
问题1:用公网的虚拟云服务器进行安装完成后,可能会出现chrome打开meet.block.xyz没有反应?
原因:meet.block.xyz域名需要把主机的hostname和dnsdomainname修改为对于网址。如果贸然修改/etc/hostname可能会无效,因为对于多数的虚拟云主机是不支持修改hostname,需要修改/etc/cloud/cloud.cfg中的preserve_hostname: true
执行dnsdomainname和hostnamectl查看,sudo hostnamectl set-hostname meet.block.xyz设置
/etc/hosts中要有127.0.0.1 meet.block.xyz meet
其他:
sudo hostnamectl set-hostname "Myfreax's laptop" --pretty
静态主机名存储在/etc/hostname中,pretty主机名存储在/etc/machine-info文件中。
问题2:可能在解决问题1之后可能还是无法访问meet.block.xyz?
原因:因为多数的虚拟云主机是通过vhost配置的网络,主机会有两个网络,一个公网,一个私网,公网就是ssh登陆的网址,私网用ip a查看,局域网的那个ip就是的。
sudo vim /etc/jitsi/videobridge/sip-communicator.properties
最后新增两个参数:
org.ice4j.ice.harvest.NAT_HARVEST_LOCAL_ADDRESS=云私网
org.ice4j.ice.harvest.NAT_HARVEST_PUBLIC_ADDRESS=云公网
高级设置
用户设置
启动Secure domain功能, 限制有账号的人才能开新会议室
编辑/etc/prosody/conf.avail/jitsi4james.ddns.net.cfg.lua,
将认证方式方式由anonymous改为internal_plan
并加入:(其他人可以加入)
VirtualHost "guest.jitsi4james.ddns.net"
authentication = "anonymous"
c2s_require_encryption = false
编辑/etc/jitsi/meet/jitsi4james.ddns.net-config.js,加入
anonymousdomain: 'guest.jitsi4james.ddns.net',
systemctl status
其他
证书自动更新
sudo apt install certbot
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
生成的证书位置:/etc/letsencrypt/live/example.com/
查看nginx配置文件(/etc/nginx/sites-enabled/example.com)内的证书路径是否正确,如果不对则手工修改为如下配置:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
从letsencrypt申请的证书默认有效期是90天,修改或新增脚本/etc/cron.weekly/letsencrypt-renew,以便自动更新申请新的证书,脚本内容如下:
#!/bin/bash
/usr/local/sbin/certbot-auto renew --webroot -w /usr/share/jitsi-meet >> /var/log/le-renew.log
可以通过如下命令能否执行成功测试证书更新功能是否生效:
certbot-auto renew --dry-run --webroot -w /usr/share/jitsi-meet
文件位置
文件:
jicofo:/etc/jitsi/jicofo
jitsi-videobridge: /etc/jitsi/videobridge
jitsi-meet: /etc/jitsi/meet
xmpp: /etc/prosody/
日志:
Jitsi-videobridge:/var/log/jitsi/jvb.log
Jicofo: /var/log/jitsi/jicofo.log
xmpp服务: /var/log/prosody/prosody.err、/var/log/prosody/prosody.log
安装noip client
cd /usr/local/src
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xzf noip-duc-linux.tar.gz
cd noip-2.1.9-1
make install
配置noip自动启动
sudo chmod 777 /usr/local/etc/no-ip2.conf
sudo nano /etc/init.d/noip
#######################################################
#! /bin/sh
case "$1" in
start)
echo "Starting noip2"
/usr/local/bin/noip2
;;
stop)
echo -n "Shutting down noip2"
for i in `noip2 -S 2>&1 | grep Process | awk '{print $2}' | tr -d ','`
do
noip2 -K $i
done
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
#######################################################
sudo /etc/init.d/noip stop
sudo /etc/init.d/noip start
sudo nano /etc/rc.local中加上
/etc/init.d/noip start
结果
电脑和手机app均可使用,对于性能要求,目前没有测试。
参考
1.官方快速安装
2.配置细节
欢迎交流,wechat:tlxbp930
https://hellolinux.xyz
网友评论