• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Разворачиваем свой VPN-сервер с оплатой через Telegram

admin

#root
Администратор
Регистрация
20.01.2011
Сообщения
7,665
Розыгрыши
0
Реакции
135
В этой статье я покажу не только как сделать свой собственный VPN-сервис на основе WireGuard, но и как его настроить, чтобы им смогли пользоваться все твои друзья и знакомые. И даже, если пожелаешь, закидывать тебе свою долю за хостинг, пользуясь простым ботом в Telegram.
Возможность шифровать трафик и проксировать его через другие страны сейчас настолько необходима, что я не стану тратить твое время и в очередной раз перечислять все случаи, когда без VPN не обойтись. При этом большинство пользователей выбирают готовые сервисы: либо бесплатные, но ненадежные и со встроенной рекламой и слежкой, либо платные, но дорогие в сравнении с хостингом.
Чтобы сделать свой VPN, требуется поморочиться с командной строкой. Гикам вроде нас с тобой такое занятие в радость: я, не имея никакого опыта, поднял такой сервис за один вечер. Друзья стали спрашивать, нельзя ли и им получить такой же быстрый, надежный и дешевый сервис. Однако копаться с настройками никто из них не хотел.

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

Предоставляя сторонним лицам прокси‑сервис через зарегистрированный на тебя хостинг, ты берешь на себя ответственность за все их действия в сети. Не забудь заранее обговорить, что можно делать с твоего IP-адреса, а что нельзя. А если планируешь предоставлять коммерческий сервис, подумай о составлении пользовательского соглашения, которое снимет с тебя ответственность.



Почему именно WireGuard?

Я выбрал WireGuard из‑за его Для просмотра ссылки Войди или Зарегистрируйся в сравнении с OpenVPN и IPSec. Ты только посмотри на эти графики.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяПохожую статистику показывают тесты Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся. В Linux WireGuard работает на уровне ядра, что дает дополнительный прирост в скорости.
В WireGuard не такой большой выбор асимметричных шифров, как в OpenVPN и других протоколах. Но это одновременно и плюс: меньше поверхность атаки на протокол.

Админ-панель и бот в Telegram

Итак, как для пользователя выглядит общение с моим ботом? Начнем знакомство с главного меню.
Для просмотра ссылки Войди или ЗарегистрируйсяПри первом входе пользователь получает приветственное сообщение от бота и тестовую подписку. В конфигах бота ты сможешь сам задать все тексты и параметры вроде времени, на которое предоставляется тестовая подписка.
В главном меню пользователь может ознакомиться со статусом своей подписки, продлить ее и получить конфиг с подробной инструкцией для подключения, а в разделе «Продлить» — приобрести подписку на определенное время.
Для просмотра ссылки Войди или ЗарегистрируйсяОплата выполняется онлайн, через сам Telegram. Соответственно, мы можем выбрать любую платежную систему, с Для просмотра ссылки Войди или Зарегистрируйся.
info

Я планировал использовать для оплаты Qiwi, так как там есть открытый API для создания счетов и не требуется становиться самозанятым или ИП. К сожалению, недавно в Qiwi приостановили выпуск необходимых токенов и не сообщают о сроках возобновления. Однако в исходниках ты найдешь вариант админской панели для Qiwi.


После того как пользователь выбрал и оплатил подписку, ему приходит сообщение об удачной оплате и сразу же обновляется информация о его подписке.
Для просмотра ссылки Войди или ЗарегистрируйсяВ разделе «Как подключить» пользователь может получить свой конфиг для подключения к VPN-серверу и подробную инструкцию, как настроить WireGuard на своем телефоне и как им пользоваться.
Для просмотра ссылки Войди или ЗарегистрируйсяИ наконец, самый главный раздел — «Админ‑панель», к которому имеет доступ только админ бота.
Для просмотра ссылки Войди или ЗарегистрируйсяРаздел «Вывести пользователей» позволяет получить список всех пользователей системы или только пользователей с оплаченной подпиской.
Для просмотра ссылки Войди или ЗарегистрируйсяВ разделе «Редактировать пользователя по id», введя Telegram ID пользователя, мы можем добавить время или обнулить его (то есть забрать подписку).
Для просмотра ссылки Войди или ЗарегистрируйсяРаздел «Статичные пользователи» может понадобиться для предоставления доступа к VPN пользователям, которые не зарегистрированы в Telegram. В этом разделе мы можем создавать статичных пользователей, удалять их и получать конфиги для подключения.
Для просмотра ссылки Войди или ЗарегистрируйсяВот и всё меню. Но в боте еще есть уведомления пользователей об окончании подписки. Все тексты уведомлений можно править в файле JSON.
Для просмотра ссылки Войди или Зарегистрируйся
Настройка бота

С тем, как выглядит бот, я тебя познакомил, теперь покажу настройки и скрипт, который разворачивает и настраивает WireGuard в пару кликов.
Начнем с конфигов бота. Первый конфиг называется config.json, в нем содержатся основные настройки бота.

Код:
{
  "admin_tg_id": 440887487,
  "one_month_cost": 120,
  "trial_period": 2700,
  "UTC_time": 3,
  "tg_token": ":_",
  "tg_shop_token": "56456767:TEST:343455"
}

  • []admin_tg_id — Telegram ID админа. Узнать свой ID можно у бота Для просмотра ссылки Войди или Зарегистрируйся.
    []one_month_cost — цена в рублях за месяц подписки. Минимальная сумма в рублях должна быть эквивалента одному доллару, но, как показала практика, стоит выставлять немного больше, чем актуальный курс доллара. Курс, который использует Telegram, можно узнать на Для просмотра ссылки Войди или Зарегистрируйся.
    []trial_period — период пробной подписки. По умолчанию установлено 45 минут, то есть 2700 секунд.
    []UTC_time — часовой пояс в формате UTC. Бот будет учитывать его при выводе времени. По умолчанию установлено UTC+3, то есть московское время.
    []tg_token — токен бота, полученный от Для просмотра ссылки Войди или Зарегистрируйся.
    []tg_shop_token — токен магазина в Telegram. Нужен, если мы хотим принимать оплату. Если оставить это значение пустым, то бот просто не будет отправлять форму для оплаты и, соответственно, оплата онлайн будет недоступна.
Как получить tg_shop_token? Переходи в Telegram к боту Для просмотра ссылки Войди или Зарегистрируйся и пиши /mybots. Затем выбирай нужного бота и переходи в раздел Payments. Тут ты можешь ознакомиться со всеми доступными платежными системами и узнать, как их подключить. После подключения платежной системы возвращайся в BotFather. В разделе Payments должен появиться наш заветный ключ.
Для просмотра ссылки Войди или ЗарегистрируйсяИ последний конфигурационный файл хранит в себе текст сообщений, которые бот присылает пользователям. Сообщения могут быть оформлены с применением HTML-стилей Telegram, а как ими пользоваться, можешь посмотреть в Для просмотра ссылки Войди или Зарегистрируйся.
{
"hello_message": "<b>Почему стоит выбрать Obi VPN?</b>...",
"trial_message": "Чтобы вы смогли оценить наш VPN...",
"how_to_connect_info": "Ваш конфиг для подключения к VPN...",
"success_pay_message": "Оплата прошла успешно...",
"ended_sub_message": "Ваша подписка закончилась...",
"alert_to_renew_sub": "До конца действия..."
}

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


ДЕПЛОЙ​

Скажу сразу, что скрипт я разрабатывал на Ubuntu и тестировал только на Ubuntu 20.04 и 22.04, поэтому не могу дать гарантии, что он заработает на какой‑то другой разновидности Linux.

Установка выполняется одной командой:

Код:
Код:

sudo wget https://raw.githubusercontent.com/Obi0Wan0Kenobi/ObiVpn/master/Wireguard-installer-with-Adminpanel.sh \
&& chmod 774 Wireguard-installer-with-Adminpanel.sh \
&& ./Wireguard-installer-with-Adminpanel.sh
Эта команда скачивает установочный скрипт, дает ему права на запуск, а затем запускает.

Когда увидишь приветственное сообщение, приготовься заполнять обязательные поля, они нужны для нормального функционирования нашего VPN. Значения некоторых параметров скрипт автоматически получает из системы и предложит лишь подтвердить их корректность или изменить.

Dobro pozhalovat' v ustanovshchik WireGuard!
1.Vvedite publichnyj IPv4 adress: 185.200.190.143
2.Vvedite setevoj interfejs: ens3
3.Vyberite port kotoryj budet ispol'zovat' WireGuard [1-65535]: 49584
4.Vyberite pervyj DNS server kotoryj budut ispol'zovat' klienty: 1.1.1.1
5.Vyberite vtoroj DNS server kotoryj budut ispol'zovat' klienty (opcional'no): 1.0.0.1
6.Hotite li ustanovit' srazu Telegram bota(1 - Da, 0 - Net): 1
7.Vvedite API-klyuch ot vashego Telegram bota:
8.Vvedite klyuch ot vashej platezhnoj sistemy:
9.Vvedite Telegram-id administratora:

Вводим публичный адрес IPv4 (получить его можно, выполнив команду ip -a в терминале или посмотрев в панели администрирования хостинг‑провайдера).
Здесь требуется ввести сетевой интерфейс (его тоже можно узнать из вывода команды ip -a, чаще всего это eth0, ens5 или что‑то в таком духе).
Порт, который будет использовать WireGuard (по умолчанию скрипт выставляет случайный порт с 49152 до 65535, но ты можешь указать любой).
Основной DNS-сервер, который будет использоваться при генерации конфигов для подключения (по умолчанию устанавливается DNS Cloudflare).
Второй DNS-сервер (по умолчанию Cloudflare).
Выбираем, хотим ли устанавливать панель администрирования или нет.
Вводим API Token нашего бота, полученный от BotFather.
Если не вводить API Token платежной системы, оплата в боте работать не будет.
И последнее поле, которое нам надо заполнить, — это наш Telegram ID, который можно узнать у @userinfobot. Пользователь с указанным на этом шаге ID станет администратором бота и всего ресурса.

После заполнения всех полей остается только нажать любую клавишу, и установка начнется. В конце скрипт напишет WireGuard Installed.

Теперь заходим в нашего бота и пишем команду /start.

83a411e239ecbe296de07.png


Бот нам ответил, а значит, установка прошла успешно. Теперь мы можем запросить у бота создание конфига, который затем импортируем в клиент WireGuard на своем устройстве и попробуем зайти на сайт 2ip.ru для проверки работоспособности VPN. Как видишь, наш исходный IP, местоположение и прочие параметры изменились, а это значит, что VPN работает отлично.


b4385c44ef4aad49c166a.png


ВЫВОДЫ​

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

Напоследок — пара советов по выбору хостинга. Хоть WireGuard и работает быстрее других протоколов, не стоит забывать о влиянии расположения дата‑центра. Советую не оплачивать VPS сразу надолго, а сначала сравнить разные регионы, дата‑центры, провайдеров и выбрать оптимальный вариант.

Исходники ботов доступны на моем GitHub: есть Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся.
 
Activity
So far there's no one here
Сверху Снизу