استقرار MTProxy تلگرام خود با آمار

استقرار MTProxy تلگرام خود با آمار

"من این آشفتگی را به ارث برده ام،
شروع با زلو بی شرم. لینکدین
و در پلتفرم تلگرام با «همه دیگران» ختم می شود
در دنیای من.

و سپس سکسکه،
این مسئول با عجله و با صدای بلند اضافه کرد:
اما من همه چیز را مرتب خواهم کرد (اینجا در IT)"
(...).

دوروف، به درستی معتقد است که این دولت های مستبد هستند که باید از او بترسند، یک سایفرپانک، و Roskomnadzor و سپرهای طلایی با فیلترهای DPI خود واقعاً او را آزار نمی دهند.
(تکنیک سیاسی)

خط مشی فنی من ساده تر است، می توانم در اینجا افکار خود را در مورد مسدود کردن بی دقت در RuNet شرح دهم، اما معتقدم که شهروندان مترقی کاربران روسی مدرن و هابر غیرحرفه ای بودن دولت فعلی را در پوست خود احساس کرده اند، بنابراین خودم را به این محدود می کنم. یک عبارت واحد: سیاست فنی ما "مقاومت دیجیتال" است. "ارائه کانال ارتباطی پایدار برای بستگان و دوستان."

استقرار پروکسی MTProto تلگرام

  • سطح فنی پیچیدگی "آسان" است، اگر، برای مثال، این برگه تقلب را دنبال کنید.
  • سطح قابلیت اطمینان "بالاتر از حد متوسط" است: تصویر داکر به طور پایدار کار می کند، همانطور که توسعه دهندگان در اسناد رسمی تلگرام خود نوشتند، نیازی به راه اندازی مجدد آن هر روز نیست، اما کانتینر احتمالا دارای آسیب پذیری هایی است.
  • سطح مقاومت / اضطراب - 10 عضو داعش توطئه های خود را "بستگان استفاده می کنند" می زنند، این ممنوعیت حتی یک بار هم (از بهار) از RKN نیامده است.
  • سطح اعتماد "بی اعتمادی عمومی کودک" است، یک مشکل در سمت مشتری (برخی از دوستان به MtprotoProxy من مشکوک هستند).
  • سطح تستوسترون - "بالاتر نشد."
  • هزینه های مالی - "0₽".
  • پاداش مالی - "به شهروند دوروف بستگی ندارد." ارتقاء - توانایی تحمیل تبلیغات.

ما پروکسی تلگرام خود را در ظرفیت‌های «رایگان / شخصی» Amazon-ec2: t2.micro افزایش خواهیم داد. من استفاده کردم این ماشین.

خوب، سرور رایگان خود را مستقر کردید، به وب سایت رسمی بروید داکرهاب و کانتینر داکر را دانلود کنید.

نیازی نیست به دنبال تصویر، فایل یا دکمه جادویی بگردید - "آنها آنجا نیستند"، همه جادوها در CLI انجام می شود:

$ docker pull telegrammessenger/proxy #образ скачан.

اما قبل از "آن"، docker را برای CLI نصب کنید:

sudo apt-get install docker.io docker

علاوه بر این، در مستندات رسمی MtprotoProxyTelegram، به ما پیشنهاد شده است که کاری مانند موارد زیر را انجام دهیم:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

پس از این دستور، یک رشته HEX در خروجی ترمینال ظاهر می شود، اما ما به آن علاقه ای نداریم.

ما در CLI می نویسیم:

$ docker logs mtproto-proxy

و ما داده های مورد نیاز را دریافت می کنیم:

استقرار MTProxy تلگرام خود با آمار
در خروجی این گزارش، ما نشان داده شده است (لکه دار):

الف) آی پی سرور ما (IP سرور خارجی)؛
ب) و یک راز تصادفی - یک رشته تصادفی در HEX.

قبل از ثبت MtproProxy ما، باید فایروال اصلی را روی iptables پیکربندی کنید (مهم نیست که چگونه ترافیک را به این VPC هدایت کنید، بد خواهد بود، زیرا فایروال اصلی در Amazon-EC2 در رابط وب قرار دارد و اولویت بیشتری نسبت به آن دارد. iptables).

می رویم به "کنسول Amazon-EC2" در گروه امنیتی و باز کردن پورت ورودی 443 (ماسک کردن منطقی ترافیک برای اولین بار).

استقرار MTProxy تلگرام خود با آمار

داده‌های «ip and Secret» خود را از لاگ می‌گیریم و به پیام‌رسان تلگرام می‌رویم، ربات مدیریت رسمی MTProxy (MTProxybot@) را پیدا می‌کنیم و MtproProxy خود را ثبت می‌کنیم: دستور [/newproxy] را اجرا کرده و [our_ip:443] را وارد کنید، و سپس [مخفی / HEX] ما.

اگر هنگام وارد کردن داده ها به هم ریخته باشید، ربات عصبانی می شود و شما را به ...

اگر دو خط را بدون خطا پر کنید، تأییدیه و یک پیوند فعال به MtprotoProxyTelegram فعلی خود دریافت خواهید کرد، که می توانید آن را با هرکسی به اشتراک بگذارید.

استقرار MTProxy تلگرام خود با آمار

همچنین از طریق این ربات می‌توانید کانال اسپانسر خود را اضافه کنید (اما نه یک چت)، که در آن دیدگاه‌های خود را به کاربرانی که به سرور شما متصل شده‌اند تحمیل کنید، یا نمی‌توانید «اسپم» کنید و مشتریان بالقوه خود را بدون آن‌ها آزار ندهید. نمایش کانال در لیست پیام رسان پین شده

چند کلمه بیشتر در مورد ربات، که در آن می توانید آمار درخواست کنید، اما "همچنین یک دونات". ظاهراً «آمار» زمانی در دسترس است که «انبوهی از مفت‌خورها» پشت سر ماخاچکالا باشید.

نظارت

چند کاربر می توانیم به سرور خود متصل کنیم؟ و به هر حال، چه کسی / چه چیزی وجود دارد؟ چی؟ و چند تا؟

ما طبق اسناد رسمی به آنچه وجود دارد نگاه می کنیم ... بله، اینجا، این کار را به این صورت انجام دهید:

$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.

"جیب خود را بازتر نگه دارید" طبق دستورات پیشنهادی، همیشه یک خطای مشابه دریافت خواهیم کرد:

«curl: (7) اتصال به پورت localhost 2398 انجام نشد: اتصال رد شد»

پروکسی ما کار خواهد کرد. ولی! باگل، نه آماری که به دست می آوریم.

شما می توانید کارهایی را برای چشم قرمز انجام دهید: بررسی کنید

$ netstat -an | grep 2398 и...

ابتدا فکر کردم که این یکی دیگر از موانع پشت توسعه دهندگان تلگرام است (و هنوز هم همینطور فکر می کنم)، سپس یک راه حل موقت خوب پیدا کردم: کانتینر Docker را با یک فایل جلا دهید.

بعداً یک اینفا نظرم را جلب کرد:

در مورد رقص های دولتی Roskomnadzor حول "آمار".

ما برخی از پراکسی های عمومی را در سرورهای خود با استفاده از پایگاه داده پروژه فایرهول مسدود کرده ایم. این پروژه لیست ها را با پراکسی های عمومی نظارت می کند و با آنها پایگاه داده می سازد.

از آن لحظه (یعنی تقریباً دو روز پیش) هیچ یک از آدرس IP پروکسی روسی ما مسدود نشده است.

3. ما به شما می گوییم که چگونه یک پروکسی بسازید که تقریباً برای Roskomnadzor آسیب ناپذیر است و یک اسکریپت برای مسدود کردن پراکسی های عمومی به اشتراک بگذارید.

- کانتینر (یا دیمون) پروکسی MTProto را به آخرین نسخه به روز کنید: RKN نسخه های قدیمی را توسط درگاه آمار محاسبه می کند که به 0.0.0.0 محدود شده بود و به طور منحصر به فرد خود را برای کل اینترنت شناسایی می کرد. بهتر است پورت های لازم را با استفاده از iptables باز کنید و بقیه را ببندید (به یاد داشته باشید که در مورد کانتینر داکر باید از قانون FORWARD استفاده کنید).

— Roskomnadzor مدت‌ها پیش یاد گرفت که چگونه ترافیک را تخلیه کند: آنها درخواست‌ها را در پروکسی‌های HTTP و SOCKS5 می‌بینند، و همچنین نسخه قدیمی مبهم‌سازی پروکسی MTProto را می‌بینند.

هنگامی که مشتریان برخی از ارائه دهندگانی که چنین Dump هایی را نصب کرده اند از طریق چنین پراکسی هایی به تلگرام دسترسی پیدا می کنند، RKN چنین درخواست هایی را مشاهده می کند و بلافاصله این پروکسی ها را مسدود می کند. همین امر در مورد پراکسی MTProto با مبهم سازی قدیمی نیز صدق می کند.

راه حل: فقط با dd در ابتدا به کلاینت هایی که به پروکسی متصل می شوند راز را توزیع کنید (نیازی به تعیین حروف اضافی dd در تنظیمات خود پروکسی mtproto نیست). این یک نسخه از مبهم سازی را فعال می کند که dumppiles نمی تواند آن را تشخیص دهد.

و بدون پروکسی HTTP یا SOCKS5.

- تنظیمی که با کمک آن هر صاحب یک پروکسی تلگرام که به طور مرتب توسط RKN بن شده است، می تواند به طور کامل (یا تقریباً به طور کامل) مسدودسازی را متوقف کند (و در عین حال مطمئن شود که RKN دروغ می گوید).

اسکریپتی که پروکسی های عمومی را ممنوع می کند و یک کتابچه راهنمای کوچک برای آن.

منبع

پروکسی ما طرفدار غرب است، در روزهای سرد بهار و تابستان با مشکل / انسداد مواجه نشدم، کار خلاقانه ای هم به خود جلب نکرد، بنابراین سرعتم را از دست ندادم و پیشوند dd* را به آن اضافه نکردم. کلید.

کتابچه راهنمای «دریافت آمار/نظارت» طبق دستورالعمل رسمی MtprotoProxyTelegram کار نمی کند/ قدیمی نیست، شما باید تصویر داکر را تعمیر کنید.

ما آن را تعمیر می کنیم.

کانتینر هنوز در حال کار است:

$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=ваш_предыдущий_секрет_hex telegrammessenger/proxy:latest

بیایید آمار را بررسی کنیم:

$ curl http://localhost:2398/stats

curl: (7) اتصال به پورت 0.0.0.0 انجام نشد 2398: اتصال رد شد
آمار هنوز در دسترس نیست.!

شناسه کانتینر داکر را بیابید:

$ docker ps

CONTAINER ID IMAGE Command CREATED STATUS PORTS NAME
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" حدود یک ساعت پیش تا حدود یک دقیقه 0.0.0.0:443->443/tcp mtproto-proxy2

ما با منشور خود به داخل کانتینر داکر می رویم:

$ sudo docker exec -it f423c209cfdc /bin/bash

$ apt-get update
$ apt-get install nano
$ nano -$ run.sh

و در آخرین خط اسکریپت "run.sh" پرچم گم شده را اضافه کنید:

«--http-stats»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

"--http-stats" را اضافه کنید، چیزی شبیه به این باید کار کند:

«exec /usr/local/bin/mtproto-proxy -p 2398 --http-stats -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD»

Ctrl+o/Ctrl+x/Ctrl+d (ذخیره/خروج از نانو/خروج ظرف).

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

$ docker restart mtproto-proxy2

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

$ curl http://localhost:2398/stats #получаем объемную статистику

استقرار MTProxy تلگرام خود با آمار
تعداد زیادی "زباله" در آمار وجود دارد (1/3 آن روی صفحه است)، نام مستعار ایجاد کنید:

$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash

ما دریافت می کنیم که ظرف داکر برای آن صیقل داده شده است: تعداد اتصالات و بار:

$ telega

استقرار MTProxy تلگرام خود با آمار
کانتینر Docker در حال اجرا است، آمار در حال چرخش است.

منابع مصرف شده

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

توصیف مزایا و معایب تصاویر docker بی معنی است، یک داکر کانتینر یک ماشین مجازی کوچک است که نسبت به یک ماشین مجازی "واقعی" مانند VirtualBox منابع کمتری مصرف می کند، اما این کار را می کند.

1) راه اندازی با یا بدون آمار docker-image، دو کلاینت سرگرم کننده یا ده منبع ~ به یک روش استفاده می شود: 75٪ از کل عملکرد t2.micro CPU.

2) ما به نظارت سرور VPC نگاه می کنیم:

استقرار MTProxy تلگرام خود با آمار

از نمودار استفاده از منابع در VPC، می بینیم که کانتینر docker دائماً 7,5٪ از حداکثر کل را مصرف می کند. عملکرد CPU و در 28 می توسط من به طور عمدی/موقت متوقف شد (توجه - OpenVPN و pptp نیز روی سرور در حال اجرا هستند).

چرا 10% مصرف ثابت CPU برای این سرور محدودیت دارد؟

زیرا محدودیت هایی از طرف Amazon EC2 وجود دارد و آنها به صورت اعتبار محاسبه می شوند:

استقرار MTProxy تلگرام خود با آمار

1 اعتبار CPU = 1 CPU با بار 100% برای یک دقیقه کار می کند و ما 6 اعتبار داریم (یعنی در اوج استفاده 100٪ از CPU در عرض 6 دقیقه امکان پذیر است و سپس قدرت CPU کاهش می یابد). ترکیبات دیگر: به عنوان مثال، 1 اعتبار CPU = 1 CPU که با 50 درصد بار به مدت دو دقیقه کار می کند (یعنی می توانیم از CPU در 50 درصد بار برای 12 دقیقه استفاده کنیم)، یا به عنوان مثال، بار ثابت 10٪ CPU در طول تمام مدت و غیره

یافته ها

  • ما بخشی از "مقاومت دیجیتال" هستیم. یک کانال ارتباطی قابل اعتماد برای "پدران و مادران" خود فراهم کرد.
  • اگر MtprotoProxyTelegram و OpenVPN را روی سرور مستقر کرده اید، اما بیشتر از این، هیچ تاخیر / پینگ / خرابی وجود نخواهد داشت، اما اگر دائماً با t2 / micro خود آزمایش می کنید، منتظر ترمزهای ارتباطی باشید.
  • پینگ خارج از کشور من 100-250 میلی ثانیه است، هیچ تاخیری در ارتباط صوتی وجود ندارد.
  • هزینه های مالی برای همه "این" (از جمله منابع VPC) = 0₽.

مقاله خود را تجدید چاپ کنید.

UPD: با تشکر از برخی از habrausers برای نظرات مفید، در واقع، این امکان وجود دارد (آیا آمار پشتیبانی می شود؟)، آنالوگ های بهتری از تصویر داکر تلگرام پروکسی رسمی Mtproto وجود دارد.

منبع: www.habr.com

اضافه کردن نظر