March 29, 2019

Способы запуска Telegam бота через Proxy. Продолжаем создавать чат-бот на .Net Core


!!НАШ БЛОГ ПЕРЕЕХАЛ!!

Мы создали свой сайт! Все материалы, опубликованные в этом блоге, переехали туда.

Наш новый сайт maddevelop.ru


В продолжении статьи рассмотри варианты запуска бота через Proxy сервера.

Вариант 1. Использование Tor браузера.

Этот способ был найден в описании к библиотеке Telegram.Bot. Он подходит скорее для отладки и для тестирования нежели, чем для релиза. Неудобство состоит в том, что во время работы бота должен быть всегда открыт браузер Tor.

При создании бота при помощи пакета Telegram.Bot нам нужно создавать объект клиента

TelegramBotClient client = new TelegramBotClient(token, webProxy)

Конструктор объекта первым параметром принимаем токен бота, а вторым объект класса HttpToSocks5Proxy. Этот класс находится в другой библиотеке (он создан одним из членов команды Telegram.Bot), распространяется она так же в формате NuGet пакета. Чтобы ее скачать заходим в пакетный менеджер, находим HttpToSocks5Proxy и добавляем к себе в проект.

Еще нам нужно настроить наш Tor браузер. Для этого заходим по пути:

...(Путь до папки с браузером)...\Browser\TorBrowser\Data\Tor\

Там мы находим файл torrc, его нужно открыть в обычном текстовом редакторе и добавить строки

EntryNodes {NL}
ExitNodes {NL}
StrictNodes 1
SocksPort 127.0.0.1:9050

После этого мы получаем возможность создавать объект клиента бота с новыми параметрами, а именно

TelegramBotClient client = new TelegramBotClient(<token>, new HttpToSocks5Proxy("127.0.0.1", 9050))

Теперь весь трафик от бота будет перенаправляться через Tor, и ошибок с подключением не возникнет.

Способ проверенный, рабочий, сами им пользуемся.

Вариант 2. Настройка VPN (L2TP/IPsec) на OC.

Данный вариант это первое что приходит на ум, когда нужно перенаправить весь трафик через VPN на компьютере. Описание нашлось на просторах интернета и тоже оказалось рабочим.

Рассмотрим на примере ОС Windows 7. Заходим в "Центр управления сетями и общим доступом"

Нажимаем "Настройки нового подключения или сети"

Выбираем "Подключение к рабочему месту"

"Использовать мое подключение к Интернету (VPN)"

Здесь вводим DDNS hostname, который находим на сайте VpnGate. Главное выбрать тот сервер у которого есть поддержка L2TP/IPsec. Т.е. в соответствующей колонке должна стоять галочка.

Далее, после введения адреса система предлагает ввести имя пользователя и пароль. В обе эти графы вводим vpn и нажимаем далее (Ставим галочку запомнить этот пароль).

На этом моменте мастер настройки создаем новое подключение которое уже находим в разделе "Изменение параметров адаптера" (Сетевые подключения). Открываем свойства нового vpn подключения и заходим на вкладку "безопасность".

Здесь выбираем параметры как указано на рисунке, и в подменю "Дополнительные параметры".

В поле "ключ" вводим vpn.

Все, мы полностью настроили новое подключение. Теперь прост его можно запустить и трафик пойдет через внешние сервера.

Этот способ тоже проверенный и рабочий. Но если у Вас не будет подключаться, то стоит попробовать другие варианты DDNS адреса.

Вариант 3. Использование сервиса Ngrok.

Он подходит для тех ботов, которые обновляют свое состояние через WebHook. Вообще данный вариант обновления более предпочтителен, нежели простой опрос сервера по таймеру. Таким образом снижается нагрузка на сервера Telegram.

Но опять же есть сложности. Сам сервис Ngrok тоже запрещен в России, поэтому его можно использовать в совокупности со вторым вариантом.

Чтобы воспользоваться Ngrok нужно зарегистрироваться на сайте и получить персональный ключ. Далее устанавливаем ngrok.exe, заходим в командную строку и вводим

ngrok authtoken 

ключ Ngrok. Тем самым сгененируется файл, который будет содержать наш сгенерированный ключ, это процедуру нужно выполнить один раз.

А дальше для трансляции нашего localhols сервиса в мировую паутину выполняем команду

ngrok http портсервиса

В поле же адреса, к которому будет привязан WebHook вводим сгененированный программой https адрес

(фото взято из статьи, там тоже вкратце писан процесс подключения)

Мы этот вариант более подробно рассмотрим в следующих статьях на конкретном примере, когда будем создавать бота, с применением такого метода обновления.

Ну вот все, надеемся, что статья была полезной. Следите за обновлениями, ваша команда MadDevelopTeam.



Ещё больше интересной информации на нашем Telegram-канале.