Go Back   Carder.life > [ru] Forum for Russians > Автоматический гарант-сервис



 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 02-23-2025, 09:31 AM

dog7 dog7 is offline
Banned
Join Date: Mar 2023
Posts: 1
Default


Дуров, справедливо полагает, что это авторитарные государства должны его, шифропанка, бояться, а роскомнадзоры и золотые щиты со своим DPI-фильтрами его не очень-то беспокоят»
(Политическая техника)
Моя техническая политика — проще, я могу тут расписать свои размышления по беспечным блокировкам в рунете, но полагаю, что прогрессивные граждане Modern Russian и юзеры Хабра ощутили на своей шкуре непрофессионализм действующей власти, поэтому ограничусь единственной фразой: наша техническая политика — «Цифровое Сопротивление». «обеспечение родных и близких устойчивым каналом связи».
Развертывание MTProto proxy Telegram
  • Технический уровень сложности — «несложно», если, например, следовать данной шпаргалке.

  • Уровень надежности — «выше среднего»: docker-образ работает стабильно, перезапускать его не требуется каждый день, как писали разработчики в своей официальной документации Telegram, но какие-то уязвимости контейнер наверняка содержит.

  • Уровень сопротивления/тревоги — 10 игиловцев плетут свои заговоры «родня пользуется», бан не прилетал от РКН ни разу за все время (с весны).

  • Уровень доверия — «public baby distrust», проблема на стороне клиентов (некоторые друзья подозрительно относятся к моему MtprotoProxy).

  • Уровень тестостерона — «выше не стал».

  • Финансовые затраты — «0₽».

  • Финансовое вознаграждение — «от гражданина Дурова не зависит». Поощрение — возможность навязывание рекламы.


Поднимать наш TelegramProxy будем на «бесплатных/персональных» мощностях Amazon-ec2: t2.micro. Я использовал https://aws.amazon.com/marketplace/p...nux/B01M26MMTT машину.
Окей, развернули свой бесплатный сервер, переходим на официальный сайт https://hub.docker.com/r/telegrammessenger/proxy/ и скачиваем docker-контейнер.
Не нужно искать какой-то образ, файл, или волшебную кнопку — «их нет», вся магия делается в CLI:
Code:
$ docker pull telegrammessenger/proxy #образ скачан.

Но перед «этим» установите docker для CLI:
Code:
sudo apt-get install docker.io docker

Далее, в официальной документации MtprotoProxyTelegram нам предлагают сделать примерно следующее, делаем:
Code:
$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

После этой команды в выводе терминала появится HEX-строка, но она нам не интересна.
Пишем в CLI:
Code:
$ docker logs mtproto-proxy

И получаем нужные данные:

В выводе данного лога нам показывают (замазал):
А) наш ip сервера (внешний ip сервера);
Б) и случайный секрет — случайная строка в HEX.
Перед тем, как зарегать наш MtproProxy, нужно настроить главный файрволл над iptables (как бы вы не перенаправляли трафик на данной VPC, он будет непослушный, так как самый главный файрволл в Amazon-EC2 находится в web-интерфейсе и имеет более высокий приоритет над iptables).
Заходим в «https://signin.aws.amazon.com/signin...rceMobileApp=0 Amazon-EC2» в Security Group и открываем входящий 443 порт (логичная маскировка https://ru.wikipedia.org/wiki/HTTPS на первое время).

Берём из лога наши данные «ip и секрет» и идем в мессенджер Telegram, находим официальный MTProxy Admin Bot (@MTProxybot) и регистрируем наш MtproProxy: запускаем команду [/newproxy] и вводим [наш_ip:443], а потом и наш [секрет/HEX].
Если накосячите при вводе данных, бот будет сердиться и слать вас на…
Если две строчки заполните без ошибок, то получите одобрение и рабочую ссылку, на ваш действующий MtprotoProxyTelegram, которым вы можете поделиться с кем угодно.

Также через данного бота можно добавить Ваш спонсоркий канал (но не чат), где Вы будете ваши взгляды навязывать пользователям, которые подключились к вашему серверу, а можно не «спамить», и не беспокоить своих будучи-потенциальных клиентов, не показывая канал в закрепленном списке мессенджера.
Еще пару слов о боте, там можно запрашивать статистику, но «тоже бублик». Видимо «статистика» доступна, когда за тобой Махачкала «толпа нахлебников».
Мониторинг
А сколько мы можем подключить юзеров на наш сервер? И вообще, кто/что там? Чего? И сколько?
Смотрим, что там по официальной документации… Ага, вот, сделать так:
Code:
$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI

. «Держи карман шире» По предложенным командам мы всегда будем получать подобную ошибку:
«curl: (7) Failed to connect to localhost port 2398: В соединении отказано»
Прокси наш будет работать. Но! Бублик, а не статистику мы получим.
Можно заняться делами для красноглазиков: проверить
Code:
$ netstat -an | grep 2398 и...

Сначала я подумал, что это очередной косяк за разработчиками Telegram (и я до сих пор так думаю), потом нашёл временное неплохое решение: полирнуть напильником Docker-Контейнер.
Наш прокси прозападный, ни каких проблем/блокировок за весенние и прохладные летние деньки я не встретил, на творческую задачку это тоже не тянуло, поэтому потерей темпа не занимался и префикс dd* к ключу не добавлял.
Мануал «получение статистики/мониторинг» по официальной инструкции MtprotoProxyTelegram — нерабочий/устаревший, придется чинить docker-образ.
Чиним.
Контейнер у нас всё еще запущен:
Code:
$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

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

Проверим статистику:
Code:
$ curl http://localhost:2398/stats

curl: (7) Failed to connect to 0.0.0.0 port 2398: В соединении отказано
Статистика всё еще недоступна .!..
Узнаем идентификатор docker-контейнера:
Code:
$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" About an hour ago Up About a minute 0.0.0.0:443->443/tcp mtproto-proxy2
Идём со своим уставом внутрь docker-контейнера:
Code:
$ 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", что- то вроде этого должно получиться:
Code:
«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 (сохранить/выход из nano/выход из контейнера).
Перезапускаем наш docker-контейнер:
Code:
$ docker restart mtproto-proxy2

Всё, теперь по команде:
Code:
$ curl http://localhost:2398/stats #получаем объемную статистику


В статистике много «мусора» (на скрине 1/3 её часть), создаём alias:
Code:
$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bas

h Получаем то, ради чего полировали docker-контейнер: кол-во подключений и нагрузку:
Code:
$ telega


Docker-контейнер работает, статистика крутится.
Затраченные ресурсы
Как бы ты не был крут Стюарт Редман даже ты оставляешь след от го.на на своих трусах. Работающий Docker-образ оставляет немаленький след.
Расписывать преимущества и недостатки docker-образов не имеет смысла, docker-контейнер — это мини-виртуальная машина, потребляющая ресурсы менее, чем «реальная» виртуальная машина, например VirtualBox, но потребляющая.
1) Запущен со статистикой docker-образ или без неё, два клиента резвятся или десять — ресурсы утилизируются ~одинаково: 75% от всей производительности CPU t2.micro.
2) Смотрим мониторинг VPC-сервера:

Из графика утилизации ресурсов на VPC видим, что docker-контейнер потребляет постоянно ~7,5% от общей макс. производительности CPU и 28 мая был остановлен мною намеренно/временно (Примечание — на сервере так же крутятся OpenVPN & pptp).
Почему 10% постоянной загрузки CPU — это предел для данного сервера?
Потому что есть ограничения со стороны Amazon EC2 и исчисляются они в кредитах:

1 кредит CPU = 1 ЦП, работающему со 100% загрузкой в течение одной минуты, а у нас кредитов 6 (то есть в пиках 100%-я утилизация CPU возможна в течении 6 минут, а дальше мощность CPU снизится). Другие комбинации: например, 1 кредит CPU = 1 ЦП, работающему с 50%-й нагрузкой в течение двух минут (то есть мы можем исполльзовать CPU с 50%-й нагрузкой в течении 12 минут), или, пример, постоянной 10%-й нагрузкой CPU в течение всего времени и д.п
Выводы
  • Мы частичка «Цифрового Сопротивления». Обеспечили своих «пап и мам» надежным каналом связи.

  • Если на сервере у вас будет развернут MtprotoProxyTelegram и OpenVPN, но не более, задержек/пингов/сбоев не будет, но если вы постоянно экспериментируете со своим t2/micro, то ждите тормозов по связи.

  • Мой заокеанский пинг ~100-250мс, задержек в речевой связи не ощущается.

  • Финансовые затраты на все «это» (в том числе и ресурсы VPC) = 0₽.


 

Tags
NULL


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump




All times are GMT. The time now is 07:29 PM.