Публичные прокси — это хорошо, но медленно. А хочется заиметь свою, да и с друзьяшками поделиться. Так что сейчас расскажу, как поднять свой прокси сервер чисто-для-телеграма.
Внимание: статья рассчитана на людей, которые знают что такое ssh и как его подключать.
Пункт первый: нужно обзавестись сервером
Сервер брать рекомендую на DigitalOcean, в локациях AMS1/AMS2/AMS3 (у меня до них самый лучший пинг, но тут лучше выбирать по географической близости как к вам, так и к серверам телеграма). Вот вам рефералочка, которая добавит 10 баксов к вашему первому платежу: https://m.do.co/c/92f208062543
Инструкция написана для Ubuntu 16.04, используйте её же.
Пункт второй: устанавливаем dante
Заходим по ssh на наш сервер и делаем следующие вещи:
# Обновляем пакеты
sudo apt update
# Эта команда только для новых серверов, не стоит бездумно обновлять пакеты на уже работающих 🙂
sudo apt upgrade# Скачиваем dante
wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb# Устанавливаем
Как создать КАНАЛ в Телеграмме с нуля? / (ПК и Моб. устройства)
sudo dpkg -i dante-server_1.4.1-1_amd64.deb
Теперь открываем любимым редактором /etc/danted.conf заменяем его этим:
eth0 в external и internal — это имя интерфейса. Его вы можете посмотреть в выводе команды ifconfig
socksmethod: username говорит серверу использовать линуксовые аккауты для авторизации и отключает “анонимный” доступ к серверу
sudo systemctl restart danted
Пункт третий: создаем пользователя и проверяем
Создаем пользователя: sudo useradd -s /usr/sbin/nologin имяпользователя
Назначаем пароль: sudo passwd имяпользователя
VPN для друзей. Разворачиваем свой VPN-сервер с оплатой через Telegram
В этой статье я покажу не только как сделать свой собственный VPN-сервис на основе WireGuard, но и как его настроить, чтобы им смогли пользоваться все твои друзья и знакомые. И даже, если пожелаешь, закидывать тебе свою долю за хостинг, пользуясь простым ботом в Telegram.
Возможность шифровать трафик и проксировать его через другие страны сейчас настолько необходима, что я не стану тратить твое время и в очередной раз перечислять все случаи, когда без VPN не обойтись. При этом большинство пользователей выбирают готовые сервисы: либо бесплатные, но ненадежные и со встроенной рекламой и слежкой, либо платные, но дорогие в сравнении с хостингом.
Чтобы сделать свой VPN, требуется поморочиться с командной строкой. Гикам вроде нас с тобой такое занятие в радость: я, не имея никакого опыта, поднял такой сервис за один вечер. Друзья стали спрашивать, нельзя ли и им получить такой же быстрый, надежный и дешевый сервис. Однако копаться с настройками никто из них не хотел.
Я долгое время генерил и раздавал готовые конфиги, но потом это стало надоедать. Тогда я задумал создать собственное решение с возможностью быстрого деплоя, администрированием через Telegram и временными квотами для пользователей. В этой статье я расскажу тебе о нем подробнее и поделюсь всеми нужными для деплоя исходниками.
Создаем TELEGRAM бота на PYTHON и заливаем на БЕСПЛАТНЫЙ ХОСТИНГ за 5 МИНУТ
warning
Предоставляя сторонним лицам прокси‑сервис через зарегистрированный на тебя хостинг, ты берешь на себя ответственность за все их действия в сети. Не забудь заранее обговорить, что можно делать с твоего IP-адреса, а что нельзя. А если планируешь предоставлять коммерческий сервис, подумай о составлении пользовательского соглашения, которое снимет с тебя ответственность.
Почему именно WireGuard?
Я выбрал WireGuard из‑за его скорости в сравнении с OpenVPN и IPSec. Ты только посмотри на эти графики.
Похожую статистику показывают тесты Protectli и Entrostat. В Linux WireGuard работает на уровне ядра, что дает дополнительный прирост в скорости.
В WireGuard не такой большой выбор асимметричных шифров, как в OpenVPN и других протоколах. Но это одновременно и плюс: меньше поверхность атаки на протокол.
Админ-панель и бот в Telegram
Итак, как для пользователя выглядит общение с моим ботом? Начнем знакомство с главного меню.
При первом входе пользователь получает приветственное сообщение от бота и тестовую подписку. В конфигах бота ты сможешь сам задать все тексты и параметры вроде времени, на которое предоставляется тестовая подписка.
В главном меню пользователь может ознакомиться со статусом своей подписки, продлить ее и получить конфиг с подробной инструкцией для подключения, а в разделе «Продлить» — приобрести подписку на определенное время.
Оплата выполняется онлайн, через сам Telegram. Соответственно, мы можем выбрать любую платежную систему, с которой сотрудничает Telegram.
info
Я планировал использовать для оплаты Qiwi, так как там есть открытый API для создания счетов и не требуется становиться самозанятым или ИП. К сожалению, недавно в Qiwi приостановили выпуск необходимых токенов и не сообщают о сроках возобновления. Однако в исходниках ты найдешь вариант админской панели для Qiwi.
После того как пользователь выбрал и оплатил подписку, ему приходит сообщение об удачной оплате и сразу же обновляется информация о его подписке.
В разделе «Как подключить» пользователь может получить свой конфиг для подключения к VPN-серверу и подробную инструкцию, как настроить WireGuard на своем телефоне и как им пользоваться.
И наконец, самый главный раздел — «Админ‑панель», к которому имеет доступ только админ бота.
Раздел «Вывести пользователей» позволяет получить список всех пользователей системы или только пользователей с оплаченной подпиской.
В разделе «Редактировать пользователя по id», введя Telegram ID пользователя, мы можем добавить время или обнулить его (то есть забрать подписку).
Раздел «Статичные пользователи» может понадобиться для предоставления доступа к VPN пользователям, которые не зарегистрированы в Telegram. В этом разделе мы можем создавать статичных пользователей, удалять их и получать конфиги для подключения.
Вот и всё меню. Но в боте еще есть уведомления пользователей об окончании подписки. Все тексты уведомлений можно править в файле JSON.
Настройка бота
С тем, как выглядит бот, я тебя познакомил, теперь покажу настройки и скрипт, который разворачивает и настраивает WireGuard в пару кликов.
Начнем с конфигов бота. Первый конфиг называется config. json , в нем содержатся основные настройки бота.
Источник: xakep.ru
Как создать MTProto server для proxy в Телеграмме?
С выходом MTProxy в Телеграмме появилась возможность монетизации прокси, за счет функции promoted channel. Теперь создание MTProto server будет не просто благотворительным жестом в поддержку Digital Resistance, но и реальным способом раскрутить свой канал, и начать зарабатывать на рекламе в Telegram .
Как поднять собственный MTProto server для Telegram ?
Как добавить спонсорский канал для MTProto (MTProxy)?
До выхода официального Docker-образа от Telegram , пользователи успели создать различные скрипты для настройки собственного MTProxy. Разберем вкратце, какие альтернативы официальному решению Telegram существуют.
Python: поддерживает спонсорские каналы; поддерживает IPv6; прост в установке.
PHP: есть проблемы с клиентами Android (не отправляются сообщения); десктоп-клиенты Telegram работают отлично.
Java: требуется JRE 8 или JDK 8 (на версии 9 и выше не будет работать).
C (Официальная версия MTProxy от Telegram ): использует много ресурсов процессора; поддерживает спонсорские каналы; работает стабильно.
Официальный Docker-образ — самый простой, быстрый и эффективный способ поднять свой MTProto proxy server. Автоматизированное развертывание контейнера и легкое управление на уровне ОС позволяет настроить прокси сервер на любой Linux-системе.
Системные требования:
- VDS/VPS сервер, находящийся в любой стране, в которой Телеграм не заблокирован;
- Linux OS: Ubuntu 14.04+, CentOS 6+, Debian 8+;
- корневой доступ через SSH.
Создаем MTProto server
Нам нужен только сервер с установленным Docker’ом и доступом в интернет, и 443-ий порт должен быть свободным. Для запуска прокси все, что вам нужно сделать, это выполнить команду:
docker run -d -p443:443 —name=mtproto-proxy —restart=always -v proxy-config:/data telegrammessenger/proxy:latest
Журнал контейнера доступен по команде:
docker logs mtproto-proxy
[+] Using the explicitly passed secret: ’00baadf00d15abad1deaa515baadcafe’.
[+] Saving it to /data/secret.
[*] Final configuration:
[*] Secret 1: 00baadf00d15abad1deaa515baadcafe
# ваш текущий секретный ключ
[*] tg:// link for secret 1 auto configuration: : tg://proxy?server=3.14.15.92secret=00baadf00d15abad1deaa515baadcafe
# ссылка для подключения
[*] t.me link for secret 1: tg://proxy?server=3.14.15.92secret=00baadf00d15abad1deaa515baadcafe
[*] Tag: no tag # параметр для привязки promoted-канала
[*] External IP: 3.14.15.92
[*] Make sure to fix the links in case you run the proxy on a different port.
Добавить в заметки чтобы посмотреть позже?
Параметры IP и port могут быть определены ошибочно — проследите за этим, и при необходимости исправьте. Также, обязательно исправьте ссылки, если вы решите запустить прокси-сервер на другом порту, отличном от 443.
Secret — это обязательный параметр конфигурации: он будет создан автоматически при запуске контейнера, и будет сохраняться при обновлении.
Регистрируем свой MTProto прокси в Телеграме
- Отправить команду /start.
- Затем команду /newproxy — для регистрации нового МТПрото.
- Отправить адрес в формате «host:port».
Настраиваем конфигурацию MTProxy server
Если необходимо задать секретный ключ вручную (например, при развертывании нескольких прокси-серверов с балансировкой нагрузки DNS), можно задать переменную SECRET в виде 16-байтового числа в шестнадцатеричной системе:
docker run -d -p443:443 -v proxy-config:/data -e SECRET=00baadf00d15abad1deaa51sbaadcafe telegrammessenger/proxy:latest
Для символов необходимо использовать нижний регистр. Для генерации числа воспользуйтесь одной из Linux-команд:
$ tr -dc ‘a-f0-9’ < /dev/urandom | dd bs=1 count=32 2>/dev/null
$ openssl rand -hex 16 # требуется openssl
MTProto поддерживает задание сразу нескольких различных ключей для пользовательских групп, максимум до 16 параметров. Можно указать их явно в переменной SECRET в виде шестнадцатеричных строк, разделенных запятыми:
docker run -d -p443:443 -v proxy-config:/data -e SECRET=935ddceb2f6bbbb78363b224099f75c8,2084c7e58d8213296a3206da70356c81 telegrammessenger/proxy:latest
Либо можно разрешить контейнеру автоматически создавать “секреты”, используя переменную SECRET_COUNT (нужно указать количество генерируемых строк).
docker run -d -p443:443 -v proxy-config:/data -e SECRET_COUNT=4 telegrammessenger/proxy:latest
Обновление MTProto server
Команда Telegram пообещала вносить минимальное количество изменений, но тем не менее, рекомендуется делать обновление прокси-сервера один раз в сутки. Перечень команд для обновления:
$ docker pull telegrammessenger/proxy # обновить образ
$ docker stop mtproto-proxy # остановить контейнер
$ docker rm mtproto-proxy # удалить контейнер
$ docker run . # создать из обновленного образа и запустить контейнер заново
$ docker logs -f —tail=30 mtproto-proxy # посмотреть журнал контейнера
Статистика и производительность MTProxy
Один рабочий процесс рассчитан на обработку нескольких десятков тысяч клиентских подключений. Для оптимальной производительности это количество искусственно ограничено до 60 000 соединений на одно ядро ЦПУ. По умолчанию запускается два рабочих процесса. Если ваш прокси рассчитан на большое число подключений, обязательно настройте WORKERS переменную, увеличив количество процессов. Однако не стоит запускать прокси-процессов больше, чем ядер в процессоре.
docker run -d -p443:443 -v proxy-config:/data -e WORKERS=16 telegrammessenger/proxy:latest
Можно просматривать основные метрики работы MTProto прокси сервера на localhost:
Если прокси-сервер запущен с параметром —net=host , для получения статистики выполните команду:
Если прокси запущен с пробрасыванием портов, выполните другую команду:
$ docker exec mtproto-proxy curl http://localhost:2398/stats
- ready_targets — количество основных серверов Telegram , к которым будет пытаться подключиться прокси.
- active_targets — количество основных серверов Telegram , к которым фактически подключен прокси. Должна быть равна ready_targets.
- total_special_connections — количество входящих клиентских подключений к MTProxy.
- total_max_special_connections — верхний предел входящих подключений к MTProxy. Равен 60 000, умноженные на количество процессов WORKERS.
В случае с SOCKS5 server, любой пользователь Telegram может использовать прокси, созданный и поддерживаемый пабликом, который он не читает, и возможно даже не знает о его существовании. В случае же МТПрото server, за пользование сервисом вы должны заплатить подпиской на канал.
Telegram реализовал монетизацию для владельцев proxy server через рекламу Proxy спонсора. Proxy sponsor — это канал, который будет закреплен вверху всех диалогов, и его не получится скрыть из топа, пока вы не отключитесь от текущего прокси-сервера, или не подпишетесь.
Можно показывать собственный канал, и окупать расходы на поддержку сервера с продажи рекламы в нем. Либо, если владелец не хочет заниматься ведением Telegram канала, он может брать плату за размещение в Promoted channel чужого паблика.
docker run -d -p443:443 -v proxy-config:/data -e TAG=3f40462915a3e6026a4d790127b95ded telegrammessenger/proxy:latest
Обратите внимание, что переменная TAG не сохраняется: вам придется заново задавать ее в настройках каждый раз при запуске или пересоздании прокси-контейнера.
Источник: trafictop.top