Свой прокси для Telegram я впервые поднял из чистой вредности. Корпоративный канал с клиентами жил отдельной жизнью от рабочего ноутбука. Каждый созвон с подрядчиком начинался с фразы «у меня файлы не уходят». Взял самый дешёвый VPS, потратил 15 минут и получил узел, который работает до сих пор - два года и три переезда спустя.
Дальше только то, что делал сам: выбор сервера, установка SOCKS5 через Dante, кнопки в приложении. И главное - почему половина проблем возникает не на установке, а на выборе географии. Без теории ради теории.
Зачем городить свой узел, если прокси продаются готовыми
Честный ответ: большинству людей свой сервер не нужен. Разовая задача решается готовым прокси из каталога 3seller: четыре поля в настройках, и забыли. Я так и делаю, когда нужно быстро проверить гипотезу или отдать доступ человеку, который в SSH не полезет ни при каких условиях.
Свой узел выигрывает в трёх случаях. У вас команда или несколько устройств, и нужен один вход с понятными правилами. Нужна предсказуемость вместо «сегодня работает, завтра нет». Нужны логи и понимание, что происходит с трафиком, а не надежда на чужой сервер где-то в Нидерландах.
Есть и четвёртый, самый частый на практике: много аккаунтов в мессенджере и несколько проектов. Тут нужен стабильный адрес, который не меняется каждые две недели. Когда я вёл три клиентских канала параллельно, разница между «прокси на месяц из каталога» и своим VPS ощущалась именно в стабильности сессии.
Что понадобится до первого шага
VPS с Ubuntu 22.04 или Debian, доступ по SSH, 10-15 минут. Больше ничего. На CentOS тоже работает, но инструкций меньше и с пакетами придётся повозиться.
По железу хватает 1 vCPU и 512 МБ памяти. Прокси не жрёт ресурсы, он просто перекладывает пакеты. Тарифы «оптимизировано под прокси» с 4 ядрами - переплата за воздух.
Берите хостинг с понятной панелью, где можно быстро переустановить ОС и открыть консоль. За два года я трижды ломал конфиг файрвола и трижды спасался только консолью. Хостинг с одним SSH - лотерея.
География VPS важнее тарифа, и это неочевидно
Логика подсказывает: бери сервер поближе к Европе, будет быстрее. С файлами всё наоборот.
Я гонял замеры на трёх локациях. Зарубежный VPS отдаёт файлы из Telegram нормально, а загрузка на серверы мессенджера падает до 0,1 МБ/с. Скачал гигабайт, залил гигабайт - и пьёшь кофе сорок минут. На VPS в России и скачивание, и загрузка идут на максимальной скорости канала. Провайдер один и тот же, разница в маршруте до дата-центров Telegram.
Пересылаете файлы, видео, архивы - берите российскую локацию. Работаете только с текстом - разница незаметна, смотрите на европейские варианты.
Ставим Dante и получаем рабочий SOCKS5
Дальше сухая последовательность. Подключаетесь по SSH под root или через sudo.
- Обновляете пакеты:
apt update && apt upgrade -y - Ставите Dante:
apt install dante-server -y - Создаёте отдельного пользователя:
useradd -m socks - Задаёте ему пароль:
passwd socks - Правите конфиг
/etc/danted.confпод свою сеть - Перезапускаете сервис:
systemctl restart danted
Конфиг - самый нелюбимый пункт: файл большой, а нужных строк пять. Прописать нужно внешний интерфейс (обычно eth0 или ens3), внутренний, метод авторизации username, диапазон разрешённых адресов и порт прослушивания. Порт берите нестандартный, 1080 знают все сканеры мира.
Проверьте, что в конфиге стоит socksmethod: username. Оставите none - сервер через сутки найдут и начнут гонять через него трафик. На Reddit в ветках про self-hosted SOCKS5 админы приводят те же цифры: открытый узел живёт в среднем 6-8 часов до первого паразита.
После перезапуска: systemctl status danted. Написано active (running) - половина дела сделана. Вторая половина - файрвол: ufw allow ваш_порт/tcp. Без него будете полчаса искать причину в конфиге.
Настройка в самом Telegram: куда нажимать
Android: «Настройки» внизу, «Данные и память», пролистать до «Прокси», включить «Использовать прокси», нажать «Добавить прокси». Тип - SOCKS5, дальше адрес сервера, порт, логин, пароль. Сохраняете, Telegram сам прогонит тест.
На iOS логика та же, различаются названия пунктов: «Настройки», «Данные и память», «Прокси», новое подключение с типом SOCKS5.
В Telegram Desktop путь длиннее: «Настройки», «Продвинутые настройки», «Тип соединения», включить «Использовать собственный прокси». Дальше тип, адрес сервера, порт, логин и пароль. Десктоп умеет и HTTP, но держитесь SOCKS5 - меньше сюрпризов с кодировкой и таймаутами.
Веб-версия своих настроек прокси не имеет вообще, берёт параметры из системы. Либо настраиваете прокси на уровне ОС в Windows, macOS или Linux, либо рулите трафиком через расширение браузера. Люди думают, что сломали web.telegram.org, а на самом деле ищут несуществующий пункт меню.
MTProto или SOCKS5: что выбрать по архитектуре, а не по слухам
Разница не в «скорости», а в том, на каком уровне работает шифрование и кто его держит.
SOCKS5 живёт на четвёртом-пятом уровне модели OSI. Он не знает, что внутри: устанавливает TCP-соединение и перекладывает байты. Шифрование остаётся на стороне Telegram, прокси видит только поток данных. Плюс - универсальность, через тот же узел можно гонять другие задачи. Минус - чуть больше служебных пакетов на установку соединения.
MTProto - прокси внутри протокола Telegram. Оборачивает трафик в собственный формат, работает по UDP и TCP, даёт меньшую задержку на слабых каналах. Секрет генерируется на сервере и передаётся строкой, которую Telegram подхватывает по ссылке. Удобно раздавать команде: скинул ссылку в чат, человек нажал, всё настроилось.
На мобильном интернете MTProto в моих замерах выигрывал 15-20 мс на отправку сообщения. На стабильном широкополосном канале разницы нет. Для парсинга и большого числа одновременных подключений я выбираю SOCKS5: проще балансировать, предсказуемее в логах.
Как проверить, что узел реально работает
Telegram показывает результат теста прямо в окне добавления прокси, но верить на слово не стоит. Зелёная галочка означает, что TCP-хендшейк прошёл, а не то, что трафик идёт как надо.
Мой набор проверок. Первое: отправляю себе файл на 20-30 МБ и смотрю скорость. Район 0,1 МБ/с - вы выбрали зарубежную локацию под загрузку, лечится переездом VPS. Второе: journalctl -u danted -n 50, там видно, приходят ли соединения и под каким пользователем. Третье: при выключенном прокси интернет в приложении должен работать, иначе вы залипли в циклическом маршруте.
Ещё один тест экономит часы: подключитесь к тому же узлу с другого устройства и другого оператора. Я однажды ловил проблему, которая воспроизводилась только у одного мобильного оператора, и дело было в его маршруте, а не в сервере.
Грабли, на которые наступают почти все
Не подключается. В 80% случаев это файрвол на сервере, в 15% неверный порт в конфиге Dante, в остальном пароль со спецсимволами, набранный не в той раскладке. Проверяйте по порядку.
Подключается и через минуту отваливается. Смотрите лимиты соединений в конфиге. По умолчанию Dante может стоять с ограничением, которого хватает на один телефон и не хватает на телефон плюс ноутбук плюс планшет.
На мобильном интернете работает, на домашнем Wi-Fi нет. Домашний роутер с собственным DNS и странной маршрутизацией ведёт себя непредсказуемо. Проверьте с отключённым Wi-Fi и не тратьте вечер на исправный сервер.
Скачивание идёт, загрузка нет. Та самая история с географией. Не мучайте конфиги, меняйте локацию VPS.
И главное: не раздавайте доступ кому попало. Один пользователь на человека, отдельные пароли. Уходит человек - удаляете учётку. Я так отключал подрядчика за 30 секунд вместо рассылки нового пароля всем.
Когда аренда готового прокси объективно выгоднее
Свой сервер требует обслуживания: обновления безопасности, ротация паролей, контроль логов, реакция на падения. За два года у меня дважды отваливался диск на VPS, и оба раза я узнавал об этом от клиента, а не от мониторинга.
Нужен прокси на неделю, под тест гипотезы, под несколько аккаунтов без администрирования - каталог закрывает вопрос быстрее. В каталоге прокси 3seller выбираете SOCKS5, страну и период аренды, получаете логин с паролем и вставляете их в Telegram. Ни SSH, ни конфигов, ни ночных разборов логов.
География подбирается под задачу: для файлов и быстрой отдачи ближе российские адреса, для европейской точки входа есть Германия, Нидерланды, Швеция, Великобритания. Период аренды меняется - удобно, когда непонятно, насколько задача долгая.
Мой подход гибридный. Постоянные проекты и командные доступы живут на своём VPS: нужны логи и контроль. Всё временное и тестовое идёт через готовые прокси. Время не сгорает, инфраструктура не обрастает зоопарком полузабытых серверов.
Что сделать прямо сейчас
Один вопрос: нужен контроль над узлом или результат сегодня. Контроль - берите VPS в российской локации, ставьте Dante, создавайте отдельного пользователя, закрывайте порт файрволом, подключайте SOCKS5 в приложении. Пятнадцать минут, и у вас своя точка входа, понятная до последней строки конфига.
Результат - не изобретайте инфраструктуру ради инфраструктуры. Откройте каталог, возьмите SOCKS5 на нужную страну и срок, проверьте скорость на файле в 20 МБ. Дальше решите по факту, а не по ощущениям.