صفر تا صد نحوه ساخت و راه‌اندازی پروتکل MTProto تلگرام بسیار راحت، بر روی سرور ابونتو

صفر تا صد نحوه ساخت و راه‌اندازی پروتکل MTProto تلگرام بسیار راحت، بر روی سرور ابونتو حداقل زمان خواندن : 6 دقیقه

توسط مدیرسایت به آموزش در آگوست 29, 2019

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

https://starino.ir

اصلا این پروتکل MTProto چیه؟

پروتکل امنیتی MTProto مخفف Mobile Telegram Protocol هست و تلگرام حدودا یک سال پیش آن را معرفی کرد. در حال حاضر که این مطلب در حال نگارش هست، نسخه دوم این پروتکل ارائه شده و تلگرام در حال توسعه آن است.

معرفی این پروتکل باعث شد که هر شخص یا سازمانی بتواند به راحتی یک سرور MTProto راه‌اندازی کند و اگر تمایل داشت به صورت رایگان در اختیار سایرین قرار دهد.

البته در نظر داشته باشید که IP این سرورها به راحتی فیلتر می‌شوند، سعی کنید بیشتر استفاده شخصی یا شرکتی داشته باشید. تلگرام برای دوستانی هم که به صورت رایگان پروکسی‌های MTProto خود را در اختیار سایرین قرار می‌دهند قابلیتی گذاشته است که صاحبان سرور می‌توانند در صورت نیاز، یک کانال را در تلگرام هر شخص که از سرور آن استفاده کرده، تبلیغ کنند.

پروتکل MTProto وظیفه انتقال پیام‌های رمزنگاری شده به صورت Client to Client رو در یک ارتباط کاربر به کاربر به عهده دارد. در این صورت پیام‌ها فقط برای فرستنده و گیرنده پیام، قابل رمزگشایی و مشاهده است و حتی سرور هم نمی‌تواند پیام‌ها را رمزگشایی کند. پس خیال‌تان از بابت این پروتکل راحت! من میرم سراغ آموزش.

پیش‌نیازهای راه‌اندازی سرور پروکسی MTProto

  • اول از همه یک وی‌پی‌اس خارج تهیه کنید. با رم ۵۱۲ مگابایت هم کار شما انجام می شود و نیاز نیست خیلی هزینه کنید.
  • سیستم عامل ابونتو ورژن ۱۶ به بالا باشه بهتره. این مورد هم هنگام خرید وی‌پی‌اس میشه مشخص کرد و به صورت خودکار نصب میشه روی وی‌پی‌اس. (علت اینکه روی ویندوز سرور این پروتکل رو راه‌اندازی نکردم بخاطر پایدار نبودن آن بود. و من تجربه بهتری روی لینوکس برای این مورد داشتم و ویندوز منابع زیادی رو مصرف می‌کرد. برا همین از آموزش رو سیستم عامل ویندوز صرف نظر می‌کنم).
  • نرم‌افزار Bitvise SSH Client برای اتصال به سرور. این نرم‌افزار فوق‌العادس. (برنامه‌ی دیگه‌ای مدنظرتون بود برای اتصال به سرور هم مشکلی نیست).
  • نیم ساعت زمان برای راه‌اندازی سرور ام‌تی‌پروتو 

نحوه راه‌اندازی پروکسی MTProto در سیستم عامل ابونتو

  • ابتدا با برنامه Bitvise یا هر برنامه‌ای که باهاش راحت هستید به سرور وصل بشید.
  • نصب کتابخانه‌های OpenSSl و Zlib

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

برای کارمون نیاز به نصب این دو کتابخانه داریم که در ابونتو یا دبیان از دستور زیر استفاده می‌کنیم:

apt install git curl build-essential libssl-dev zlib1g-dev

نصب کتابخانه‌های OpenSSl و Zlib در ابونتو

برای ادامه “Y” را تایپ و اینتر را بزنید.

اگر هم از CentOS یا RHEL استفاده می‌کنید، دستور زیر را وارد کنید:

yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"

  • Clone کردن ریپازیتوری (Repository) از گیت‌هاب

فایل‌های اصلی MTProto رو می‌توانید از طریق این ریپازیتوری کلن کنید. این رو حدود چند ماهه تست کردم و مشکلی نداره.

با دستور زیر ریپازیتوری مورد نظر را کلن کنید که این فایل‌ها به سرور شما منتقل شود:

git clone https://github.com/TelegramMessenger/MTProxy

Clone کردن ریپازیتوری (Repository) از گیت‌هاب

حال که به درستی محتویات به سرور شما منتقل شد و پیغام Done رو دریافت کردید، با دستور زیر وارد پوشه MTProto شوید:

cd MTProxy

وارد شدن به پوشه MTProxy

برای ساخت پوشه و فایلای باینری مورد نیاز برای تنظیمات پروکسی این دستور را وارد کنید: (این دستور باید در مسیر پوشه MTProxy زده شود).

make && cd objs/bin

برای ساخت پوشه و فایلای باینری مورد نیاز برای تنظیمات پروکسی این دستور را وارد کنید
  • حالا وقت تنظیمات پروکسی و ساخت سرویس‌های مورد نظر هست

اتصال به سرورهای تلگرام برای ساخت فایل سکرت (Secret) که با دستور زیر انجام می‌شود:

curl -s https://core.telegram.org/getProxySecret -o proxy-secret

در واقع با این دستور در پوشه bin فایل proxy-secret ساخته میشه.

اتصال به سرورهای تلگرام برای ساخت فایل کانفیگ پروکسی که با دستور زیر انجام می‌شود:

curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

در واقع با این دستور در پوشه bin فایل proxy-multi.conf ساخته میشه.

تولید سکرت اختصاصی که اون رو باید کپی و ذخیرش کنید. با دستور زیر می‌تونید یک سکرت جنریت کنید:

head -c 16 /dev/urandom | xxd -ps

تولید سکرت اختصاصی

مطابق تصویر بالا که ملاحظه می‌کنید، سکرت ساخته شد و اون رو انتخاب و کپی کنید در یک فایل تکست که بعدا لازمش داریم.

  • اجرا کردن mtproto-proxy

با دستور زیر، در تنظیمات پروکسی، یوزرنیم، پورت یوزر، پورت لوکال و سکرت را ست می‌کنید:

./mtproto-proxy -u nobody -p 8888 -H 443 -S [secret] --aes-pwd proxy-secret proxy-multi.conf -M 1

در دستور بالا، بجای “[secret]”، سکرتی که مرحله قبل بهتون داد را جایگزی کنید.

دقت داشته باشید که دستور بالا را باید در مسیر objs/bin وارد کنید. برای اینکار cd objs و cd bin را بزنید.

اگر دستور بالا رو درست زده باشید، تصویر زیر برایتان ظاهر میشه.

اجرا کردن mtproto-proxy
  • ساخت لینک پروکسی برای اشتراک

تقریبا ۹۰ درصد کار پیش رفت و شما طبق الگویی که خود تلگرام در نظر گرفته، لینک پروکسی‌تون رو می‌سازید:

tg://proxy?server=SERVER_NAME&port=PORT&secret=SECRET

در این لینک بجای “SERVER_NAME”، باید IP سرورتون و همچنین بجای “SECRET” باید سکرتی که در چند مرحله قبل ساختید را بزارید.

  • مرحله آخر: پیکربندی و ساخت سرویس MTProxy.service برای استارت خودکار

توی این مرحله سرویس ام‌تی‌پروکسی رو می‌سازیم که همیشه باید در حال اجرا باشه که پروکسی‌مون کار کنه. برای ساختش دستور زیر رو می‌زنیم:

nano /etc/systemd/system/MTProxy.service

ساخت سرویس MTProxy.service

با دستور بالا به محیط ادیتور لینوکس وارد می‌شویم که باید محتویات زیر را واردش کنیم:

[Unit]
Description=MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/root/MTProxy/objs/bin
ExecStart=/root/MTProxy/objs/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S [SECRET] --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure
[Install]
WantedBy=multi-user.target

دقت کنید در دستورات بالا، مسیر پوشه MTProxy خیلی مهمه که درست انتخاب بشه. مثلا بعضی موارد این مسیر بجای اینکه در root/MTProxy/objs/bin باشه، در مسیر opt/MTProxy/objs/bin قرار داره که در دستور بالا اصلاحش می‌کنیم.

وقتی دستورات بالا را در ادیتور لینوکس نوشتید، دکمه کنترل + X را بزنید.

دستور زیر را وارد نمایید:

systemctl daemon-reload

  • تست سرویس MTProxy

دستورات زیر به کارتون میاد برای بررسی سرویس پروکسی:

برای ریست کردن سرویس از دستور زیر:

systemctl restart MTProxy.service

برای بررسی کردن وضعیت سرویس:

systemctl status MTProxy.service

اگه همه چی رو درست انجام داده باشید با زدن دستور بالا، باید وضعیت مطابق تصویر زیر باشه و اروری دریافت نکنید:

تست سرویس MTProxy

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

systemctl enable MTProxy.service

از الان به بعد دیگه می‌تونید لذت ببرید و به همین سادگی یه سرور پروکسی MTProto ایجاد کردید.

5/5 (1 Review)

دسته های بلاگ

نظرات ارزشمند خود را به اشتراک بگذارید

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.