Обновить

TeleMT без докера, но со SNI-роутингом своими руками

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели29K
Всего голосов 21: ↑21 и ↓0+24
Комментарии37

Комментарии 37

Про докер хорошо написал. Лично слышал о людях, которые докер ставили ради 1 приложухи, что считаю крайне странным.

Ставить docker нужно не из-за одной приложухи, а из-за compose — как способа задания повторяемой текстовой конфигурации и самой приложухи, и среды её выполнения. А иначе, конечно, можно и podman'ом обойтись. ;)

Я тот человек, который ставил докер ради 1 приложухи (потом добавилась ещё куча приложений) :)

Философия моя проста – ОС на VPS это внешняя платформа, песочница для быстрого запуска и быстрого удаления разных приложений. Я могу что-то поставить, посмотреть, понять что мне это не нравится, и снести. И мне не хочется, чтобы последствия моих экспериментов вносили изменения в ОС, оставляли там следы, какие-то файлы конфигов, каталоги, и прочее. Хочется, чтобы система была всегда чистой и стабильной. Использование докера эту задачу полностью решает.

Нормальный сценарий. Тут оправдано.

А вот когда опытный вроде разраб разворачивает проект в десятке контейнеров по-модному и потом сам же не может это дело как надо донастроить на уровне докера – это уже маразм. Я такое не раз и не два наблюдал.

Ваш разраб не может донастроить - это по вашему проблемы докера? Ваша критика решений с использованием докера свелась к вкусовщине, суеверию, не знаю, к религиозной неприязни. Сделали вы нативно, хорошо, но надо пнуть докер, показать какой вы крутой, потому что прогрессивно не перености все эти ваши докеры на дух. Так себя это говорит о ваших компетенциях.

Причем тут мой разраб. Просто я видел такую ситуацию не раз. И именно к докеру вообще нет претензий. Претензии к людям, которые на ровном месте усложняют систему. Это далеко не только докеров касается в современной разработке, если что.

В современной разработке говорите? Ну да, вот раньше было без всяких этих ваших докеров и реактов... Насколько я понимаю докер предназначен не для усложнения, а наборот, для упрощения, нет?

Какая разница, сколько приложух? Суть докера в том, что ты один раз описал конфиг и одной командой поднял то. что ожидаешь

Для подобных вещей стоит посмотреть в сторону Caddy с модулем L4.

Там это все настраивается существенно короче и интуитивнее.

Еще проще, чем здесь? Вроде и так не сложно.

Позже узнал, что такое через haproxy лучше делать. Что он ресурсов меньше ест. Но мне не нужен какой-то массовый сервис. Поэтому дальше ковыряться не пойду.

Caddy по моим наблюдениям (и по некоторым бенчмаркам) использует чуть больше памяти, чем nginx/haproxy при малом rps. Оптимизация может быть на спичках, но вместе с отказом от докера, при малой нагрузке можно запустить пару "экспериментов" даже на 512 мб озу.

Как сейчас дела со скоростью у Telemt? Ставил его ранее, и скорость загрузки файлов в Telegram не превышала 3Мбит/с

Честно, не измерял особо. Разница между "никак" и "любая другая скорость" – огромна)

Очень муторно, докеры, нджинксы... MTG (https://github.com/9seconds/mtg) - один бинарный и конфиг на 2 строки. Собирается под винду, хотя и не выложен в секции релизов.

Не тестировал производительность, но её хватает для меня и нескольких людей

Ну TeleMT тоже один бинарный. А зачем вам этот мтж под виндой?

Сервер есть под виндой, заказывать отдельный сервер под это не хотелось. Искал варианты без питонов, докеров, node.js'ов и прочей херни, чтобы работало самостоятельно, короче.

Подошёл mtg в плане лёгкой сборки под винду - исходя из богатого списка поддерживаемых платформ пришёл к выводу, что наверное и под неё можно и не ошибся.

Возможно у TeleMT тоже так можно (и запустить без бубнов на любом порту без nginx и скомпилировать под винду), но из статьи это неочевидно.

Пробовали, скорость загрузки контента грусть, печаль

Это сколько? Может у нас разные представления какой должна быть скорость? Видосики с картинками грузятся как раньше, по ощущениям.

0-100 кб/сек :) Грузятся только сообщения можно сказать

Не сказать, что супербыстро, но и не 100 килобит. К тому же у меня нет премиума, возможно добавляются ограничения со стороны телеграма.

Скрытый текст

У меня весь интернет за пределами белых списков работает на 100 КБ. Может у вас тоже это явление?

...или как хроническое неприятие докера превратить в сношение мозгов.

У меня домашний сервер на docker с полностью автоматическим получением и обновлением сертификатов через traefik. Для каждого нового сервиса мне необходимо просто указать в docker-compose внешнюю сеть traefik и прописать labels, буквально 8 строк. Всё, трафик завёрнут в https, сертификат получен и обновлён.

А ещё докер - это когда всё максимально упорядочено и лежит на своих местах. Всегда знаешь, где лежат данные, просто бэкапить, просто разворачивать копию на любом другом хосте. При грамотной настройке ещё и дополнительный уровень безопасности. Обособленность от ОС хоста, свобода экспериментировать, менять версии. Есть контроль над ресурсами при отсутствии падения скорости, как в случае с виртуализацией.

Что может не получится настроить в контейнере - тоже вопрос открытый. По факту, Dockerfile - это просто пошаговый процесс билда и установки требуемого софта. Compose - инструкция для запуска всего полученного.

Не понимаю вот этого вот неприятия, особенно для серверов.

Ну ведь и славно, что у вас так все хорошо и замечательно. Кто спорит. )

Действительно помогает?

У меня так Vless+xhttp+reality сделано, но ещё проверяет - если SNI отличается, то маршрутизирует на сайт лендинг. Сказать, что это сильно всё сильно помогло? Нет, почти не помогло, но 4 часа из жизни потратил)) По этому и уточняю, как работает?

Пока работает. С айфонами правда есть нюансы.

А что именно у вас не работает?

Мобильный оператор в центре Москвы определяет этот ВПН, точнее подозрительный трафик и блокирует его. Я ссылаюсь на white-list, но Proxy для ТГ с fakeTLS, иногда проскальзывает..

Дома все стабильно работает, без вопросов.

Оператор не мегафон? APN переключать на IPv4 пробовали?

Оператор Yota (тот же Мегафон). Не знал про APN-IPv4, но я зашёл после вашего комментария и у меня проставлено именно это.

UPDATE. Добавил proxy_protocol = true в секцию [server] telemt.toml + proxy_protocol on в секцию stream/server stream-sni.conf.

Чтобы IP адреса подключений нормально доходили до telemt.

Предыдущий комментарий считаем удаленным. Откатил обратно изменения в статье.

Очень интересно про SNI роутинг, но у меня сомнения что данная конфигурация работает с маскировкой.
Оригинальная идея telem с fake tls в том, что подставляется "безобидный" домен в tls поле sni, за счет этого наблюдатель (мы понимаем, про кого) может полезть на "безобидный" сайт и убедиться, что все по закону более чем по конституции. Однако у вас в конфиге телемт в этом поле как раз тот прокси сайт. То есть в этом отношении маскировки нет. Без этого, как я понял, как раз не будет работать пре-роутинг 60-stream-sni.conf . У телемт для этого есть mask_host, который не задействован в вашей конфигурации. Вот он по идее должен указывать на https://one.mydomain.ru - но совсем не уверен, что это сработает, потому что попытка связаться, возможно, будет идти с оригинальным сертификатом (это декларируется на сайте проекта), который выдан на two - то есть опять полезет на себя же в рекурсию.
Это теоретические размышления. На практике - работает ли маскировка? Из браузера на two.mydomain.ru видно содержимое от one.mydomain.ru или все-таки я прав в рассуждениях?
Мне кажется, что может сработать, если указать mask_host 127.0.0.1 mask_port 8443 - минуя sni секцию в nginx сразу идти на локальный HTTPS от "безобидного" сервиса.

Мне кажется, что может сработать, если указать mask_host 127.0.0.1 mask_port 8443 - минуя sni секцию в nginx сразу идти на локальный HTTPS от "безобидного" сервиса.


У меня именно так и сделано, работает.

На момент публикации статьи работало именно так, как опубликовано. Сейчас уже конфиг видоизменился сильно. Скоро думаю еще одну статью сделаю, расскажу-покажу.

Можете подсказать, как сделать так же, но с помощью Apache? Имеется сервер, где 443 занят полезными web сервисами (Apache)
В связи с тем, что творит РК.. - нужно telmet повесить на 443, замаскировав под любой из этих сайтов. Все порты, отличные от 443 успешно улетают в баню.
Помогите, если можете.

Я не сисадмин совсем. Не подскажу, к сожалению. Заменить апач на Nginx не вариант? Или перед апачем Nginx поставить. Вроде так и делают часто.

Спасибо! Буду гуглить...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации