Видео объясняет создание каскадного VPN на голом ядре X-ray для обхода блокировок и лимитов трафика.
Key Takeaways
- Каскадный VPN помогает обходить блокировки и лимиты трафика в мобильных сетях.
- Схема с двумя серверами разделяет трафик на российский и иностранный для обхода ограничений.
- Скрипт автоматизирует настройку каскада и обновление геофайлов для маршрутизации.
- Использование разных транспортов XXTP и TCP возможно и гибко настраивается.
- Для VPS рекомендуется хостинг Fornex с удобной поддержкой и географией серверов.
What the video covers
- Автор рассказывает о создании каскадного VPN на сервере с голым ядром X-ray без панелей.
- Объясняется, для чего нужен каскадный VPN: обход блокировок и ограничений трафика в мобильных сетях.
- Разбирается схема работы каскада с двумя серверами — входящим (российским) и исходящим (иностранным).
- Поясняется, почему мобильный оператор не видит весь трафик, а только первый участок соединения.
- Представлен скрипт для настройки каскада, который автоматически редактирует конфигурацию и скачивает геофайлы.
- Геофайлы используются для маршрутизации трафика, с периодическим обновлением через созданный скрипт.
- Рассматривается пример с двумя серверами и разными типами транспорта XXTP и TCP.
- Рекомендован VPS-хостинг Fornex с широкой географией серверов и русскоязычной поддержкой.
- Показан процесс создания клиента на исходящем сервере и запуск скрипта на входящем сервере.
- В конце видео демонстрируется проверка работы каскада и итоговые результаты.
Chapters
- 00:00Введение и объявление о Telegram-канале
- 00:34Зачем нужен каскадный VPN и его задачи
- 01:13Разъяснение работы провайдеров и трафика
- 01:51Обзор скрипта для настройки каскада
- 03:08Маршрутизация и обновление геофайлов
- 03:53Схема работы каскада и выбор серверов
- 04:28Рекомендации по VPS и пример настройки
- 05:17Создание клиента и запуск скрипта
- 06:20Проверка конфигурации и итоговые выводы
Full Transcript — Download SRT & Markdown
Speaker A
Перед тем, как начнём, небольшое объявление. У этого YouTube-канала теперь есть Telegram. Там я буду публиковать анонсы новых видео и заметки по теме канала. Всё, о чём хочется поделиться, но на целый ролик материала не хватает.
Speaker A
Ну и также будем просто общаться. Вы мне обратную связь, а друг другу помощь в настройке серверов. Ссылка, как всегда, в описании. Подписывайся, буду рад тебя там видеть. Добрый день, дорогие друзья.
Speaker A
Вы на канале Серверные технологии. И сегодня я покажу, как создать каскадный VPN на сервере с голым ядром, без всяких панелей. У меня уже было видео о каскаде на панелях, и, как выяснилось, многие не понимают, как работает эта технология,
Speaker A
для чего она нужна. И перед тем, как мы перейдём непосредственно к настройке, давайте разберём эти моменты. Для чего вообще нужен каскад? Во-первых, каскад нужен для обхода блокировок иностранного сервера, потому что при пробросе трафика через российский VPS заблокированный иностранный сервер становится доступен.
Speaker A
И второе, в нашем случае, даже более важное, каскад нужен для того, чтобы обойти ограничения в 15 ГБ трафика к иностранным серверам на мобильных сетях, которые у нас собирались вести. Не для обхода всплывающих плашек о том, что мы используем VPN в российских приложениях.
Speaker A
Для этого есть раздельное туннелирование. Про него, кстати, у меня есть отдельное видео, ссылка на него будет в подсказках. А именно для обхода лимита в 15 ГБ. Тут всплывает второе заблуждение. Какая разница, провайдер всё равно видит наш транзитный трафик
Speaker A
через российский сервер к иностранному серверу. Комментаторы, которые это пишут, видимо, представляют себе, что есть какой-то один большой провайдер, который раздаёт всем интернет и следит за каждым соединением, чтобы, не дай бог, никто не проскочил. В реальности же у нас куча провайдеров, каждый из
Speaker A
которых отвечает только за свой участок сети. Если объяснять совсем упрощённо, то вот у нас есть схема каскада. За участок А отвечает мобильный оператор.
Speaker A
Он видит подключение до вашего входящего сервера. А в дата-центре уже другой провайдер интернета. За соединение между вашим входящим и исходящим сервером отвечает уже он. Мобильный оператор видит только первый участок соединений и не видит последующий. Чисто теоретически, конечно, возможно, что
Speaker A
операторы будут сопоставлять трафик от вас до входящего сервера и от входящего сервера до исходящего. Но это технически очень сложно сделать и уже больше похоже на маразм. Так что можете не беспокоиться, что ваш оператор вас догонит и добавит счёт за услуги
Speaker A
международного соединения. Итак, перейдём к настройке каскада на ядре. Я написал небольшой скрипт, который редактирует файл конфигурации входящего сервера, добавляет туда нужные настройки для создания каскада. Мой скрипт установки голого ядра работает с транспортами XXTP и TCP, поэтому скрипт для настройки каскада поддержит эти два
Speaker A
транспорта. И давайте рассмотрим сам скрипт. Вот он опубликован у меня в GitHub. Нажимаем на файл под названием каскад. Ну и вот вы можете увидеть код моего скрипта. Давайте пробежимся по нему. Здесь происходит парсинг VLE ссылок. Та ссылка, которую вы
Speaker A
используете для подключения, вы закидываете её в этот скрипт. Она развивает его на параметры, которые нам необходимо будет добавить в файл конфигурации. Дальше он скачивает геофайлы, которые мы будем использовать для маршрутизации. По умолчанию при установке скрипта устанавливаются файлы китайские. Мы их будем принудительно
Speaker A
заменять. То есть мы удалим файлы, которые уже были скачаны, и скачаем новые файлы. Использовать мы будем геофайлы из репозитория Runet Freedom.
Speaker A
Дальше у нас создаётся резервная копия файла конфигурации на всякий случай, чтобы можно было восстановить его. И вот этот блок у нас добавляет маршрутизацию.
Speaker A
То есть российские домены и IP-адреса будут идти напрямую с входящего сервера, который находится в России, а весь остальной трафик будет идти дальше до иностранного сервера, после чего у нас будет создан скрипт обновления геофайлов. То есть геофайлы, они периодически устаревают, их надо
Speaker A
периодически обновлять. И чтобы не делать это вручную, мы создадим исполняемый файл, который будет автоматически раз в неделю скачивать геофайлы заново. Как с ним работать, я покажу чуть дальше. Вот. И здесь у нас добавляется такой параметр, как out, то
Speaker A
есть исходящее подключение. Возможен добавление аутбондов для транспорта XXTP и для транспорта TCP. Скрипт сам по ссылке определяет тип транспорта и сам подбирает нужные параметры. Также давайте вспомним схему работы каскада. У нас есть входящий сервер, в нашем случае это сервер России. Трафик на российские
Speaker A
IP-адреса и российские домены идёт с него напрямую, а трафик на иностранный сервер идёт дальше на исходящий сервер и оттуда уже идёт во внешний интернет.
Speaker A
Именно такая схема работы каскада реализована в моём скрипте. Также сюда между входящим и исходящим сервером можно добавить сколько угодно других серверов промежуточных, но в большинстве случаев двух серверов вполне достаточно.
Speaker A
Сразу оговорюсь, что по вполне, я думаю, очевидным причинам я не буду использовать российские IP-адреса в этом ролике. Я буду использовать два иностранных сервера для того, чтобы показать, как работает каскад. У вас, соответственно, входящий сервер будет российский, скорее всего, а исходящий
Speaker A
сервер будет находиться в любой другой стране. Для создания собственного VPN-сервера нам понадобится VPS. И в качестве хостинга VPS я рекомендую компанию Fornex. У них обширная география серверов. Есть серверы как в Европе, так и в Америке. Сам хостинг зарегистрирован в Евросоюзе и при этом
Speaker A
имеет русскоязычную техподдержку и принимает российские банковские карты. Ссылка на Fornex будет в описании. Итак, вот я уже здесь создал VPN-сервера, которые работают на голом ядре. На входящем сервере, который я подписал Enter с IP-адресом, заканчивающимся на 224, у меня тип транспорта TCP, на
Speaker A
исходящем сервере, IP-адрес которого заканчивается на 43, у меня тип транспорта XXTP. Я использую такие типы транспорта только для примера. Каскад будет работать в любой конфигурации. То есть, если вы хотите использовать, например, два сервера с транспортом XXTP, либо два сервера с транспортом
Speaker A
TCP, всё это будет работать. Можете комбинировать подключение, как хотите. Скрипт запускается на входящем сервере.
Speaker A
От исходящего сервера нам нужен только клиент для подключения. Всё, мы находимся на входящем сервере. Давайте очистим терминал командой clear. Также на исходящем сервере тоже всё очистим.
Speaker A
Итак, для начала нам нужна ссылка для подключения. Мы идём на исходящий сервер, и здесь мы создаём клиента для нашего подключения. Напоминаю, что для того, чтобы создать клиента нового, мы вводим команду new user. Сюда вводим имя клиента. Я назову его exit exhtp. Всё,
Speaker A
enter. И вот мы получили ссылку для подключения. Дальше на входящем сервере мы будем запускать скрипт. Для того чтобы запустить скрипт, мы заходим на GitHub, мотаем немножко вниз, и вот здесь у нас есть пункт использования скрипта. Берём вот эту вот команду,
Speaker A
копируем её, возвращаемся в терминал и вставляем её в терминал. Для того чтобы что-то вставить в терминале Termius, напоминаю, что нужно использовать команду Ctrl Shift V. Всё, жмём Enter.
Speaker A
Теперь скрипт запрашивает VLE ссылку. То есть VLE ссылка — это ссылка для подключения с исходящего сервера.
Speaker A
Копируем её. Чтобы что-то копировать в терминале Termius, напоминаю, мы используем сочетание клавиш Ctrl Shift C и вставляем Ctrl Shift V. Дальше жмём Enter.
Speaker A
Всё, каскад готов, настройки произведены. Давайте убедимся в этом. Напоминаю, что скрипт установки ядра создаёт файл подсказок. Посмотрим его.
Speaker A
Во-первых, командой list, какие у нас есть файлы в папке с файлом конфигурации. И вот мы видим, что у нас помимо основного файла конфигурации config.json есть ещё файл config.backup.
Speaker A
Давайте посмотрим сам файл config.json. Открываем его. И вот что мы видим. Вот наши правила, которые мы добавили. Это правило маршрутизации.
Speaker A
Это наши клиенты. Идём вниз. И вот мы видим, здесь есть у нас раздел outbonds.
Speaker A
И вот как раз у нас здесь...
Speaker A
нужно создать задачу в Chrome, который будет запускать скрипт обновления геофайлов. Как это сделать? Вводим вот эту команду Chrome tabe.
Speaker A
Здесь нам нужно будет выбрать текстовый редактор для редактирования файла конфигурации Крона. Самый простой и самый лёгкий в использовании - это под номером один nна. Вы можете использовать любой другой. Я выберу его. Нажимаю единичку, жму enter. И вот у нас
Speaker A
открывается файл конфигурации Кро. Просто перемещаем ползунок вниз и добавляем туда вот эту строчку. И вставить. Вообще, что такое Chron? Кто не в курсе, это встроенный в Linux планировщик задач, который автоматически выполняет команды либо скрипты по заданному расписанию. То есть вот здесь
Speaker A
мы задали время выполнения скрипта и, собственно, путь до нашего исполняемого файла, который будет обновлять геофайлы.
Speaker A
Время выполнения задач в Chкron записывается вот таким вот шифром. То есть в данном случае это значит, что геофайлы будут обновляться каждый понедельник в 3:00 ночи. Время здесь берётся по времени сервера.
Speaker A
Соответственно, вы можете перед тем, как устанавливать время, проверить, какой у вас часовой поязд на сервере, и поменять тайминг при необходимости. Но по умолчанию каждый понедельник в 3:00 ночи у вас геофайлы будут обновляться. Всё.
Speaker A
Для того, чтобы выйти и сохранить, нажимаем Ctrl X, Y, Enter. Всё, задача Кробавлена. Давайте очистим терминал и давайте проверим наше соединение, как будет работать наш каскад. Создадим ссылку для подключения. Для этого я использую команду New user. Как-нибудь этого юзера называю. И вот я получаю
Speaker A
ссылку для подключения. Открываем клиент, добавляем клиент ссылку для подключения. Жмём установить системный прокси. И теперь давайте проверим, как работает наше подключение. Открываем любой сайт для проверки IP-адреса. И вот на иностранном сайте, домен которого заканчивается на.com, мы видим IP-адрес
Speaker A
исходящего сервера. То есть, напоминаю, у меня исходящий сервер, IP-адрес заканчивается на 43. IP-адрес входящего сервера заканчивается на 224. Соответственно, если мы попытаемся зайти на какой-то российский сайт который например заканчивается нару, мы должны увидеть IP-адрес входящего сервера. И вот мы открываем
Speaker A
два ipuруu, и мы видим IP-адрес входящего сервера, который заканчивается на 224. Это значит, что всё у нас прекрасно работает. Итак, в сегодняшнем ролике мы с вами рассмотрели создание каскадного VPN на голом ядре. Если вам понравилось это видео, ставьте лайки,
Speaker A
делитесь этим видео с друзьями. А на этом у меня всё и до встречи в следующих видео. Yeah.
Topics:каскадный VPNголое ядроX-rayобход блокировокограничения трафикаVPSForenxмаршрутизация трафикаскрипт настройки VPNXXTP











