К содержимому

Telegram бот через SOCKS5 на Python: aiogram, Telethon

Какие пакеты установить, в каком формате передавать прокси в aiogram и Telethon и как убедиться, что трафик идёт через прокси.

Куда в какой библиотеке передаётся прокси

Бот на aiogram ходит в Bot API через aiohttp, поэтому прокси задают в сессии aiohttp. Скрипт на Telethon говорит на собственном протоколе Telegram и принимает прокси в конструкторе клиента. Обе библиотеки умеют SOCKS5 с логином и паролем, но каждой нужен свой вспомогательный пакет.

Эта страница про код. Настройка самого приложения Telegram (компьютер, iPhone, Android) описана в статье по ссылке.

aiogram и Telethon рядом

aiogram и Telethon рядом
Пунктaiogram (боты)Telethon (аккаунты и боты)
Установкаpip install aiogram aiohttp-sockspip install telethon "python-socks[asyncio]"
Куда передаётся проксиAiohttpSession(proxy=...), затем Bot(token, session=session)TelegramClient(..., proxy=...)
ФорматURL: socks5://LOGIN:PASSWORD@HOST:PORTСловарь: proxy_type, addr, port, необязательно username, password, rdns
Другие протоколыhttp (туннель), socks4(a), socks5В документации здесь SOCKS5; прокси MTProto задаются в другом формате

Источник: документация aiogram и Telethon и страница проекта aiohttp-socks, прочитано 13 ноября 2026.

Настройка за 5 шагов

  1. Шаг 1

    Скопируйте хост, порт, логин и пароль SOCKS5-актива из «Мои активы».

  2. Шаг 2

    Проверьте логин через curl (команда ниже). Должен вернуться JSON с выходным IP прокси.

    Ожидаемый результат JSON с IP, который не ваш.

  3. Шаг 3

    Установите вспомогательный пакет для вашей библиотеки: aiohttp-socks для aiogram, python-socks[asyncio] для Telethon.

  4. Шаг 4

    Добавьте прокси по примеру aiogram или Telethon и выполните один настоящий вызов: get_me() для бота или первый вход для аккаунта.

  5. Шаг 5

    Если хотите увидеть выходной IP и из Python, запустите проверку через aiohttp: формат адреса там тот же, что в aiogram.

Проверка выходного IP из Python

# pip install aiohttp aiohttp-socks
import asyncio
import aiohttp
from aiohttp_socks import ProxyConnector

async def main():
    connector = ProxyConnector.from_url("socks5://LOGIN:PASSWORD@HOST:PORT")  # rdns is on by default for socks5
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get("https://ipinfo.io/json") as response:
            print(await response.text())   # the proxy's exit IP, not yours

asyncio.run(main())

Только пример: подставьте свои HOST, PORT, LOGIN, PASSWORD и данные Telegram.

Бот на aiogram через SOCKS5

# pip install aiogram aiohttp-socks
import asyncio
from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession

session = AiohttpSession(proxy="socks5://LOGIN:PASSWORD@HOST:PORT")
bot = Bot(token="BOT_TOKEN", session=session)

async def main():
    me = await bot.get_me()          # a real call to the Bot API, through the proxy
    print("Bot:", me.username)
    await bot.session.close()

asyncio.run(main())

Только пример: подставьте свои HOST, PORT, LOGIN, PASSWORD и данные Telegram.

Клиент Telethon через SOCKS5

# pip install telethon "python-socks[asyncio]"
from telethon import TelegramClient

API_ID = 123456                 # from my.telegram.org
API_HASH = "YOUR_API_HASH"

proxy = {
    "proxy_type": "socks5",
    "addr": "HOST",
    "port": 3333,               # SOCKS5 port; use the PORT from My assets
    "username": "LOGIN",
    "password": "PASSWORD",
    "rdns": True,
}

client = TelegramClient("account1", API_ID, API_HASH, proxy=proxy)

async def main():
    me = await client.get_me()
    print("Logged in as", me.username)

with client:
    client.loop.run_until_complete(main())

Только пример: подставьте свои HOST, PORT, LOGIN, PASSWORD и данные Telegram.

Сначала проверьте логин через curl

curl -x socks5h://LOGIN:PASSWORD@HOST:PORT https://ipinfo.io/json

Только пример: подставьте свои HOST, PORT, LOGIN, PASSWORD и данные Telegram.

SOCKS5 или HTTP

В документации aiogram поддерживаемыми названы http (туннель), socks4(a) и socks5, поэтому HTTP-адрес вида http://LOGIN:PASSWORD@HOST:2222 там тоже подходит. В документации Telethon примеры даны для SOCKS5.

В Proxy302 статический ISP IP выдаётся с протоколом, выбранным при оформлении; актив, арендованный на срок за IP, с теми же логином и паролем подключается и по другому протоколу на порту этого протокола. Логин динамического резидентного прокси, созданный как SOCKS5, работает и по HTTP на порту 2222, а созданный как HTTP по SOCKS5 не работает. Если сомневаетесь, создавайте или оформляйте актив как SOCKS5 и используйте порт 3333.

Если бот не подключается

Бот зависает, затем таймаут

Проверьте Неверные HOST или PORT, у актива закончился срок или не установлен вспомогательный пакет.

Решение Выполните curl. Если curl проходит, проверьте, что aiohttp-socks (aiogram) или python-socks (Telethon) установлены в том же окружении, где работает бот.

Когда остановиться Если curl тоже уходит в таймаут, не меняйте код: проверьте хост, порт и статус актива в «Мои активы».

Ошибка аутентификации или прокси отказывает в соединении

Проверьте Опечатка в LOGIN или PASSWORD либо спецсимволы в пароле ломают URL.

Решение Скопируйте данные заново. В формате URL закодируйте в пароле символы вроде @, : и / через процентное кодирование; в словаре Telethon пишите пароль как есть.

curl проходит, но бот показывает ваш IP

Проверьте Прокси не передан той сессии, которая отправляет запросы, например создан второй объект Bot без него.

Решение Создайте одну сессию с прокси и передавайте её в каждый Bot.

Какое-то время работает, потом выход меняется

Проверьте Логин динамического резидентного прокси даёт новый IP на новом соединении.

Решение Для бота или аккаунта, которому нужен один адрес, берите статический IP.

Как это сделать с Proxy302

Боту или аккаунту Telegram, которому нужен постоянный адрес, подойдёт статический ISP IP с протоколом SOCKS5: в течение срока аренды он не меняется, 1 день стоит $0,50, 30 дней — $7,99 (около $0,27 в сутки), SOCKS5 работает на порту 3333 proxy.proxy302.com. Каждому боту можно дать свой IP, в одном заказе — до 100 IP.

Бесплатного теста нет, минимальная покупка — один IP на один день. На странице Telegram — настройка приложения и обзор сценариев.

Шаги в Proxy302

  1. Шаг 1

    Откройте страницу статического ISP, выберите страну и SOCKS5, проверьте стоимость и оплатите с кошелька.

  2. Шаг 2

    Откройте «Мои активы» и скопируйте хост, порт, логин и пароль.

  3. Шаг 3

    Подставьте их в URL прокси (aiogram) или словарь (Telethon) из примеров.

  4. Шаг 4

    Запустите проверку, затем бота; подтвердите выход через https://ipinfo.io/json.

Частые вопросы о прокси для Telegram-ботов

Как использовать SOCKS5 прокси в aiogram?

Установите aiohttp-socks, создайте AiohttpSession(proxy="socks5://LOGIN:PASSWORD@HOST:PORT") и передайте в Bot(token, session=session).

Как использовать SOCKS5 прокси в Telethon?

Установите python-socks[asyncio] и передайте в TelegramClient proxy={"proxy_type": "socks5", "addr": "HOST", "port": 3333, "username": "LOGIN", "password": "PASSWORD"}.

Обязательно ли прокси должен поддерживать логин и пароль?

Обе библиотеки умеют их отправлять. Используйте данные из «Мои активы»; для прокси без логина их не указывайте.

Почему бот игнорирует прокси?

Чаще всего не установлен вспомогательный пакет либо прокси передан другой сессии или клиенту, не тому, что отправляет запросы.

Как проверить, что бот использует прокси?

Проверьте логин через curl, запустите проверку через aiohttp с тем же адресом, затем вызовите get_me() и посмотрите выходной IP на ipinfo.io.

Ссылки и источники

4
  1. aiogram documentation: AiohttpSession

    Официальная документация · Проверено:

    Read on 13 November 2026: to use a proxy with AiohttpSession install aiohttp-socks; supported protocols are http (tunneling), socks4(a) and socks5; usage is AiohttpSession(proxy="protocol://host:port/") passed to Bot(token, session=session).

  2. Telethon documentation: signing in, proxies

    Официальная документация · Проверено:

    Read on 13 November 2026: install python-socks[asyncio]; pass proxy= to TelegramClient; for SOCKS5 a dict with proxy_type, addr and port, optional username, password and rdns.

  3. aiohttp-socks on GitHub

    Официальная документация · Проверено:

    Read on 13 November 2026: ProxyConnector.from_url("socks5://user:[email protected]:1080"); remote DNS (rdns) is the default for socks5; installed as aiohttp_socks.

  4. Факты о продуктах и прайс-лист Proxy302

    Наблюдение за продуктом · Проверено:

    Файл фактов о продуктах, сверен 13 ноября 2026 с консолью, бэкендом и прайс-листом: цены аренды статического ISP за IP (US$, 1 PTC = US$1), цена бюджетной линии динамического резидентного прокси за ГБ, порт HTTP 2222 и порт SOCKS5 3333 на proxy.proxy302.com, какой протокол работает в каком продукте, нет бесплатного теста.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.