پیامرسان SimpleX یه پیامرسان غیرمتمرکز با رمزنگاری سرتاسری (E2EE) هست که روی پلتفرمهای مختلفی قابل دسترسیه (دسکتاپ، اندروید، iOS) اما نسخه وب نداره. ساختارش به این شکله که کاربرها هرکه کدوم یک یا چندین پروفایل میتونن داشته باشن و ا ن پروفایلها میتونن یک آدرس قابل اشتراکگذاری داشته باشن. دیگران با اون آدرس میتونن کاربر رو از طریق یک سرور واسط پیدا کنن و توی اون سرور بعد از مبادله کلیدهای رمزنگاری، به همدیگه پیام بدن. این پیامرسان مفهومی مثل user ID و username نداره و کلاً هیچی روی سرور ذخیره نمیشه؛ الا پیامهای رمزنگاریشده که توی RAM سرور نشستن و منتظر رسیدن به مقصدشون هستن. قابلیت استفاده از چندین سرور به صورت همزمان رو داره و اگر سرورها به همدیگه امکان دسترسی داشته باشن (مثلاً در شرایط فعلی، سرورها هر دو در خارج باشن) این امکان هست که وقتی طرفین روی سرور متفاوتی حضور دارن، پیامشون به همدیگه برسه.
سرور به علت این که کاری جز مسیریابی پیامهای رمزنگاری شده انجام نمیده، منابع کمی نیاز داره.
پروسه راهاندازی خیلی پیچیدهای نداره و به چندین روش میشه انجامش داد. که توی مستندات اصلی برای سرور SMP و سرور XFTP شرح داده شده. اما چندنکته برای حل مشکلات در پی گرفتن اون روشها میگم که کار رو راحتتر کنه براتون.
اول این که انتقال فایلها ممکنه براتون سخت باشه. خصوصاً که روی کانکشنها محدودیت حجمی و زمانی گذاشتن و نمیشه فایل حجیم منتقل کرد. به همین علت، میتونید از دستور
نکته بعدی برای نصب با داکر و پادمنه. خود داکر و پادمن رو میتونید از mirrorهای ابرآروان و وزارت ارتباطات و... روی سرورهای داخلی نصب کنید و ایمیج کانتینرها رو هم از mirrorهای داکر داخلی مثل runflare بگیرید. ما سرویسهای متعددی رو همینطوری توی قطعی اینترنت بالا آوردیم.
نکته دیگه این که SimpleX نیاز به سرتیفیکیت معتبر نداره مگر بخواید یه web server هم داشته باشه برای اطلاعرسانی در مورد خودش. که ما نیازی بهش نداریم و میتونید صرف نظر کنید.
سرور به علت این که کاری جز مسیریابی پیامهای رمزنگاری شده انجام نمیده، منابع کمی نیاز داره.
پروسه راهاندازی خیلی پیچیدهای نداره و به چندین روش میشه انجامش داد. که توی مستندات اصلی برای سرور SMP و سرور XFTP شرح داده شده. اما چندنکته برای حل مشکلات در پی گرفتن اون روشها میگم که کار رو راحتتر کنه براتون.
اول این که انتقال فایلها ممکنه براتون سخت باشه. خصوصاً که روی کانکشنها محدودیت حجمی و زمانی گذاشتن و نمیشه فایل حجیم منتقل کرد. به همین علت، میتونید از دستور
split و دستور cat استفاده کنید و به جای یه فایل، تکههای فایل رو بفرستید و بعد سر هم کنید.split -b 100k myfile split-m-
# result: split-m-aa, split-m-ab, ...
scp split-m-* root@...
ssh root@...
# on the server:
cat split-m-* > myfile
rm split-m-*
نکته بعدی برای نصب با داکر و پادمنه. خود داکر و پادمن رو میتونید از mirrorهای ابرآروان و وزارت ارتباطات و... روی سرورهای داخلی نصب کنید و ایمیج کانتینرها رو هم از mirrorهای داکر داخلی مثل runflare بگیرید. ما سرویسهای متعددی رو همینطوری توی قطعی اینترنت بالا آوردیم.
نکته دیگه این که SimpleX نیاز به سرتیفیکیت معتبر نداره مگر بخواید یه web server هم داشته باشه برای اطلاعرسانی در مورد خودش. که ما نیازی بهش نداریم و میتونید صرف نظر کنید.
نهایتاً بعد از بالا آوردن دو سرور XFTP و SMP، وقت وارد کردنش توی اپه. از توی لاگ هر دو سرور، میتونید آدرس سرورتون رو ببینید.
این آدرسها رو توی کلاینت خودتون در قسمت Network and Servers وارد کنید. حالا میتونید سرورهای اصلی رو غیرفعال کنید تا اتصال صرفاً از طریق سرور خودتون برقرار شه. دلیل این پیشنهاد (غیرفعال کردن سرورهای اصلی) اینه که اگه سرورهای اصلی رو فعال باقی بذارید، احتمالش هست که برنامه تلاش کنه از طریق اونها وصل بشه (چون اتصالش اولین بار به اونها بوده) و در نتیجه قطع بمونید. در شرایط قطع کامل اینترنت هم توجیهی برای فعال بودن اون سرورها نیست چون امکان اتصالشون نیست و فقط سربارن. اما طی گفتگویی که با توسعهدهنده اصلی داشتیم، توصیه کرد که این سرورها در حد امکان فعال باشن توی تنظیمات و گاهی از طریق پروکسی یا ویپیان به اونا متصل بشید یا مسیر ارتباط سرور باهاشون به طریقی برقرار شه که بتونید با افرادی در خارج از ایران ارتباط بگیرید. اما برای من لااقل این کار نکرد. همینطور اگه تونستید، سرورتون مسیری به سرورهای اصلی سیمپلایکس داشته باشه (که با ست کردن SOCKS proxy توی کانفیگ سرور ممکنه. کانفیگ بعد از اولین اجرا ساخته میشه).
همچنین مسائلی مثل پیدا کردن سرور (server discovery) و بهاشتراکگذاری تنظیمات سرور از طریق یک فایل به صورت ساده (مثل نپسترنت)، امکان تغییر آدرس سرور از طریق ثانویه و بدون دخالت کاربر (برای مواقعی مثل فیلتر شدن سرور) و... هم مطرح شده و در برنامه توسعه پروژه قرار داره.
توی این آموزش از ICE server (سرورهای TURN و STUN) که برای تماس صوتی و تصویری مورد استفاده قرار میگیرن چیزی نگفتیم چون صرفا باعث پیچیدهتر شدن فرآیند میشدن. اما اگه کسی اینها رو هم بالا آورد میتونید اون رو هم به شکل مشابهی توی تنظیمات به راحتی تنظیم کنید. همینطور میتونید از ICE serverهایی که توی شبکه داخلی کشور هستن استفاده کنید؛ احتمالاً از زیرساخت پیامرسانهای ملی.
این آدرسها رو توی کلاینت خودتون در قسمت Network and Servers وارد کنید. حالا میتونید سرورهای اصلی رو غیرفعال کنید تا اتصال صرفاً از طریق سرور خودتون برقرار شه. دلیل این پیشنهاد (غیرفعال کردن سرورهای اصلی) اینه که اگه سرورهای اصلی رو فعال باقی بذارید، احتمالش هست که برنامه تلاش کنه از طریق اونها وصل بشه (چون اتصالش اولین بار به اونها بوده) و در نتیجه قطع بمونید. در شرایط قطع کامل اینترنت هم توجیهی برای فعال بودن اون سرورها نیست چون امکان اتصالشون نیست و فقط سربارن. اما طی گفتگویی که با توسعهدهنده اصلی داشتیم، توصیه کرد که این سرورها در حد امکان فعال باشن توی تنظیمات و گاهی از طریق پروکسی یا ویپیان به اونا متصل بشید یا مسیر ارتباط سرور باهاشون به طریقی برقرار شه که بتونید با افرادی در خارج از ایران ارتباط بگیرید. اما برای من لااقل این کار نکرد. همینطور اگه تونستید، سرورتون مسیری به سرورهای اصلی سیمپلایکس داشته باشه (که با ست کردن SOCKS proxy توی کانفیگ سرور ممکنه. کانفیگ بعد از اولین اجرا ساخته میشه).
همچنین مسائلی مثل پیدا کردن سرور (server discovery) و بهاشتراکگذاری تنظیمات سرور از طریق یک فایل به صورت ساده (مثل نپسترنت)، امکان تغییر آدرس سرور از طریق ثانویه و بدون دخالت کاربر (برای مواقعی مثل فیلتر شدن سرور) و... هم مطرح شده و در برنامه توسعه پروژه قرار داره.
توی این آموزش از ICE server (سرورهای TURN و STUN) که برای تماس صوتی و تصویری مورد استفاده قرار میگیرن چیزی نگفتیم چون صرفا باعث پیچیدهتر شدن فرآیند میشدن. اما اگه کسی اینها رو هم بالا آورد میتونید اون رو هم به شکل مشابهی توی تنظیمات به راحتی تنظیم کنید. همینطور میتونید از ICE serverهایی که توی شبکه داخلی کشور هستن استفاده کنید؛ احتمالاً از زیرساخت پیامرسانهای ملی.
❤3
smpx-sample-compose.zip
2.8 KB
یه بسته نمونه کامپوز، با راهنمای ست کردن mirror داکر برای راهاندازی سریع.
❤2
Channel name was changed to «SimpleX Setup | راهاندازی سیمپلایکس»
نکته: اگه توی اپ قبل از تنظیم کردن سرورها و جایگزین کردن سرور محلی آدرس خودتون رو بسازید، میبینید که آدرس برای اتصال از طریق سرورهای اصلی ساخته شده و این تغییر نمیکنه. اون موقع باید اول برید توی Your SimpleX address، بعدش Delete Address کنید و یک آدرس جدید بسازید. آدرس جدید، از تنظیمات جدید استفاده میکنه و سرور مدنظرتون برای اتصال انتخاب میشه.
❤2
محدودیت فعلی: در صورتی که سروری که روی اون ارتباط رو با طرف مکالمهتون برقرار کردید، فیلتر بشه یا از دسترس خارج شه (مثلاً به علت مشکلات مالی)، راهی برای انتقال مکالمه به یک سرور دیگه و ادامه مکالمه در اونجا وجود نداره. در حال حاضر برای انتقال مکالمه به سرور دیگه، باید سرور اولیه آنلاین و در دسترس باشه تا دوطرف مکالمه بتونن با هم سر سرور جدید به توافق برسن.
رفع این محدودیت توی برنامه توسعه هست.
رفع این محدودیت توی برنامه توسعه هست.
❤2
پیشنهادم اینه که حتی اگه سرور راهاندازی نکردید و سرور محلیای ندارید هنوز، باز هم اپ رو نصب کنید. خصوصاً اگه کاربر iOS هستید. چون در زمان قطعی، به کارتون ممکنه بیاد و بتونید از دوستانتون نشانی سرور رو بگیرید.
❤2
کسایی که موفق به راهاندازی شدن و تمایل به بهاشتراکگذاریش داشتن، در زمانی که اینترنت قطعه شاید امکان اشتراکگذاری از طریق پیامرسانهای داخلی هم نباشه. (مثل روزهای اول قطعی که چتها رو بسته بودند). پس پیشنهادم اینه که یا همین الان تعدادی رو وصل کنید، یا زمانی که قطعی کامل (با قطعی پلتفرمهای داخلی) رخ داد حضوری وصلشون کنید. اگر قطعی به شکلی بود که پلتفرمهای داخلی کار میکردن، حتیالامکان با QR یا فایل زیپ رمز شده توی پیامرسانهای داخلی دستبهدست کنید؛ به جای انتقال متنی. در این لحظه حداقل مطمئنیم که «ایتا» متن پیامها رو برای لینک بازرسی میکنه و اونایی که با پترنشون مچ میشن، میرن برای فیلتر شدن. البته در مورد «بله» اطلاعی ندارم.
🔥4
سوالی اگر داشتید و جایی از راهنماییها شفاف نبود، توی دایرکت کانال یا کامنتها مطرح کنید و در حد اطلاع پاسخ داده میشه و اگر مطلع نبودیم، از تیم توسعهدهنده میپرسیم براتون. هرچند ایشوهای گیتهاب و گروه خود سیمپلایکس در خود اون پلتفرم هم در دسترستون هستن.
❤3
به عنوان تجربه گروهی خودم و دوستانم مینویسم: اختلال TLS به حدی زیاد بود که عملاً سیمپلایکس غیرقابل استفاده شده بود و نهایتاً هم سرورمون به خاطر مشکلات توی تمدید از دست رفت.
اگر شما هم چنین اختلالاتی دیدید و امکانش رو داشتید، به دلتاچت یا گزینههای دیگه هم فکر کنید. madmail خیلی راحتتر از سیمپلایکس راهاندازی و نگهداری میشه.
اگر شما هم چنین اختلالاتی دیدید و امکانش رو داشتید، به دلتاچت یا گزینههای دیگه هم فکر کنید. madmail خیلی راحتتر از سیمپلایکس راهاندازی و نگهداری میشه.
🙏1
