ubuntu 安裝oracle jdk 8

1. 先到oracle網站下載

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
下載 jdk-version-linux-x64.tar.gz 

2.   解開 tgz

sudo tar zxvf jdk-version-linux-x64.tar.gz -C /usr/lib/jvm

3. 安裝到 update-alternatives

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_version/bin/java" 1

4. 設定oracle java

sudo update-alternatives --config java 

ubuntu 20.04 安裝docker

1. 
sudo apt-get update
sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg \
     lsb-release
	 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
	 
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
##$(lsb release -cs) 試圖找出ubuntu對應版本 , 
##或是到這查https://download.docker.com/linux/ubuntu/dists/
  
sudo apt-get install docker-ce docker-ce-cli containerd.io

2. 自訂存放目錄

修改 /lib/systemd/system/docker.service
 從
ExecStart=/usr/bin/docker daemon -H fd://
 改成
ExecStart=/usr/bin/docker daemon --data-root <自訂目錄> -H fd:// 

重啟 docker 
systemctl stop docker
systemctl daemon-reload
systemctl start docker

完成

讓jitsi meet需要密碼登入

以 主機名稱 meet.test.com 為例子, 以下只要是meet.test.com皆須改成真實的主機名字
1. 修改 /etc/prosody/conf.avail/meet.test.com.cfg.lua

VirtualHost "meet.test.com"
         authentication = "internal_plain"
         ...

VirtualHost "guest.meet.test.com"
         authentication = "anonymous"
         c2s_require_encryption = false
         modules_enabled = {
             "bosh";
             "pubsub";
             "ping";
             "speakerstats";
             "turncredentials";
             "conference_duration";
         }

2. 安裝module storage_memory模組(optional)

apt install -y mercurial
mkdir ~/temp && cd ~/temp
hg clone 'https://hg.prosody.im/prosody-modules/' prosody-modules
cp prosody-modules/mod_storage_memory/*.lua /usr/lib/prosody/modules/.

3. 修改 /etc/jitsi/meet/meet.test.com-config.js

var config = {
     …
     hosts: {
             …
             domain: 'meet.test.com',
             anonymousdomain: 'guest.meet.test.com',
             …
         },
         …
 }

4. 修改 /etc/jitsi/jicofo/sip-communicator.properties

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

5. 新增可登入的帳號密碼

prosodyctl register william meet.test.com mypassword

6. 重開服務

systemctl restart {prosody,jicofo,jitsi-videobridge2,nginx}

這樣一來, 只有第一個登入的人需要輸入帳號密碼, 其他使用相同網址不需要密碼就可以登入(來賓帳戶guest)

jitsi-meet限定內部使用(VPN) 安裝注意事項

jitsi-meet安裝後, 可查看 /var/log/jitsi/jvb.log , jicofo.log 看看是否有錯誤


1. 若遇到 PKIX path building failed 錯誤, 會造成mcu錯誤, 也就是無法多人(3人)以上一起視訊以及分享
需要把自己簽名的證書(不合法) , 新增至java的證書區

keytool -importcert -file /var/lib/prosody/<主機名稱>.crt  -keystore <java SDK path>/jre/lib/security/cacerts 
#刪除請把 -importcert 改成 delete

Example

keytool -importcert -file /var/lib/prosody/meet.test.com.crt  -keystore /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts 

有趣的是, 以上指令執行完畢, 需要輸入密碼,密碼預設是 changeit

改完後重開機.

ubuntu(VM)如何測試aes硬體解碼的功能

  1. 先讓vm不啟用aes, 然後執行
openssl speed -evp aes-256-cbc

再讓vm關機, 然後啟用aes, 重開機, 再執行上述指令, 比對數值即可.

2. 可以用以下指令測試支援哪些解碼

openssl ciphers -v 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS' 

3. nginx 與 apache httpd 都有加密的設定, 類似以下的寫法

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

4. openssl speed 這指令可以列出來加密速度, 非常實用

jitsi meet效能調教(ubuntu)

** 設定檔案要備份
** 若原本設定檔案沒有以下建議的設定值,可以不要強制加上去

  1. 啟用硬體加解密功能
    切記一定要啟動硬體編碼 AES , 讓 nginx 能以較優的加解密速度連線


2. 修改相關設定檔案
/etc/jitsi/meet/<網域名稱>-config.js

##強制設定名稱
 requireDisplayName: true,
## 預設只開語音,不開視訊
 startAudioOnly: true,
## 取消測量聲音等級(並且取消顯示等級)
 disableAudioLevels: true,
## 取消偵測是否有聲音模組
 enableNoAudioDetection: false,
## 取消麥克風的雜音偵測
 enableNoisyMicDetection: false,
## 靜音
 startAudioMuted: 1,
 startVideoMuted: 1,    
## 畫質相關
 enableLayerSuspension: true,
 resolution: 360,
 constraints: {
   video: {
     frameRate: {
       max: 10,
       min: 5
     },
     height: {
       ideal: 360,
       max: 360,
       min: 120
     }
   }
 },

/usr/share/jitsi-meet/interface_config.js

SET_FILMSTRIP_ENABLED: false,
DISABLE_VIDEO_BACKGROUND: true,
DISABLE_FOCUS_INDICATOR: true,
DISABLE_DOMINANT_SPEAKER_INDICATOR: true,
DISABLE_JOIN_LEAVE_NOTIFICATIONS: true,

/etc/jitsi/videobridge/logging.properties

.level=WARNING
java.util.logging.FileHandler.level = OFF

/etc/jitsi/videobridge/sip-communicator.properties

org.jitsi.videobridge.DISABLE_TCP_HARVESTER=false

/etc/jitsi/jicofo/sip-communicator.properties
** 改成使用VP9, 建議使用chrome瀏覽器, 而且jitsi-meet要安裝2020-12-10以後的版本

org.jitsi.jicofo.ENABLE_H264=false
org.jitsi.jicofo.ENABLE_VP8=false
org.jitsi.jicofo.ENABLE_VP9=true

/etc/systemd/system.conf

DefaultLimitNOFILE=1024:524288 
DefaultLimitNPROC=65000 
DefaultTasksMax=65000 

3. 重開機

另外也可以在瀏覽器連結的後面加上 #config.p2p.enabled=false

參考連結

ubuntu 18.04安裝jitsi-meet

前陣子使用docker安裝jitsi-meet遭到亂流, 有時候可以多人同時視訊,有時候失敗,
可能是docker也可能是多個網卡做nat的關係, 因此索幸用vm安裝一個官方建議的版本

ubuntu 18.04 + 單一對外ip網卡+jitsi-meet

  1. dns
    確認該對外ip有一個dns name
  2. 安裝ubuntu 18.04
    sudo apt-get install -y curl openssh-server 
  3. 確認主機名稱
    請設定與dns name一致
    sudo hostnamectl set-hostname <dns name>
  4. 設定防火牆
    sudo ufw enable
    sudo ufw allow 25/tcp
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw allow 4443/tcp
    sudo ufw allow 3478/udp
    sudo ufw allow 5349/tcp
    sudo ufw allow 10000:20000/udp
    sudo ufw status
  5. 安裝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
    sudo apt-get -y update
    sudo apt-get -y install jitsi-meet

    安裝的過程輸入dns name , 以及選擇 Generate a new self-signed certificate
  6. 設定let’s encrypt
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt install certbot
    sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
  7. vm記得開硬體解鎖 aes , 讓nginx的加解密加快
  8. 接下來就是視情況設定登入認證,或是防火牆限制連線ip之類的資訊安全工作


    若要移除
sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2


20201223
手殘, 將18.04升級到20.04, 遇到一大堆問題, 只好purge jitsi-meet 與 nginx , 並且發現還要刪除/etc/nginx , /etc/jitsi-meet , 與 /usr/share/jitsi*** 所有目錄與檔案, 重新安裝才會正常


20201230
1.因為我直接把/etc/nginx刪除, 造成其他nginx模組無法移除, 因此可以用以下指令後面接模組名稱刪除
2. 我曾經只有安裝lan的jitsi-meet因此沒有證書, 本來用得好好的,但是卻發現分享的時候, 無法分享超過三人, 但聲音可以, 真是奇怪,只好先怪罪沒有正式對外的dns與證書吧
3. 重新安裝nginx的時候要記得安裝nginx-common

dpkg --remove --force-remove-reinstreq <package name>
1 ... 6 7 8 9 10 ... 13