در ماههای اخیر، قطع اینترنت در ایران به یکی از دغدغههای جدی کاربران تبدیل شده است. محدودیت دسترسی به پیامرسانها و شبکههای ارتباطی باعث شده افراد به دنبال راهکارهای پایدارتر برای ارتباط باشند. پروتکل ماتریکس (Matrix) بهعنوان یک بستر متنباز و غیرمتمرکز، امکان ارسال پیام و ایجاد سرورهای مستقل را فراهم میکند. همین ویژگیها آن را به گزینهای کاربردی در زمان اختلال اینترنت و فیلترینگ گسترده تبدیل کرده است. در ادامه بیشتر با نحوه استفاده از پروتکل ماتریکس آشنا خواهیم شد.
Matrix چیست؟
Matrix یک پروتکل ارتباطی باز و استاندارد برای پیامرسانی سریع است که با هدف ایجاد یک لایه اینترنتی مستقل برای ارتباط طراحی شد؛ لایهای که به سرویسدهندگان متمرکز وابسته نیست.
این پروتکل در سال ۲۰۱۴ توسط Matthew Hodgson و Amandine Le Pape در شرکت Amdocs توسعه یافت و از معماری شبیه ایمیل بهره میبرد. در این ساختار، کاربران میتوانند سرور شخصی خود را راهاندازی کنند و کنترل کامل دادهها را در اختیار داشته باشند. برای مثال، بسیاری از کاربران ایرانی با نصب سرور مجازی لینوکس (VPS) خارج از کشور، هومسرور Matrix خود را برپا میکنند تا در زمان اختلال اینترنت، ارتباط داخلیشان حفظ شود.
Matrix از رمزنگاری پایانبهپایان پشتیبانی میکند و امنیت مکالمات را بالا میبرد. این شبکه امکان ارتباط میان سرویسهای مختلف را فراهم میکند و حتی در شرایط اختلال اینترنت، با اتکا به سرورهای محلی قابل استفاده است. پروتکل Matrix برای پیامرسانی، اینترنت اشیا و تماس اینترنتی طراحی شده و قابلیتهایی مثل همگامسازی پیامها و اتصال به پلتفرمهای دیگر را ارائه میدهد.
پیامرسانهای مبتنی بر Matrix نیز با تکیه بر همین زیرساخت، آزادی عمل و انعطاف بیشتری در شرایط اختلال اینترنت به کاربر ارائه میدهند.
راهاندازی Matrix با نصب داکر
راهاندازی سرور Matrix با Docker یکی از آسانترین روشها برای ایجاد یک پیامرسان امن و مستقل است. پیش از شروع، بهتر است ابتدا با مفهوم Docker چیست؟ آشنا شوید. در ادامه مراحل نصب و اجرای Matrix با داکر را قدمبهقدم بررسی میکنیم:
مرحله ۱: نصب Docker و Docker Compose
ابتدا داکر را طبق مستندات رسمی نصب کنید. پس از نصب، برای اطمینان از صحت اجرا دستور زیر را بزنید:
docker --version
اگر نسخه داکر نمایش داده شد، یعنی نصب با موفقیت انجام شده است.
مرحله ۲: ایجاد دایرکتوری
یک پوشه برای نگهداری فایلهای Synapse بسازید و وارد آن شوید:
mkdir -p ~/matrix && cd ~/matrix
این مسیر محل ذخیره تنظیمات و دادههای سرور شما خواهد بود.
مرحله ۳: ساخت فایل Docker Compose
فایلی با نام docker-compose.yml ایجاد کنید و محتوای زیر را در آن قرار دهید:
services: synapse: image: matrixdotorg/synapse:latest container_name: synapse restart: unless-stopped ports: - "8008:8008" - "8448:8448" volumes: - ./data:/data environment: - SYNAPSE_SERVER_NAME=your.domain.com - SYNAPSE_REPORT_STATS=yes
در بخش SYNAPSE_SERVER_NAME دامنه یا آیپی سرور خود را جایگزین کنید.
مرحله ۴: اجرای Synapse
برای اجرای سرور، دستور زیر را وارد کنید:
docker compose up -d
سوییچ -d باعث میشود کانتینر در پسزمینه اجرا شود. همچنین تمام دادهها در پوشه data ذخیره میشوند و هنگام بهروزرسانی کانتینر از بین نمیروند.
مرحله ۵: دسترسی و مدیریت
پس از اجرا، API سرور از طریق آدرس زیر در دسترس است:
http://your.domain.com:8008
برای اتصال کاربران میتوانید از کلاینت رسمی Matrix یعنی Element استفاده کنید. در ادامه با تنظیم Reverse Proxy مثل Nginx، درخواستها به سرور هدایت میشوند و دسترسی امنتری ایجاد میشود.
بعد از این مراحل، کاربران با وارد کردن دامنه یا آیپی سرور در کلاینت Element به یک پیامرسان داخلی، ایزوله و پایدار متصل میشوند؛ ساختاری که حتی در شرایط محدودیت یا اختلال اینترنت هم قابل اتکا باقی میماند.
نصب ماتریکس روی VPS
حال به سراغ بررسی نصب Matrix روی VPS میرویم. نصب Matrix روی سرور مجازی لینوکس، بهویژه VPS خارج، باعث میشود کنترل کامل زیرساخت ارتباطی در اختیار شما باشد و بتوانید ارتباطات فدرال Matrix را بدون وابستگی به سرویسهای عمومی مدیریت کنید.
در گام اول با SSH به سرور مجازی خود متصل شوید. برای آموزش میتوانید به مقاله راهنمای اتصال به سرور با SSH مراجعه کنید. سپس برای نصب سرور Matrix که با پیادهسازی Synapse شناخته میشود، دستورات زیر را اجرا کنید:
sudo apt update sudo apt install matrix-synapse-py3
در حین نصب از شما نام دامنه پرسیده میشود که همان آدرس اصلی سرور Matrix خواهد بود. پس از پایان نصب، لازم است تنظیمات پیشرفتهتر مانند پایگاه داده را انجام دهید.
برای استفاده از پایگاه داده پایدارتر، PostgreSQL را نصب کنید:
sudo apt install postgresql
سپس یک کاربر و دیتابیس اختصاصی برای Synapse بسازید:
sudo -u postgres createuser --pwprompt synapse_user sudo -u postgres createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse
اکنون فایل پیکربندی homeserver.yaml در مسیر /etc/matrix-synapse/ را ویرایش کنید و تنظیمات دیتابیس را به شکل زیر وارد نمایید:
database: name: psycopg2 args: user: synapse_user password: yourpassword database: synapse host: localhost
بعد از ذخیره تغییرات، سرویس Matrix را اجرا کنید:
systemctl start matrix-synapse
در این مرحله سرور Matrix روی VPS شما فعال شده و آماده استفاده است. برای افزایش امنیت، بهتر است فایروال UFW را طوری تنظیم کنید که پورت موردنیاز باز باشد:
ufw allow 8008
با این مراحل، سرور ماتریکس شما قابلیت ارتباط فدرال با دیگر سرورها را دارد و میتوانید یک زیرساخت پیامرسان امن و قابل کنترل ایجاد کنید.
انواع کلاینتهای Matrix
برای اتصال به شبکه Matrix و مدیریت پیامها، به کلاینتهایی نیاز دارید که روی دستگاههای مختلف اجرا شوند. هر کلاینت با توجه به نوع استفاده و سطح مهارت کاربران طراحی شده و تجربه متفاوتی از کار با ماتریکس ارائه میدهد.
کلاینت Nheko
Nheko یک کلاینت دسکتاپ سبک و سریع است که اگر به محیط مینیمال و مصرف پایین منابع اهمیت میدهید، انتخاب مناسبی محسوب میشود. این برنامه با C++ و Qt ساخته شده و میان کاربران حرفهای لینوکس محبوب است، چون تجربه چت روان و بدون کندی در اختیار شما قرار میدهد.
کلاینت FluffyChat
FluffyChat برای افرادی که رابط کاربری ساده و آشنا میخواهند، گزینه جذابی است. ظاهر آن شبیه پیامرسانهای رایج طراحی شده و تنظیمات پیچیده را پنهان میکند. به همین دلیل اگر قصد دارید بدون درگیر شدن با جزئیات فنی از Matrix استفاده کنید، تجربه راحتی خواهید داشت.
کلاینت Element
Element کاملترین کلاینت Matrix است و روی ویندوز، لینوکس، مک، اندروید، iOS و وب در دسترس قرار دارد. با استفاده از این کلاینت میتوانید از رمزنگاری سرتاسری، مدیریت گروهها و ابزارهای همکاری تیمی بهره ببرید. اگر استفاده سازمانی یا حرفهای مدنظر دارید، Element امکانات گستردهای در اختیار شما میگذارد.
اصطلاحات رایج در ماتریکس
برای آنکه بتوانید هرچه بهتر اکوسیستم Matrix را درک کنید، لازم است با چند اصطلاح پایه آشنا شوید. این مفاهیم مثل قطعات یک پازل هستند که کنار هم ساختار غیرمتمرکز و انعطافپذیر ماتریکس را شکل میدهند.
Homeserver (هومسرور)
هومسرور همان سروری است که حساب کاربری شما روی آن قرار دارد و وظیفه ذخیره پیامها، وضعیت آنلاین بودن و تاریخچه فعالیتها را برعهده میگیرد. این سرور از طرف شما با دیگر سرورهای شبکه ارتباط برقرار میکند و هویت شما در Matrix را مدیریت میکند.
Client (کلاینت)
کلاینت نرمافزاری است که از طریق آن به هومسرور متصل میشوید و پیام میفرستید. این برنامهها میتوانند نسخه موبایل، دسکتاپ یا وب داشته باشند و نقش رابط کاربری میان شما و شبکه را ایفا میکنند.
Room (اتاق)
اتاق فضای اصلی ارتباط در Matrix است. یک روم میتواند گفتگوی خصوصی میان دو نفر باشد یا یک گروه بزرگ با هزاران عضو. تمام پیامها، فایلها و تعاملات در قالب اتاقها سازماندهی میشوند.
Event (رویداد)
در Matrix هر اتفاقی یک رویداد محسوب میشود. از ارسال پیام گرفته تا تغییر عکس پروفایل یا خروج از گروه، هر کدام از این موارد یک رویداد به شمار میآیند. این رویدادها با ساختار JSON ذخیره میشوند و تاریخچه کامل فعالیتها را میسازند.
Bridge (پل ارتباطی)
بریج ابزار یا رباتی است که سرور Matrix شما را به پیامرسانهای دیگر متصل میکند. با کمک آن میتوانید بدون خروج از محیط Matrix با کاربران سرویسهایی مثل تلگرام، اسلک یا واتساپ گفتگو داشته باشید و ارتباطات خود را یکپارچه نگه دارید.
Federation (فدراسیون)
فدراسیون قابلیت کلیدی Matrix است که به هومسرورهای مستقل اجازه میدهد با یکدیگر همگام شوند و دادهها را در لحظه تبادل کنند. همین ویژگی شبکهای غیرمتمرکز میسازد که شبیه ایمیل عمل میکند.
جمع بندی
پروتکل Matrix با معماری غیرمتمرکز، ارتباط امن و پایدار حتی در قطعی اینترنت ایران فراهم میکند. میتوانید سرور خود را روی VPS یا با Docker راهاندازی کنید و کاربران با Element یا FluffyChat وصل شوند. رمزنگاری سرتاسری، اتصال به پیامرسانهای دیگر و کارکرد روی اینترانت ملی باعث میشود در blackoutهای گسترده هم قابل اعتماد باشد. کنترل کامل دادهها و استقلال از سرویسهای متمرکز، امنیت و ثبات ارتباطات را تضمین میکند.
سوالات متداول
۱. آیا پروتکل Matrix در زمان قطعی کامل اینترنت سراسری کار میکند؟
بله، اگر سرور Matrix (هومسرور) را روی شبکه محلی یا VPS داخل کشور راهاندازی کنید، کاربران داخل همان شبکه میتوانند بدون اینترنت خارجی پیام بفرستند. فدراسیون فقط برای ارتباط با سرورهای خارجی نیاز به اینترنت دارد.
۲. تفاوت Element با دیگر کلاینتهای Matrix چیست و کدام برای مبتدیان بهتر است؟
Element کلاینت رسمی و کاملترین است؛ رابط آشنا، پشتیبانی از همه پلتفرمها و امکانات سازمانی دارد. برای مبتدیان در ایران به دلیل سادگی و ترجمه خوب، Element گزینه ایدهآل است.
۳. آیا راهاندازی سرور Matrix روی VPS خارج در زمان فیلترینگ شدید ایران مفید است؟
بله، VPS خارج پایداری بیشتری در برابر اختلال داخلی دارد و فدراسیون را حفظ میکند. اما برای ارتباط داخلی بدون فیلترشکن، بهتر است سرور محلی یا داخل کشور هم داشته باشید.
۴. چطور پیامها را در Matrix رمزنگاری پایانبهپایان کنیم تا کاملاً امن باشد؟
در Element یا دیگر کلاینتها، هنگام ایجاد اتاق گزینه «Enable encryption» را فعال کنید. کلیدها فقط روی دستگاههای شما ذخیره میشوند و حتی سرور نمیتواند پیامها را بخواند.





