← Назад в базу знаний

Telegram через IPv6 прокси: настройка MTProto и SOCKS5 для каналов и ботов

Telegram через IPv6 прокси: настройка MTProto и SOCKS5 для каналов и ботов

Проблема блокировок

Telegram блокируют по IP-адресам. Роскомнадзор регулярно пополняет реестр запрещённых подсетей. Стандартные IPv4-прокси живут от нескольких часов до пары дней. Потом — бан.

IPv6 решает эту проблему. Адресное пространство огромное — 2^128. Заблокировать все подсети невозможно. Даже если один адрес попал в реестр, переключиться на другой — дело секунды.

MTProto — собственный протокол Telegram для обхода блокировок. SOCKS5 — универсальный прокси-протокол, работает с любым трафиком. Разберём оба варианта.

MTProto: архитектура и настройка

MTProto использует шифрование поверх TCP. Клиент отправляет запрос на прокси-сервер, тот упаковывает трафик в MTProto-конверт и шлёт на сервера Telegram. Блокировщик видит только зашифрованный поток на нестандартном порту.

Установка MTProto на IPv6

Берём сервер с IPv6. Ставим Python 3.9+, клонируем репозиторий:

```bash

git clone https://github.com/TelegramMessenger/MTProxy

cd MTProxy

make

```

Генерируем секретный ключ:

```bash

head -c 16 /dev/urandom | xxd -ps

```

Получаем 32-символьную строку. Запускаем прокси:

```bash

./objs/bin/mtproto-proxy -p 443 -H 8080 -S -6

```

Флаг `-6` — форсировать IPv6. Порт 443 — маскировка под HTTPS. Порт 8080 — статистика.

Клиент подключается через `t.me/proxy?server=&port=443&secret=`. Работает на iOS, Android, Desktop.

Проблемы MTProto

Протокол специфичный. Только Telegram. Для веб-сёрфинга не подходит. Если нужен универсальный прокси — смотрим SOCKS5.

Второй момент — нагрузка. MTProxy потребляет около 100-200 МБ RAM на 1000 подключений. На слабых VPS — проблема.

SOCKS5: универсальное решение

SOCKS5 работает на транспортном уровне. Не важно, что передаётся — HTTP, WebSocket, кастомный протокол. Прокси просто пересылает пакеты.

Dante на IPv6

Dante — классический SOCKS5-сервер. Ставится из репозиториев:

```bash

apt install dante-server

```

Конфиг `/etc/dante.conf`:

```

internal: 0.0.0.0 port = 1080

external: eth0

socksmethod: username

user.privileged: root

user.unprivileged: nobody

client pass {

from: 0.0.0.0/0 to: 0.0.0.0/0

log: error

}

socks pass {

from: 0.0.0.0/0 to: ::/0

socksmethod: username

log: error

}

```

Особенность: `to: ::/0` — разрешает трафик на любые IPv6-адреса. Если оставить `0.0.0.0/0`, IPv6-трафик будет резаться.

Запускаем:

```bash

systemctl start danted

```

Проверяем через curl:

```bash

curl --socks5 user:pass@proxy.example.com:1080 --socks5-hostname https://api.telegram.org

```

Задержка: через IPv4 — 15-20 мс, через IPv6 — 20-25 мс. Разница в 5 мс на маршрутизации. Для Telegram — незаметно.

3proxy — лёгкая альтернатива

3proxy весит меньше мегабайта. Конфиг минималистичный:

```

daemon

nserver 8.8.8.8

nserver 2001:4860:4860::8888

auth iponly

allow * * * * 2 * *

proxy -6 -p1080

```

Флаг `-6` — слушать только IPv6. `auth iponly` — без пароля, доступ по IP. Удобно для ботов на одном сервере.

Кейс: канал с 50 000 подписчиков

Проблема: админ канала про экономику сидел в РФ. Через месяц после запуска — блокировка по IP. IPv4-прокси менял раз в 3 дня.

Причина: агрегатор новостей парсил канал раз в 5 минут. 288 запросов в сутки. Плюс 500-1000 переходов по ссылкам из постов. Нагрузка — 15-20 Мбит/с.

Решение: подняли SOCKS5 на IPv6 через 3proxy. Сервер — Hetzner CX22 (2 vCPU, 4 GB RAM, IPv6 /64). За 6 месяцев — ни одной блокировки.

Технические детали:

- MTU: 1500 байт (стандартный Ethernet)

- TCP window scaling: включено

- Keepalive: 60 секунд

Задержка на публикацию поста: через прокси — 1.2 секунды, напрямую — 0.8 секунды. Разница в 0.4 секунды — пользователи не заметили.

Кейс: бот для мониторинга криптобирж

Проблема: бот на Python собирал курсы с 5 бирж. Каждые 10 секунд — GET-запросы. Через 2 недели — блокировка по IP.

Причина: частые запросы на биржевые API. Антибот-системы Cloudflare блокировали по IP.

Решение: MTProto-прокси на IPv6. Код бота:

```python

import requests

from telethon import TelegramClient

api_id = 12345

api_hash = 'abcdef1234567890'

proxy = ('socks5', '2001:db8::1', 1080, True, 'user', 'pass')

client = TelegramClient('session', api_id, api_hash, proxy=proxy)

client.start()

Мониторинг курсов

while True:

response = requests.get('https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT')

price = response.json()['price']

print(f'BTC: {price}')

time.sleep(10)

```

Прокси менял IP раз в 24 часа через cron. 3 месяца — ни одной блокировки.

Кейс: массовый парсинг каналов

Проблема: нужно собрать посты из 200 каналов. Каждый канал — 500-1000 сообщений. Парсер на aiohttp падал после 50 запросов.

Причина: Telegram ограничивает количество запросов с одного IP. Лимит — 30 запросов в минуту на канал.

Решение: пул из 10 IPv6-прокси. Ротация через каждый запрос:

```python

import aiohttp

import itertools

proxies = [

'socks5://user:pass@2001:db8::1:1080',

'socks5://user:pass@2001:db8::2:1080',

... ещё 8 прокси

]

proxy_cycle = itertools.cycle(proxies)

async def fetch_channel(channel_id):

proxy = next(proxy_cycle)

async with aiohttp.ClientSession() as session:

async with session.get(

f'https://t.me/s/{channel_id}',

proxy=proxy

) as response:

return await response.text()

```

Результат: 200 каналов за 15 минут. 0 блокировок. Без прокси — 45 минут и 3 блокировки.

MTProto vs SOCKS5: сравнение

| Параметр | MTProto | SOCKS5 |

|----------|---------|--------|

| Протокол | Специфичный (только Telegram) | Универсальный |

| Шифрование | Встроенное | Опционально |

| Задержка | +10-15 мс | +5-10 мс |

| Нагрузка на CPU | 15-20% на 1000 коннектов | 5-10% |

| Сложность настройки | Средняя | Низкая |

| Обнаружение блокировщиком | Сложно (шифрованный поток) | Легко (DPI видит SOCKS5) |

MTProto лучше для обхода DPI. SOCKS5 — для универсальности и низкой нагрузки.

Практические советы

**Выбор порта.** Не ставь на 443, если там уже висит nginx. Используй 8443, 9443, 10443. Блокировщики редко сканируют нестандартные порты.

**IPv6-адреса.** Бери /64 подсеть. 2^64 адресов. Менять можно каждый час. На lexic.ml как раз такие прокси — с автоматической ротацией.

**Мониторинг.** Ставь netdata или prometheus. Смотри на количество подключений, ошибки, задержки. Если ошибок больше 5% — пора менять конфиг.

**Безопасность.** SOCKS5 без пароля — дыра. Китайские боты найдут за час. Ставь `auth username` или `auth iponly`.

Выводы

IPv6 — единственный рабочий способ обойти блокировки Telegram в РФ. MTProto даёт максимальную скрытность, SOCKS5 — универсальность и производительность.

Для каналов с аудиторией до 100k — SOCKS5 на 3proxy. Для ботов с частыми запросами — MTProto. Для массового парсинга — пул IPv6-прокси с ротацией.

Сервер бери с нативным IPv6. Не через туннели — задержка вырастет в 2-3 раза. Hetzner, DigitalOcean, Scaleway — все дают /64 подсеть бесплатно.

Настраивай, тестируй, забывай про блокировки.

✔️Купить прокси