Comments 261
Он не нужен ни для запуска одного единственного бинарника ни для работы, в принципе, вообще.
это не пакетный менеджер… как-же вы адепты зае… всюду его впихивать.
Прости нас
А ну и да, кластер для докера вам любой нормальный хостер через веб-мордочку развернет в два клика. Можно без каких-либо знаний администрирования это сделать.
Еще и балансировка из коробки и много чего еще…
Вообще, сложно ли со стороны вычислить сколько пользователей прокси?
Вообще, Паша работает, не унывает)
Нет никаких логинов и паролей. Есть ключ сервера и всё.
https://habr.com/post/359348/#comment_11373110 shifttstas — 26 мая в 14:04 — Telegram MTPROTO Proxy — всё что мы знаем о нём; stek29 26.05.18
Недавно подобная статья была на TJournal, где Даша aka koteeq из VeeSecurity дала неплохое описание протокола "obfuscated2", который используется в том числе для "mtproto proxy". Процитирую:
Обфускация "anti-DPI" там простая. Генерят на клиенте случайный 32-байтовый ключ и 16-байтовый IV, ими шифруют пакет с AES CTR и отправляют. При этом сами ключ и IV отправляются перед зашифрованной нагрузкой.
В итоге, если вы провайдер, вам нужно ВСЕГО ЛИШЬ брать от каждого исходящего пакета 8-40 байты (ключ) и 40-56 байты (IV), расшифровывать содержимое (64-… байты). В расшифрованном содержимом уже вполне стандартный mtproto-формат, где первые 8 байт — сигнатура авторизационного ключа.
Пример реализации
https://github.com/makkarpov/mtoxy/blob/master/src/main/java/ru/makkarpov/mtoxy/network/Obfuscated2Handshaker.java https://github.com/danog/MadelineProto/blob/master/src/danog/MadelineProto/Connection.php#L128
Спасибо. Цитаты из http://telegra.ph/telegram-blocks-wtf-05-26
Во-первых, клиент общается с MTPROTO-прокси только с обфускацией obfuscated2.
Во-вторых, obfuscated2 здесь используется чуть модифицированный. Перед зашифрованной частью всё так же открыто передаются ключ и IV, только вот шифруется сам пакет не этим ключом, а sha256(key+secret). Secret — это тот самый 16-байтовый параметр, который вы заполняете при подключении к MTPROTO-прокси.
Secret нигде не передаётся в процессе связи. Его использует клиент для шифрования пакета и MTPROTO-прокси-сервер для расшифрования.
MTPROTO-прокси-сервер получает от вас пакет, деобфусцирует его ключом sha256(key+secret), затем снова обфусцирует, но уже используя обычный obfuscated2 без дополнительных параметров.
и про obfuscated2
официальные же клиенты используют дополнительный слой обфускации, нигде не документированный. Товарищ Tomas Susanka уже максимально подробно описал используемый метод обфускации пакетов, поэтому расписывать всё не буду.
Клиент придумывает случайный 32-байтовый ключ и случайный 16-байтовый Initialization Vector, которыми шифрует каждый пакет с помощью AES CTR, а чтобы сервер узнал, как это расшифровать… ключ и IV добавляются в начало пакета перед зашифрованным содержимым.…
После обфускации все пакеты выглядят как случайный мусор, поэтому для определения, Telegram-трафик это или нет, провайдеру придётся расшифровывать каждый непонятный пакет по методике obfuscated2, прежде чем проводить дальнейшие проверки. Такие действия требуют неоправданное количество вычислительных мощностей, которых у провайдеров попросту нет.
В http://telegra.ph/telegram-blocks-wtf-05-26 разъяснили, что протокол obfuscated2 был изменен, теперь у клиента и сервера есть общий secret (у сервера — один из 16), который участвует в создании ключа для данных. У DPI секрета нет, он видит лишь двоичный поток. Даша для расшифровки в Wireshark должна ввести secret в дешифровщик.
В оригинальном obfuscated2 (к которому и относится фраза "неоправданное количество вычислительных") полный ключ и данные передавались вместе.
На порту 443 не должно ничего быть (nginx, apache)
А если на 443 порту уже что-то висит?
TAG должна остаться переменной окружения. И при прямом запуске без docker.
Там же можно найти ссылку на установку (в шапке) установится на iOS без джейлбрейка
itunes.apple.com/ru/app/telegram-x/id898228810?mt=8
Но два поста лучше чем один =)
Устроим недели Telegram на Habr!
Я так понял, что порт задан где-то скрыто в настройках контейнера, потому что при запуске прокси с параметром "-p 8888", например, статистику можно смотреть именно на этом порту. Об этом и в README написано.
На Telegram X не заработало, на виндовом клиенте тоже.
В порыве отчаяния пробовал прописывать как SOCKS5 и HTTP — ноль на массу.
По делу: Мне кажется надо включить IPv6 флагом
--ipv6/-6
и после изменить файл .conf, удалив все IPv4 сервера и добавив IPv6.Этому попробовал подсунуть такой конфиг:
proxy_for 1 [2001:0b28:f23d:f001:0000:0000:0000:000a]:443;
proxy_for 2 [2001:067c:04e8:f002:0000:0000:0000:000a]:443;
proxy_for 3 [2001:0b28:f23d:f003:0000:0000:0000:000a]:443;
proxy_for 4 [2001:067c:04e8:f004:0000:0000:0000:000a]:443;
proxy_for 5 [2001:0b28:f23f:f005:0000:0000:0000:000a]:443;
Стартует, к серверам этим вроде подключается, но клиент через такое прокси не работает.
[5][2018-05-30 19:28:32.081214 local] failed to set rlimit for open files. Try running as root or requesting smaller maxconns value.
[5][2018-05-30 19:28:32.081230 local] fatal: cannot raise open file limit to 65552
запускайте в привилегированном режиме:
docker run -d -p 443:443 --name=mtproto-proxy --privileged --restart=always -v proxy-config:/data telegrammessenger/proxy
Просто запускаю контейнер. Детали ошибки тут: https://github.com/TelegramMessenger/MTProxy/issues/7
В комментариях другой публикации подсказали правильный способ обхода ошибки:
docker run -d -p 443:443 --name=mtproto-proxy --ulimit nofile=98304:98304 --restart=always -v proxy-config:/data telegrammessenger/proxy
я тут недавно разбирался с их протоколом, официальный прокси во-первых соединяется с ещё одним уровнем проксей — middleware proxies. Во-вторых он общается с ними по протоколу mtproto, оборачивая каждый кусок отправляемых данных в rpc-вызов протокола mtproto и добавляя примерно 96 байт оверхэда. На загрузку больших файлов не должно влиять, а вот на latency и на объем исходящего трафика при маленьких сообщениях — может
Компания Apple заблокировала обновление мессенджера Telegram по всему миру с середины апреля 2018 года. Об этом сообщается в разделе ответов на «часто задаваемые вопросы» на сайте приложения.
Рассказывая о последних изменениях в законе о персональных данных, известном как General Data Protection Regulation (GDPR), команда мессенджера сообщила: «К сожалению, Apple блокирует Telegram от обновления iOS-приложения глобально с середины апреля».
Telegram X например стабильно обновляется на rink.hockeyapp.net/apps/c6f5a76f5c364ac89a98b77671ef2d63
По умолчанию запускается два процесса прокси-сервера (с предположением, что каждому система выделит по ядру).
Почему именно 2? Можно же узнать, сколько аппаратных потоков поддерживается в данной системе.
Т.е. купить там-то (ip — уже не забанены) и сделайте то-то…
Потом раздайте друзьям/знакомым…
rancher.com/docs/rancher/v1.6/en/hosts/#supported-docker-versions
emerge -av app-emulation/docker
curl -sSL https://get.docker.com/ | sh
x86_64-centos-7
x86_64-fedora-26
x86_64-fedora-27
x86_64-fedora-28
x86_64-debian-wheezy
x86_64-debian-jessie
x86_64-debian-stretch
x86_64-debian-buster
x86_64-ubuntu-trusty
x86_64-ubuntu-xenial
x86_64-ubuntu-bionic
x86_64-ubuntu-artful
s390x-ubuntu-xenial
s390x-ubuntu-bionic
s390x-ubuntu-artful
ppc64le-ubuntu-xenial
ppc64le-ubuntu-bionic
ppc64le-ubuntu-artful
aarch64-ubuntu-xenial
aarch64-ubuntu-bionic
aarch64-debian-jessie
aarch64-debian-stretch
aarch64-debian-buster
aarch64-fedora-26
aarch64-fedora-27
aarch64-fedora-28
aarch64-centos-7
armv6l-raspbian-jessie
armv7l-raspbian-jessie
armv6l-raspbian-stretch
armv7l-raspbian-stretch
armv7l-debian-jessie
armv7l-debian-stretch
armv7l-debian-buster
armv7l-ubuntu-trusty
armv7l-ubuntu-xenial
armv7l-ubuntu-bionic
armv7l-ubuntu-artful
"
- Есть ли официальный способ установки без использования Docker? Если говорить более частно, то интересует CentOS 7.
На GitHub предлагают использоватьmake
, но я бы предпочёл установку из репозитория. Как я понимаю, туда MTProxy ещё не добрался? - Если уже есть те, кто поставил и гоняет, как обстоят дела с потреблением аппаратных ресурсов (в особенности оперативная память, но и процессор, в целом, тоже)?
Интересны два сценария: 10-20 человек (т.е. небольшая группа хорошо знакомых людей) и несколько десятков человек (перевод лампового чата специалистов на один прокси).
Ну есть еще вариант — купить сервер за 1 евро месяц с большим количество RAM =)
Ну есть еще вариант — купить сервер за 1 евро месяц с большим количество RAM =)
Это где такая щедрость?)
1. The price of €1 per month (exc. VAT)… is valid only for deployments (and renewals) made on data center IT1. New deployments… will be priced at €2,79 per month (exc. VAT).
И это же еще VAT добавлять?
2. Maximum limit of 16 IPv6 simultaneous in use
Что за треш
3. Можно ли поставить ОС из своей .iso или хотя бы попросить добавить .iso как в KVM VPS?
А DO, 70 баксов в год — это уже не щедрость
Так что у них с использованием distro of choice (которого в списке их ОС нет), не подскажите?
Создать каталог "/opt/mtproxy" и положить туда собранный бинарник с конфигами. Он зависит только от zlib и libssl.
Написать скрип/юнит/etc для системы инициализации и использовать.
Я вот такое соорудил у себя pastebin.com/u4zETYFY
В файл «config» прописал нужные переменные.
У меня сейчас прокся ест метров 7 оперативы.
А где такие нищебродские VPS раздают и по какой цене?
- Съехало форматирование, проявился тег pre
- А редактор-то code по сей момент вставляет...
php реализация — кушает очень много памяти, работает хорошо
rust — не дает подключиться при 5k+ соединениях, скачать файл невозможно
nodejs — отлично работает
.net не пробовал
official — все отлично
Попробуем оф. версию.
Интересно, владельца такого прокси хоть за что-то притянуть смогут? Неструктурированный поток бинарных данных: этак либо ругать всех, кто бинарные данные гонит без понятного заголовка, либо — игнорить?
Молодцы Паша с командой!
Я понимаю, что приписать «распространение материалов, разжигающих нетерпимость», равно как и наркоту подбросить, можно любому — но если по закону, а не по
Если кто-то из тех, кого перед 1 мая оставляли на работе в РКН, пока они весь Телеграм не заблокируют, запустит такой прокси прямо в РКН
Главное — не забыть настроить продвижение официального канала РКН в Telegram.
Указанный Вами IP адрес 51.15.37.92, 51.15.70.45 входит в подсеть 51.15.0.0/16, используемую для обеспечения функционирования коммуникационных интернет-сервисов указанного организатора распространения информации в сети «Интернет»
Вообще чего уж там, можно просто написать универсально (чтобы не мудрить с lookup-ом в БД запретов):
Интересующий Вас IP адрес входит в подсеть 0.0.0.0/0, используемую для обеспечения функционирования коммуникационных интернет-сервисов организаторов распространения запрещенной решением суда информации в сети «Интернет». Сеть будет блокировано до вынесение решения о её разблокировки, которая выйдет не раньше, чем в сети «Интернет» будет пойман и наказан последний такой организатор.
И ведь не отвертишься, в этой-то «подсети» точно хоть что-то «незаконное» можно будет найти, если хорошо поискать.
В целях исключения сетевого адреса из выгрузки хостинг-провайдеру необходимо направить сообщение о принятых мерах по прекращению создания технических условий функционирования приложения Telegram.
Полный текст этого цирка можно почитать по ссылке выше из моего предыдущего коммента.
Если делать через make, то запустится на Centos 6.9 32 bit kernel 2.6?
Поднял самописный прокси на Java (Netty), использует линуксовый epoll. Проверил на десктопном и мобильном приложениях.
Запущен тут: t.me/proxy?server=139.162.152.61&port=3128&secret=DEADBEEFDEADBEEFDEADBEEFDEADBEEF
Буду мониторить, по статистике отпишусь.
Вечером на другой порт повешу официальную реализацию из сабжа, сравню по быстродействию.
tg://proxy?server=139.162.152.61&port=3129&secret=DEADBEEFDEADBEEFDEADBEEFDEADBEEF
или
t.me/proxy?server=139.162.152.61&port=3129&secret=DEADBEEFDEADBEEFDEADBEEFDEADBEEF
Собрал из исходников на гитхабе. Нагружает i5 CPU около 5% и ест около 5 mb RAM на воркера (Cent OS 7).
Пинг ниже почти вдвое) (~250 ms VS ~450 ms на самопальной). Попозже проведу ещё нагрузочное тестирование. Отпишусь.
ready_targets 0
allocated_targets 18
active_targets 18
?
Как это дебажить вообще
Не заработает.
Помогите, пожалуйста, чайнику. Арендовал сервер, настроил обычный прокси, все по инструкциям с Хабра. Сегодня решил поставить mtproto. Установил докер, запустился сервер — телега заработала. Затык возник на добавлении своих ключей. Пишет:
Error response from daemon: driver failed programming external connectivity on endpoint stupefied_mirzakhani (8e2ad8ae271fe04bdaaa2d935292951e30a1e9df8de4837b852ffc47b8): Bind for 0.0.0.0:443 failed: port is already allocated. Сервер ubuntu 16.04.
А. Сделайте как при обновлении:
$ docker stop mtproto-proxy # остановить контейнер
$ docker rm mtproto-proxy # удалить контейнер
Obtain current telegram configuration. It can change (occasionally), so we encourage you to update it once per day.
Следует ли рекомендации этот докер-образ?
P.S. Не имею возможности проверить сам по техническим причинам.
Please note that the proxy gets the Telegram core IP addresses at the start of the container. We try to keep the changes to a minimum, but you should restart the container about once a day, just in case.
Так что, да — следует.
Чтобы не пропадало для истории — вот как установить его на обычный образ Ubuntu, с которым поставляются виртуальные серверы Hetzner Cloud:
Все последующие команды запускаются от root. Создаём файл /etc/danted.conf такого содержания
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
# The listening network interface or address.
internal: 0.0.0.0 port=1080
# The proxying network interface or address.
external: eth0
# socks-rules determine what is proxied through the external interface.
# The default of "none" permits anonymous access.
socksmethod: pam.username
# client-rules determine who can connect to the internal interface.
# The default of "none" permits anonymous access.
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
устанавливаем:
cd /tmp
apt install libpam-pwdfile whois gdebi-core
wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb
gdebi dante-server_1.4.1-1_amd64.deb
iptables -A INPUT -p tcp -m tcp --dport 1080 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/iptables/rules.v4
netfilter-persistent save
Если нужно нагенерить много пар логин-пароль из списка в Excel, делаем bash-скрипт по шаблону (я наделал логинов для всех трёх сотен сотрудников своей компании):
#!/bin/bash
rm /opt/dante/sockd.passwd
# нагенерите таких строк в Excel. Я использовал корп. логин, а в качестве пароля
# использовал буквы и даты рождения коллег
echo -n "username:" >> /opt/dante/sockd.passwd && mkpasswd --method=md5 "passw0rd" >> /opt/dante/sockd.passwd
Запускаем прокси и проверяем, что через него проходят соединения:
service danted start
curl -v -x socks5://username:passw0rd@YOURHOST:1080 http://www.google.com/
Если всё в порядке (вам на экран выплюнуло HTML-код главной страницы Гугля), активируем автозапуск прокси при старте сервера:
update-rc.d danted defaults
А можно было просто взять https://github.com/schors/tgdante2
Так недалеко до того, что к вам внезапно половина Ирана придёт обходить блокировки — на виртуалку за два евро.
Смысл в том, чтобы Ваня понимал, что халявный прокси сделали ему персонально, и не стоит передавать информацию о халяве дальше. Просто социальная инженерия.
2018: Дайте мне приложение без чертового докера!!!
hub.docker.com/r/telegrammessenger/proxy
вытянуть Dockerfile.
В некоторых случаях на докерхабе можно посмотреть Dockerfile напрямую. В данном случае — нет.
Вот установка dante2
через докер в пару команд.
Настройка специально под Telegram
я автор реализации на питоне. Действительно, адвертайзинг у них сделан очень интересным способом, когда я добавил её поддержку, размер кода вырос почти в два раза: https://github.com/alexbers/mtprotoproxy/commit/fee5a0c05ae855d97e12a46253e4ad50395df17c.
Официальный прокси коннектится к тг через ещё один уровень проксей — так называемый middleware-прокси (это те, которые раз в сутки нужно обновлять и которые живут на https://core.telegram.org/getProxyConfig). Для общения с этими прокси серверами используется rpc-вызовы протокола mtproto, который сам по себе довольно развесистый. Интереснен факт, что ключ, которым шифруются данные между телеграммовским прокси и middleware-прокси получается из данных, включающих строку доступную всем по адресу https://core.telegram.org/getProxySecret и ip/порта клиента и сервера. Таким образом прокси должен знать свой внешний ip/порт, чтобы создать соединение ко middleware-прокси. Официальный докер-образ берёт ip на https://digitalresistance.dog/myIp.
Неофициальные реализации игнорируют middware-прокси и соединяются напрямую к серверам телеграма. Получается проще, надёжнее и экономичнее по трафику — официальный прокси прикрепляет примерно 96 байт в каждое сообщение — информацию о клиенте и рекламный тег). Но при таком способе нельзя добавить рекламу, что является его существенным недостатком.
Наконец-то нашёл (точнее мне написали) причину по которой передаётся информация о клиенте — она используется для того, чтобы показать с каких ip был вход, чтобы улучшить безопасность аккаунта. Я в своей реализации забил информацию о клиенте буквами 'A' и теперь вижу такое:
Но, с другой стороны, сейчас стало возможно "убеждать" телеграм, что на наго зашли с произвольного ip
Отличный вопрос. Это у них пул соединений к middle proxy (которые перечислены на https://core.telegram.org/getProxyConfig). По одному соединению передаются данные сразу нескольких пользователей, обёрнутые в RPC-вызовы. Когда клиентов становится много, пул соединений увеличивается.
К плюсам такой схемы относится то, что это позволяет сэкономить немного времени при подключении очередного клиента т.к. не нужно устанавливать новое соединение — оно уже есть. Кроме того, это позволяет обойти ограничение протокола TCP в 65 000 исходящих соединений на один и тот же адрес/порт.
Главный минус схемы — необходимость передавать в каждом исходящем сообщении дополнительные данные о клиенте, что приводит к повышенному потреблению исходящего трафика сервером. Другой минус — что по такому "общему" соединению приходится передавать данные на максимальной скорости т.е. нельзя например получить от клиента первые 4096 зашифрованных байтов вызова MTProto и сразу отправить их в соединение, приходится получать всё зашифрованное сообщение, которое часто достигает 100КБ и только потом отправлять. Это приводит к повышенному потреблению памяти прокси-сервером.
Есть очень простая схема работы прокси сервера — клиент подключается к нему а он — к серверу телеграма. Пришли данные от клиента — перешифровываем, посылаем на сервер и наоборот. Такая схема работает в почти всех альтернативных клиентах, но при этом теряется возможность показывать рекламу т.к. прокси должен как-то "представиться" серверу тг.
Более сложная схема, реализованная в официальном прокси: есть N клиентов и M соединений к вышестоящим прокси. Прокси вычитывает очередной зашифрованный MTProto-вызов от клиента (длину мы знаем, она не шифруется), составляет новый rpc-вызов MTProto к вышестоящему прокси с параметрами, включающими в себя зашифрованный вызов и данные о клиенте. Затем берётся любое из M соединений и туда отсылается этот rpc-вызов. После этого входящие данные от серверов тг для этого клиента начинают приходить в виде rpc-вызовов в этом соединении. Прокси, соответственно, читает читает очередной rpc-вызов из соединения, достаёт оттуда данные о клиенте и сами зашифрованные данные которые нужно ему передать, находит какому клиенту передать и передаёт.
Таким образом можно, например используя одно TCP соединение к вышестоящему прокси-серверу, обслужить 10 клиентов, оборачивая каждое зашифрованное сообщение от клиента в rpc-вызов и передавая его по этому соединению.
В протоколе mtproto элементарная единица информации — rpc-вызов, грубо говоря это длина данных и сами данные. Каждый rpc-вызов официальный прокси отправляет по случайному исходящему соединению на middle proxy. Кидать меньшими кусками чем один rpc вызов на случайное сооединение не получится т.к. один сервер получит "отправить сообщение пользова" а второй "телю bay: привет". Если отправлять маленькими кусками по мере прихода данных от клиента, то все равно нужно сначала написать полный размер сообщения, потом вставить "отправить сообщение пользова" и ждать остальных данных, при этом данное соединение, пока не дождёмся конца сообщения, нельзя использовать для передачи данных других пользователей.
То есть отличие в том, что, используя простую схему с одним исходящим соединением на каждого клиента, прокси может просто брать байты от клиента и передавать их на сервера телеграм вообще не думая не про какие границы сообщений и rpc-вызовы — сервера телеграма на той стороне сами разберутся. А в случае с мультиплексированными соединениеми появляются некоторые сложности.
Видяшка полетит не одним куском, сервер телеграма сам разобьёт её на rpc-сообщения килобайт по 100.
P.S. тут ещё наверно возникнет вопрос почему официальный прокси не может разбить один 100КБ запрос от клиента на два запроса по 50КБ по разным соединениям. Ответ — потому что запрос от клиента зашифрован и прокси не знает каким ключём.
Спасибо!
Active: active (running) since Fri 2018-06-01 03:50:01 EDT; 1h 2min ago
Docs: docs.docker.com
Main PID: 28482 (dockerd)
Tasks: 31
Memory: 351.3M
CGroup: /system.slice/docker.service
├─28482 /usr/bin/dockerd
├─28486 docker-containerd —config /var/run/docker/containerd/containerd.toml
├─35276 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.conta…
└─35282 docker-runc —root /var/run/docker/runtime-runc/moby —log /run/docker/containerd/daemon/i...
В гайде по настройке самого Docker-а значение Vendor preset: enabled. При этом к серверу по SSH подключится можно, вроде дело не в закрытых портах(отключал фаервол на сервере, но ничего не менялось)
Пробовал проверить подключение при помощи команды винды Telnet с портом 443, но выдавало только следующую ошибку:
Подскажите, как решить проблему с подключением? Или обязательно сервер регистрировать ботом телеграмма, чтобы всё заработало?
docker run hello-world
запускается, а sudo docker run hello-world
?запуск не из под sudo случаем не этой командой делали
sudo usermod -aG docker $(whoami)
?Ну и не забывай, что открыть на прослушку порты ниже 1024 может только рут.
Я пробовал вешать прокси на уже занятый порт, он падает при запуске. Хз как докер на падение реагирует.
Однако даже при смене порта на 8443 в телеграмме он всё равно не может к нему подключится
Есть предположение, что это по вине представителя услуги по облачному серверу(Aruba cloud), ибо в столбце Public IP под самим IP пишет: Bandwidth info not available. Хотя у другого сервера(на Соксе) пишет сколько процентов трафика используется…
unix 2 [ ACC ] STREAM LISTENING 16156 1079/master private/lmtp
unix 2 [ ACC ] STREAM LISTENING 16132 1079/master private/smtp
PROXY
tcp6 0 0 :::8443 :::* LISTEN 28336/docker-proxy
unix 2 [ ACC ] STREAM LISTENING 16126 1079/master private/proxymap
unix 2 [ ACC ] STREAM LISTENING 16129 1079/master private/proxywrite
Посмотрите, не занят ли порт (команда ss -lt покажет)
Покажите нормальные логи вашего контейнера (команда docker logs -f container)
Еще можно общисистемные логи посмотреть ( journalctl -b )
Вот создал я контейнер, получил у бота рекламный тег, перезапустил с тегом и ботом прикрепил канал. Все работает, в Телеге первый чат — это канал из настроек прокси (поскольку в каналах не ориентируюсь — прицепил РосКомСводобу).
Но.
Как этот прокси будет распространяться? В статистике ready_targets — 18, это значит 18 разных клиентов подключены к прокси? Или он посчитал только мои подключения/отключения? Бот просто работает с моим сервером, или он вносит его в какой-то список прокси, из которого они потом выбираются пользователями или ботом? Или распространять настройки прокси надо через всякие личные блоги и подобные источники? Но это же бред, наши доблестные стражи психического здоровья детей — просто нагуглят их и однойкопипастой заблочат сразу тонну.
Навскидку ничего толкового не нагуглилось, на официальном сайте чисто технические вопросы реализации протокола. Нашлось несколько каналов типа MTProxy, но, насколько я понял — это все неофициальное. Тупо содержит список серверов, которые элементарно парсятся и банятся.
По видимому — никакого распространения нет, робот обновил статистику — там только одно подключение. И какой смысл во всем этом? Зачем я буду поднимать прокси, а потом публиковать его адрес публично? Чтобы его потом забанили, а я лишился прямого доступа к своему VPS?..
По моему — это в первую очередь рассчитано на админов каналов, которые будут делать прокси и предлагать его тем, кто на них и так уже подписан. Тогда, когда человек подписывается на канал — он получает еще и прокси в придачу. А частное создание таких прокси на добровольных началах — не имеет смысла без централизованного распространения через официальный бот.
Вот поднял я прокси, выложил его в паблик — и автоматом засветил айпишник своего сервера. Что за фигня чессслово? На меня настучит первый же Павлик Морозов, нагугливший прокси поиском по характерным словам: t.me/proxy?server= &port=443&secret= и губай моя виртуалка.
Они бы хотя бы добавляли хеширование адреса для подключения. Заводит админ сервис, а тот ему выдает как сам адрес, так и его хеш, и тот уже сам решает что ему публиковать. Вводит пользователь в настройки копипасту из двух-трех десятков гексовых цифр и клиент ее расшифровывает уже внутри. Так хоть не спарсят в два клика несколько тысяч айпишнков для базы блокировки.
docker run -d -p 443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy
Открыл порт 443 в ufw.
С мобильного интернета — все работает отлично, подключаюсь через домашний wi-fi — не пашет, причем сервер пингуется, socks5 на этом сервере пашет нормально. В чем может быть проблема, подскажите, пожалуйста? Смена порта не помогает.
Теперь при добавлении он не появляется. Сталкивался кто?
Сколько раз ни пробовал переустановить ось на сервере или сделать другие манипуляции — итог один и тот же
Включил и явно прописал порты — в итоге всё равно связи нет
Аруба CZ1
Повесил на порт 444, потому что 443 занят проксями. Все завелось с пол тычка.
docker run --rm -p444:443 --name=mtproto-proxy -v proxy-config:/data telegrammessenger/proxy:latest
Правда у меня на арубе четыре сервера socks5 и иногда возникают непонятные залипания когда телега не может подключиться, грешу на дешманство самой арубы или на проблемы в логике выбора сервера когда есть несколько А-записей в DNS
Новый MTProto-прокси сервер от Telegram