جلسه دونفره دیروز روی سرور تازه روان بود و امروز، با ورود نفر سوم، تصویر همه سیاه شد. فاصله این دو جلسه یک قدم جاافتاده در نصب Jitsi Meet است که تا نفر سوم خودش را نشان نمی‌دهد. روی Ubuntu 24.04 یا Debian 12، پنج اشتباه رایج همین‌طور تا روز جلسه پنهان می‌مانند.

  • ✅ گواهی معتبر ندارید ← اپلیکیشن موبایل وصل نمی‌شود
  • ✅ پورت 10000/UDP بسته است ← با نفر سوم صدا و تصویر می‌رود
  • ✅ نگاشت NAT ندارید ← شرکت‌کننده‌ها صدا و تصویر هم را ندارند
  • ✅ ساخت اتاق باز است ← هر غریبه‌ای جلسه می‌سازد
  • ✅ اندازه سرور حدسی است ← جلسه به‌جای کند شدن می‌شکند

🧩 سه سرویس پشت یک صفحه جلسه

سرویس Prosody سرور XMPP برای سیگنال‌دهی است و Jicofo جلسه را مدیریت می‌کند؛ تصویرها را Jitsi Videobridge جابه‌جا می‌کند.
✅ آزمایش نهایی را با سه دستگاه از سه شبکه جدا بگیرید.
✅ دستورها از هندبوک رسمی Jitsi آمده‌اند.

جلسه آزمایشی دونفره چیزی درباره سرور ثابت نمی‌کند، چون رسانه‌اش از videobridge نمی‌گذرد؛ کار از ورود نفر سوم شروع می‌شود. گفتگوی متنی تیم ابزار جدایی می‌خواهد و مقایسه سه پیام‌رسان سازمانی خودمیزبان برای همان انتخاب است.

نصب jitsi meet، مسیر صدا و تصویر سه مرورگر تا videobridge روی سرور جلسه

اشتباه اول؛ نصب بدون دامنه و گواهی معتبر

اپلیکیشن‌های موبایل Jitsi فقط به سروری با گواهی امضاشده یک مرجع معتبر وصل می‌شوند. هندبوک برای این گواهی Let’s Encrypt را پیشنهاد می‌کند و کار را از یک دامنه و رکورد A شروع می‌کند؛ پس یک زیردامنه، مثلاً meet.example.org، برای نصب Jitsi Meet آماده کنید.

رکورد A و نام کامل سرور

فرض ما سروری با IP عمومی است، مثل یک سرور مجازی. سرور پشت روتر خانه یا دفتر حساب دیگری دارد. رکورد A زیردامنه به همین IP اشاره می‌کند؛ راهنمای تنظیمات DNS و رکوردهای دامنه نشان می‌دهد این رکورد در پنل دامنه کجا ساخته می‌شود. ثبت FQDN روی خود سرور اختیاری است:

sudo hostnamectl set-hostname meet.example.org

همان نام را با IP عمومی در /etc/hosts هم بنویسید.

دو مخزن و بسته‌های لازم

راهنمای نصب هندبوک Jitsi امروز Debian 12 و Ubuntu 24.04 یا تازه‌تر را پشتیبانی می‌کند و OpenJDK 17 می‌خواهد؛ آموزش‌های Debian 10 و Ubuntu 20.04 کهنه‌اند. فقط روی اوبونتو مخزن universe را با sudo add-apt-repository universe فعال کنید؛ Debian 12 به این خط نیاز ندارد. بعد بسته‌های لازم و دو مخزن Prosody و Jitsi:

sudo apt update
sudo apt install apt-transport-https gnupg2 nginx-full curl
sudo curl -sL https://prosody.im/files/prosody-debian-packages.key -o /usr/share/keyrings/prosody-debian-packages.key
echo "deb [signed-by=/usr/share/keyrings/prosody-debian-packages.key] http://packages.prosody.im/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/prosody-debian-packages.list
curl -sL 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
sudo apt update

این دو مخزن بیرون از ایران میزبانی می‌شوند و از بعضی شبکه‌های داخلی ممکن است باز نشوند. پیش از شروع، پاسخ curl -I https://download.jitsi.org/stable/ را روی خود سرور ببینید و اگر پاسخی نیامد، از پشتیبانی دیتاسنتر بپرسید.

فایروال پیش از نصب

پورت 80/TCP باید پیش از نصب باز باشد، چون Let’s Encrypt هنگام نصب به آن نیاز دارد. هندبوک 80، 443، 22 و 5349 روی TCP و 10000 روی UDP را لازم می‌داند؛ 3478/UDP اختیاری است و تغییری در config.js می‌خواهد. اگر SSH پورت دیگری دارد، پیش از ufw enable همان را باز کنید؛ فایروال دیتاسنتر هم همین‌ها را می‌خواهد:

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 enable

نصب و پرسش گواهی

sudo apt install jitsi-meet

نصب‌کننده نام میزبان و نوع گواهی را می‌پرسد. گواهی خودامضا هشدار مرورگر می‌آورد و اپلیکیشن موبایل را بیرون نگه می‌دارد. بعد از نصب، https://meet.example.org را باز کنید و یک جلسه بسازید. اگر nginx از قبل روی 443 همین سرور باشد، نصب‌کننده پیکربندی turnserver را رد می‌کند.

پورت UDP 10000 و آدرس NAT؛ چرا جلسه سه‌نفره قطع می‌شود

پورت UDP 10000 و آدرس NAT؛ چرا جلسه سه‌نفره قطع می‌شود

اگر بعد از نصب Jitsi Meet جلسه دونفره سالم است و سه‌نفره قطع می‌شود، علت در مسیر videobridge است. دو نفر با اتصال مستقیم P2P حرف می‌زنند؛ نفر سوم که بیاید، صدا و تصویر به jitsi-videobridge2 روی پورت 10000/UDP می‌رود. بخش پرسش‌های هندبوک همین نشانه را ثبت کرده است.

در سالن همایش، دو نفرِ سر یک میز بی‌میکروفون حرفشان را می‌زنند. از شنونده سوم به بعد صدا باید از آمپلی‌فایر بگذرد؛ اگر کابلش جدا باشد، گفتگوی سر میز ادامه دارد و سالن چیزی نمی‌شنود. در Jitsi نقش آمپلی‌فایر را jitsi-videobridge2 دارد.

نشانهعلت محتملجای بررسی
تصویر سیاه یا قطع با نفر سوممسیر videobridge بسته استپورت 10000/UDP
هیچ‌کس صدا و تصویر دیگری را نداردسرور پشت NAT بی‌نگاشتبخش ice4j در jvb.conf
فقط بعضی‌ها صدا و تصویر ندارندشبکه آن‌ها UDP را بسته و مسیر TCP نیستپورت 5349/TCP برای coturn
مرورگر وصل می‌شود و اپلیکیشن موبایل نهزنجیره کامل گواهی (fullchain) تحویل داده نمی‌شودخط ssl_certificate در nginx
غریبه‌ها اتاق می‌سازندساخت جلسه پیش‌فرض باز استاحراز هویت با توکن

⚠️ آزمایش دونفره مسیر videobridge را پنهان می‌کند

جلسه دونفره موفق درباره پورت 10000/UDP خبری نمی‌دهد. آزمایش را با سه دستگاه بگیرید؛ مثلاً یک لپ‌تاپ روی اینترنت ثابت و دو گوشی روی دو اپراتور.

سرور مجازی با IP خصوصی

اگر ip address show روی سرور فقط IP خصوصی (10.x، 172.16 تا 172.31 یا 192.168.x) نشان می‌دهد، هندبوک سرور را پشت NAT می‌داند. از پشتیبانی ارائه‌دهنده بپرسید. اگر ارائه‌دهنده 443/TCP و 10000/UDP را به همین سرور می‌رساند و جلسه سه‌نفره باز کار نکرد، نگاشت را بنویسید و جای دو مقدار نمونه، IP داخلی و عمومی سرور را بگذارید:

ice4j {
  harvest {
    mapping {
      static-mappings = [
        {
          local-address = "<Local.IP.Address>"
          public-address = "<Public.IP.Address>"
        }
      ]
    }
  }
}

🔸 نشانی عمومی videobridge کجا ثبت می‌شود

فایل: /etc/jitsi/videobridge/jvb.conf
بخش: ice4j.harvest.mapping با دو کلید local-address و public-address
پس از ذخیره: sudo systemctl restart jitsi-videobridge2

اتاق‌ها را فقط برای کاربران خودتان باز کنید

طبق بخش Access Control راهنمای نصب، نصب Jitsi Meet به‌طور پیش‌فرض به هر کسی که نشانی سرور را دارد اجازه ساختن جلسه می‌دهد. برای اینکه فقط کاربران خودتان اتاق بسازند و مهمان‌ها بعد وارد شوند، احراز هویت را روشن کنید.

⚠️ دامنه عمومی و ساخت اتاق باز

تا احراز هویت روشن نشده، هر کسی نشانی را پیدا کند از پهنای باند سرور استفاده می‌کند. جلسه بی‌سقف زمانی به غریبه‌ها هم می‌چسبد. رمز اتاق جلوی ساختن اتاق تازه را نمی‌گیرد.

روش توصیه‌شده هندبوک: توکن JWT

هندبوک برای نصب تازه احراز هویت JWT را توصیه می‌کند. گام اول در صفحه Token Authentication نصب یک بسته با دسترسی root است:

apt-get install jitsi-meet-tokens

نصب‌کننده Application ID و Application Secret را می‌پرسد و آن‌ها را با authentication = “token” در پیکربندی Prosody می‌نویسد. از آن به بعد فقط کسی که توکن معتبر دارد اتاق می‌سازد و بقیه از دامنه ناشناس وارد می‌شوند. باقی تنظیم‌ها در همان صفحه است و اتصال به Keycloak در صفحه Authentication.

روش قدیمی secure domain، با internal_hashed و prosodyctl، را هندبوک در صفحه Secure Domain برای نصب تازه منسوخ خوانده است؛ آن را فقط روی سرورهای قدیمی می‌بینید.

منابع سرور را برای تعداد شرکت‌کننده از کجا تخمین بزنیم؟

منابع سرور را برای تعداد شرکت‌کننده از کجا تخمین بزنیم؟

صفحه Requirements در هندبوک Jitsi عددی برای تعداد شرکت‌کننده نمی‌دهد. منابع را به ترتیب اهمیت می‌چیند: شبکه، RAM، CPU و دیسک. به گفته هندبوک، اشتباه در این محاسبه در یک سیستم بلادرنگ به‌راحتی کار پایه جلسه را خراب می‌کند و به کندی ختم نمی‌شود.

منبعراهنمای هندبوکمعنای عملی
شبکه به ازای هر تصویرتصویر 720 حدود ۲۵۰۰ کیلوبیت و 4K حدود ۱۰ مگابیت در ثانیهتعداد تصویر هم‌زمان را حساب کنید
شبکه سرور۱ گیگابیت برای سازمان کوچک اغلب کافی است؛ سرور جدی ۱۰ گیگابیتسرعت واقعی را با iperf3 بسنجید
حافظه RAMمعمولاً ۸ گیگابایت؛ ۴ برای جلسه کوچک؛ ۲ برای آزمایشجلسه بزرگ سرور بیشتر می‌خواهد
پردازنده CPU۴ هسته اختصاصی برای سرور پایه؛ Prosody فقط یک هسته را به کار می‌گیرداختصاصی بودن CPU را بپرسید
دیسک۲۰ گیگابایت دیسک معمولیدیسک SSD شرط نیست

در مثال همان صفحه، بیست کاربر 4K روی سرور ۱۰۰ مگابیتی جا نمی‌شوند. برآورد منابع پیش از نصب Jitsi Meet را از ستون شبکه شروع کنید و برای رشد، videobridge بیشتر را به سرور بزرگ‌تر ترجیح دهید. برای جلسه‌های بیش از صد نفر، هندبوک این سقف‌ها را در /etc/systemd/system.conf پیشنهاد می‌کند:

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

سپس sudo systemctl daemon-reload را بزنید و jitsi-videobridge2 را دوباره راه بیندازید.

ضبط جلسه حساب جدا دارد

هر Jibri فقط یک جلسه را ضبط می‌کند و برای 1080×720 دست‌کم ۸ گیگابایت RAM می‌خواهد. هندبوک Jibri را روی سرور جلسه توصیه نمی‌کند.

سقف زمان جلسه را چه کسی تعیین می‌کند

در راهنمای نصب هندبوک تنظیمی برای سقف مدت جلسه نیامده است. راه مستند هندبوک برای پایان خودکار جلسه، سامانه رزرو است: ماژول reservations در Prosody مدت را از یک API بیرونی می‌گیرد و جلسه طولانی‌تر را می‌بندد. مسیر نصب پیش‌فرض هندبوک سقف دیگری تعریف نمی‌کند.

اگر جلسه آزمایشی چیزی را خراب نشان داد، پرسشی را بخوانید که نشانه شما را با همان کلمه‌ها گفته است.

اپلیکیشن موبایل Jitsi وصل نمی‌شود ولی مرورگر وصل می‌شود؛ مشکل از کجاست؟

به گفته هندبوک، احتمالاً زنجیره کامل گواهی (fullchain) تحویل داده نمی‌شود. با Let’s Encrypt، خط ssl_certificate در nginx باید به fullchain.pem اشاره کند. گواهی خودامضا هم اپلیکیشن را بیرون نگه می‌دارد.

نصب‌کننده IP ثابت را می‌پذیرد، اما مسیر مستند هندبوک با دامنه و گواهی Let’s Encrypt جلو می‌رود. اگر همکاران از گوشی وارد می‌شوند، دامنه بگیرید.

فهرست هندبوک فعلی از Ubuntu 24.04 شروع می‌شود؛ سازگاری نسخه قدیمی‌تر را خودتان باید بسنجید.

بله. فقط ساختن اتاق حساب می‌خواهد و بقیه از دامنه مهمان وارد می‌شوند.

در نصب پیش‌فرض نه. برای سقف زمانی، ماژول reservations در Prosody همراه یک API رزرو لازم است.

از نظر فنی بله، ولی هندبوک توصیه نمی‌کند؛ Jibri پرمصرف است و ممکن است دیسک را پر کند.

در /var/log/jitsi/jvb.log و /var/log/jitsi/jicofo.log و /var/log/prosody/prosody.log.

جمع‌بندی؛ نصب Jitsi Meet با نفر سوم سنجیده می‌شود جلسه دونفره فقط ثابت می‌کند صفحه باز می‌شود. سرور وقتی آماده تیم است که سه دستگاه از سه شبکه هم‌زمان صدا و تصویر هم را داشته باشند و اپلیکیشن موبایل بی‌هشدار وصل شود. چهار کار شما را به این نقطه می‌رساند: دامنه با گواهی Let’s Encrypt، پورت‌های 10000/UDP و 5349/TCP باز، نگاشت NAT در jvb.conf برای سرور با IP خصوصی، و احراز هویت با توکن JWT. اندازه سرور را از ستون شبکه شروع کنید. مشکلی ماند؟ اول سراغ لاگ‌های jvb، jicofo و prosody بروید.

🚀 پیام‌رسانی که کنار همین جلسه‌ها بنشیند

تیمی که جلسه‌اش روی سرور خودش است، پیام‌هایش را هم معمولاً همان‌جا می‌خواهد. مقایسه Mattermost و دو رقیبش را بخوانید.

در اولین جلسه‌ای که روی سرور خودتان گرفتید چند نفر بودید و با ورود نفر چندم چیزی خراب شد؟ یک خط از jvb.log همان لحظه، حدس را به سند تبدیل می‌کند.

مستندات رسمی Jitsi که دستورها از آن‌ها آمده

وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 277
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *