(скрипт написан исключительно для нашего любимого VPS, и не претендует на универсальность и работу с какими-либо другими конфигурациями серверов)
Для тех, кто начинает с самого начала...
Нам понадобится маршрутизатор Keenetic (или ZyXel Keenetic) с USB-портом(ами) поддерживающий работу с накопителями.К таковым не относятся устройства: 4G II, 4G III, а также - бюджетные модели 2024-го года (уточняйте поддержку соответствующих функций на сайте производителя).
Если у вас ZyXel Keenetic (с KeeneticOS версии 2.x)...
Открываем (в веб-конфигураторе) интерфейс командной строки, обычно это:http://192.168.1.1/a
И вводим в поле "Command" одну из следующих команд:
components sync legacy
(для KeeneticOS до версии 2.06)
components list legacy
(для KeeneticOS версии 2.06 и выше)
Нажимаем кнопку "Отправить запрос".
Затем, переходим в "Управление/Параметры системы", проверяем наличие обновлений KeeneticOS, и если таковые есть - устанавливаем их...
Чтобы компенсировать отсутствие DoT и DoH в KeeneticOS 2.x (если это необходимо) - вы можете воспользоваться пунктом "4: Предварительная настройка ZyXel Keenetic (с KeeneticOS 2.x)" (находящемся в разделе "Дополнительно", скрипта NK)...
- Поддержка открытых пакетов
- Протокол IPv6
- Модули ядра подсистемы Netfilter
- Пакет расширения Xtables-addons для Netfilter
Чтобы упростить поиск нужных компонентов в списке - можно воспользоваться полем "Поиск" (Поиск компонентов по имени.) Достаточно ввести несколько первых букв (из названия компонента)...
Некоторые компоненты - могут не отображаться в списке, пока не будут выбраны/установлены другие...
Устанавливаем недостающие, перезагружаемся и проверяем (все ли необходимые компоненты установились)...
Если уже установлено слишком много компонентов - новым может просто не хватать свободного места. В этом случае, придётся отключить какие-нибудь неиспользуемые компоненты...
Теперь нужно определиться - где будет установлен Entware: во встроенной памяти или на USB-накопителе…
Встроенной памяти - нужно 30-40 MB (минимум), USB-накопитель - желательно отформатировать в ext4 и обязательно задать ему метку тома.
Скачиваем дистрибутив Entware (подходящий для архитектуры процессора вашего маршрутизатора): mipsel, mips, aarch64. Определить, архитектуру вашего устройства - не так просто, как хотелось бы... Открываем интерфейс командной строки:
http://192.168.1.1/a
Вводим следующую команду:
show version
И нажимаем кнопку "Отправить запрос". В отчёте (об установленной версии KeeneticOS) – будет строка: "arch": "*****" (где ***** - указание на архитектуру процессора). Если архитектура: aarch64 - можно смело качать и устанавливать соответствующий дистрибутив Entware. Если: mips - придётся воспользоваться интернетом для уточнения архитектуры (mips или mipsel)...
Если у вас актуальная модель маршрутизатора – соответствие архитектуры конкретным устройствам можно посмотреть здесь.
Переходим в "Управление/Приложения" (в веб-конфигураторе), в разделе "Диски и принтеры" - открываем накопитель (который будет использоваться для размещения Entware), создаём в корне диска папку "install" (с маленькой буквы) - помещаем в неё скачанный архив с дистрибутивом Entware.
Затем, переходим в "Управление/OPKG" и в меню "Накопитель" - выбираем диск с дистрибутивом Entware, нажимаем "Сохранить".
Дожидаемся, когда побледневшая кнопка "Сохранить" полностью исчезнет…
Переходим в "Управление/Диагностика", где нажимаем "Показать журнал". В журнале (одно за другим) будут появляться события (об устанавке различных модулей и компонентов Entware), мы ждём события "Установка системы пакетов Entware - завершена".
Теперь нам понадобится PuTTY (скачиваем, устанавливаем и запускаем его). В поле "Host Name (or IP adress)" - вводим IP-адрес вашего маршрутизатора, обычно это:
192.168.1.1
В поле "Port" - оставляем:
22
(или вводим "222", если до установки Entware в прошивке уже был установлен компонент "Сервер SSH")
И нажимаем кнопку "Open"...
(При первом подключении) появится окошко с предупреждением - в котором нужно нажать "Accept". Откроется окно терминала, в котором должен появиться запрос на ввод имени пользователя.
В качестве имени пользователя испоьзуем:
root
Нажимаем ввод, а в качестве пароля:
keenetic
(при вводе пароля - символы отображаться не будут).
Если у вас возникают сложности с вводом пароля - его можно скопировать из блокнота (или из этой инструкции) и вставить в окно терминала (кликом правой кнопки мыши)...
Если всё правильно - появится приглашение для ввода команд: "~ #"...
Чтобы начать работать с Xvps, мы просто копируем следующие несколько команд (можно скопировать сразу все):
opkg update
opkg install ca-certificates wget-ssl
opkg remove wget-nossl
wget -O /tmp/xvps.sh https://raw.githubusercontent.com/Neytrino-OnLine/Xvps/refs/heads/main/xvps.sh
mv /tmp/xvps.sh /opt/bin/xvps
chmod +x /opt/bin/xvps
и вставляем их в терминал (кликом правой кнопки мыши). В приложение wget будет добавлена поддержка ssh, оно скачает скрипт Xvps, переместит его в каталог "bin" (чтобы можно было вызывать его по имени) и сделает файл исполняемым...
Теперь, можно приступать к работе...
Вводим в консоль:
xvps
и нажимаем ввод.
Появится скромное меню, в котором нужно выбрать пункт "1" и нажать ввод. Начнётся установка Xkeen...
До определённого момента - всё будет происходить в автоматическом режиме, но потом - установщику понадобятся ответы на несколько вопросов...
(В целях экономии времени) на все вопросы мы ответим отрицательно, вы можете ответить так - как считаете нужным... После получения всех необходимых сведений - установщик выполнит все необходимые действия и завершит свою работу. Прежде - на этом месте заканчивалось всё хорошее, и начинался мучительный процесс - вникания в тонкости устройства конфигурационных *.json-файлов Xray, и попытки изменить настройки (из примеров) под свои нужды (с многочисленными сообщениями об ошибках синтаксиса и т.п.)... Но не теперь! Нажимаем любую кнопку, и попадаем в существенно расширившееся меню Xvps.
Мы воспользуемся мастером настройки (пункт "6"), который позволит нам (в режиме диалога) поочерёдно настроить все конфигурационные файлы...
Нас приветствует мастер...
В качестве демонстрации - мы настроим самый простой вариант. Для этого: откажемся от использования политики Xkeen и добавим одно прокси-подключение на порту 1080 (без авторизации)...
По завершению этого этапа настройки, можно посмотреть - как будет выглядеть конфигурация входящих подключений в json и либо начать настройку заново, либо - утвердить результат и переходить к настройке подключений исходящих...
При настройке исходящих подключений - скрипт принимает vless-ключи (больше не нужно разбираться что есть что, или использовать дополнительные программы - разбирающие ключи на составные элементы)...
По итогам - можно (опять же) просмотреть json-версию и решить (устраивает вас результат или нужно настроить исходящие подключения заново)...
У нас самая простая конфигурация, так что в маршрутизации у нас будет только одно правило (связывающее входящее подключение с исходящим)...
И снова (по итогам) к нашим услугам json, и теперь можно сохранить всю конфигурацию... (обратите внимание: Xvps - сохраняет файлы только когда ему есть что сохранить, если прервать процесс настройки (до сохранения файлов) - это никак не повлияет на работающую в данный момент конфигурацию) Ну и чтобы (если вдруг всё перестанет работать) была возможность быстро откатиться назад - Xvps не перезаписывает файлы предыдущей конфигурации, а перемещает их в специальную папку (откуда их можно быстро вернуть на место (если что))...
По завершению настройки - возвращаемся в главное меню Xvps, и чтобы изменения вступили в силу - выбираем пункт "2" (который штатными средствами перезапустит Xkeen). Можно пробовать подключаться к прокси (на порту 1080)...
ps.s У Xvps - есть демонстрационный режим:
xvps -d
Он позволяет пользоваться скриптом без взаимодействия с установленным Xkeen/Xray или вообще без него. В этом режиме можно сгенерировать все файлы настроек (которые будут сохранены в отдельной папке), и затем - перенести их в работающий Xkeen./Xray.. [/spoiler][/hide]