Xray на VDS сервере и маршрутизаторе Keneetic

от автора

Какие цели у этого руководства:
Обеспечение доступа через VDS сервер используя технологии xray, посредством маршрутизатора Keenetic и скрипта Xkeen.

Кому предназначено:
Для людей, которые хотят решить поставленную задачу, не вдаваясь во все тонкости настройки, выполняя инструкции шаг за шагом.

Особая благодарность автору скрипта Xkeen Skrill0 Группа в Telegram
Подробное руководство по скрипту

Установка 3X-UI на VDS сервер

Российские VDS сервера можно арендовать по ссылке
В качестве ssh-клиента на Windows будем использовать Putty

Адрес 45.89.67.100 выбран для примера

Альтернативно на Windows начиная с Windows 8, можно подключатся из консоли Powershell, также как и на Linux/macOS

ssh root@45.89.67.100 

На Linux/macOS используем стандартную консоль

ssh root@45.89.67.100 

Первым делом обновляемся и устанавливаем curl

Debian/Ubuntu

apt update && apt upgrade && apt install curl -y 

RHEL/CentOS

dnf check-update && dnf upgrade && dnf install curl 

Устанавливаем 3X-UI с помощью скрипта

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) 

На запрос, отвечаем отрицательно n, таким образом будет сгенерирован безопасный логин и пароль

Install/update finished! For security it's recommended to modify panel settings     Do you want to continue with the modification [y/n]?:n 

Готово, сервер автоматически поднялся на порте 2053, не забываем записать сгенерированные данные

Install/update finished! For security it's recommended to modify panel settings     Do you want to continue with the modification [y/n]?:n   Cancel...   set username and password success   This is a fresh installation, will generate random login info for security concerns:   ###############################################   Username: F92M6aia   Password: 9/fHDY37   WebBasePath: mBDNYtiG   ###############################################   If you forgot your login info, you can type x-ui and then type 8 to check after installation   Start migrating database...   Migration done!   Created symlink /etc/systemd/system/multi-user.target.wants/x-ui.service → /etc/systemd/system/x-ui.service.   x-ui v2.3.4 installation finished, it is running now...      x-ui control menu usages:     ----------------------------------------------   x-ui              - Enter     Admin menu   x-ui start        - Start     x-ui   x-ui stop         - Stop      x-ui   x-ui restart      - Restart   x-ui   x-ui status       - Show      x-ui status   x-ui enable       - Enable    x-ui on system startup   x-ui disable      - Disable   x-ui on system startup   x-ui log          - Check     x-ui logs   x-ui banlog       - Check Fail2ban ban logs   x-ui update       - Update    x-ui   x-ui install      - Install   x-ui   x-ui uninstall    - Uninstall x-ui   ---------------------------------------------- 

Регистрация доменного имени

Переходим в браузере по адресу https://freemyip.com/

Регистрируем наши «рога и копыта», разумеется это для примера

Убеждаемся что имя не занято, занимаем его CLAIM IT!

Обязательно сохраняем строку с токеном!

Возвращаемся на наш VDS и вводим полученную строку через curl

curl https://freemyip.com/update?token=f4782a18ef08fd3b3f8b33c4&domain=hoofsandhorns.freemyip.com 

В ответ получаем OK, если все прошло удачно

[5] 1178   [4]   Завершён        curl https://freemyip.com/updatetoken=f4782a18ef08fd3b3f8b33c4   root@3X-UI:/home/user# OK 

Панель администрирования 3X-UI

Возвращаемся в браузер заходим в административную панель 3X-UI уже по нашему адресу (http протокол) http://hoofsandhorns.freemyip.com:2053

http://hoofsandhorns.freemyip.com:2053/mBDNYtiG 

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

Появляется страница со статусом

Настройка безопасности в 3X-UI

Чтобы исчезла плашка о предупреждении безопасности необходимо получить SSL сертификат, после чего мы сможем безопасно входить в панель администрирования 3X-UI.

Для этого необходимо на нашем VDS сервере запустить скрипт настройки панели управления

x-ui 

Выбираем пункт 16. SSL Certificate Management

The OS release is: debian       3X-ui Panel Management Script    0. Exit Script   ————————————————    1. Install    2. Update    3. Custom Version    4. Uninstall   ————————————————    5. Reset Username & Password & Secret Token    6. Reset Settings    7. Change Port    8. View Current Settings   ————————————————    9. Start    10. Stop    11. Restart    12. Check Status    13. Check Logs   ————————————————    14. Enable Autostart    15. Disable Autostart   ————————————————    16. SSL Certificate Management    17. Cloudflare SSL Certificate    18. IP Limit Management    19. WARP Management    20. Firewall Management   ————————————————    21. Enable BBR      22. Update Geo Files    23. Speedtest by Ookla      Panel state: Running   Start automatically: Yes   xray state: Running      Please enter your selection [0-23]:16 

Далее пункт 1. Get SSL

Please enter your selection [0-23]: 16          1. Get SSL          2. Revoke          3. Force Renew          0. Back to Main Menu   Choose an option:1 

Вводим наш зарегистрированный домен hoofsandhorns.freemyip.com

Please enter your domain name:hoofsandhorns.freemyip.com 

Соглашаемся с портом 80

please choose which port do you use,default will be 80 port:↵ 

Получаем ключи

[ERR] your input  is invalid,will use default port     [INF] will use port: to issue certs,please make sure this port is open...     [Вс 26 май 2024 12:23:41 AM MSK] Changed default CA to: https://acme-v02.api.letsencrypt.org/directory   [Вс 26 май 2024 12:23:41 AM MSK] Using CA: https://acme-v02.api.letsencrypt.org/directory   [Вс 26 май 2024 12:23:41 AM MSK] Standalone mode.   [Вс 26 май 2024 12:23:42 AM MSK] Create account key ok.   [Вс 26 май 2024 12:23:42 AM MSK] Registering account: https://acme-v02.api.letsencrypt.org/directory   [Вс 26 май 2024 12:23:43 AM MSK] Registered   [Вс 26 май 2024 12:23:43 AM MSK] ACCOUNT_THUMBPRINT='DJ5g0VfLTC9OH9-IyctnEMscqenBrfulACbZGzeDkp4'   [Вс 26 май 2024 12:23:43 AM MSK] Creating domain key   [Вс 26 май 2024 12:23:43 AM MSK] The domain key is here: /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/hoofsandhorns.freemyip.com.key   [Вс 26 май 2024 12:23:43 AM MSK] Single domain='hoofsandhorns.freemyip.com'   [Вс 26 май 2024 12:23:45 AM MSK] Getting webroot for domain='hoofsandhorns.freemyip.com'   [Вс 26 май 2024 12:23:45 AM MSK] Verifying: hoofsandhorns.freemyip.com  [Вс 26 май 2024 12:23:45 AM MSK] Standalone mode server   [Вс 26 май 2024 12:23:47 AM MSK] Pending, The CA is processing your order, please just wait. (1/30)   [Вс 26 май 2024 12:23:50 AM MSK] Success   [Вс 26 май 2024 12:23:50 AM MSK] Verify finished, start to sign.   [Вс 26 май 2024 12:23:50 AM MSK] Lets finalize the order.   [Вс 26 май 2024 12:23:50 AM MSK] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/1758584822/274601066162'   [Вс 26 май 2024 12:23:51 AM MSK] Downloading cert.   [Вс 26 май 2024 12:23:51 AM MSK] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/04db8aa3f5403403649266624d72b3dbef80'   [Вс 26 май 2024 12:23:52 AM MSK] Cert success.   -----BEGIN CERTIFICATE-----   MIIENTCCAx2gAwIBAgISBNuKo/VANANkkmZiTXKz2++AMA0GCSqGSIb3DQEBCwUA   MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD   EwJSMzAeFw0yNDA2MDEyMDIzNTFaFw0yNDA4MzAyMDIzNTBaMCQxIjAgBgNVBAMT   GWdyaXRza2V2aXRjaC5mcmVlbXlpcC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMB   BwNCAASplnt5M4J8TYJrcVb11KrZOAOxgHGW3tg5+cipYe8+0C2IMgVQ+teGUR2s   U3tmaf0SQ6tn36ZW5hfd8ruARFv7o4ICHDCCAhgwDgYDVR0PAQH/BAQDAgeAMB0G   A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1Ud   DgQWBBRXhN9Hwlc+d2Oj6MIz4X8gLlBuPjAfBgNVHSMEGDAWgBQULrMXt1hWy65Q   CUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9y   My5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3Jn   LzAkBgNVHREEHTAbghlncml0c2tldml0Y2guZnJlZW15aXAuY29tMBMGA1UdIAQM   MAowCAYGZ4EMAQIBMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcASLDja9qmRzQP   5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGP1a/8IAAABAMASDBGAiEAiZ7RwnZc   EBL9V2axNHz6MskuGVmDNrAHrzHDoMRqY7UCIQDY1mBhcBg10jATKqa3oIrymAno   DmRQgXPLR5QP11xYfAB2AD8XS0/XIkdYlB1lHIS+DRLtkDd/H4Vq68G/KIXs+GRu   AAABj9Wv/B8AAAQDAEcwRQIgJnNfg70UGKQ4sJOYuFkgRWn3fScSKd73C9vUMgPI   xuACIQDclXZhKGM7lnsyQOIdRPFGDXhYroz8SuRzqibkWAKhPjANBgkqhkiG9w0B   AQsFAAOCAQEAsQR78VLSNAa8TJx9p/UiVwLbuu5v4lpELR2rd+zQQP1AYg8eIjUt   zccP6133Ca2x2uBJba/Sv08FXiEo2u8N9JdFQJBBQplqoCFMTzcMBqjLvI2TL7D8   f1jmd1HBpHgB/UCApDCESu2DQiOM+7ZcX9onEWZ0GrtCAQo7BNcyK2oiRLVHkhAN   6SLdPPPCtET0xQChk54nUfhccYAByFg3QLrsycWKkdrV8RQUg6tFQ9V01c66nrzn   3NHQcjBVLR/4XDTikPdrLIfJPWExwU3xzxbFjykZ6R9vdJK18mD2t94kcrifHZJy   C6OPFlRir5ETrTvinDGw5hmOXWJgHrUNUQ==   -----END CERTIFICATE-----   [Вс 26 май 2024 12:23:52 AM MSK] Your cert is in: /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/hoofsandhorns.freemyip.com.cer   [Вс 26 май 2024 12:23:52 AM MSK] Your cert key is in: /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/hoofsandhorns.freemyip.com.key   [Вс 26 май 2024 12:23:52 AM MSK] The intermediate CA cert is in: /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/ca.cer   [Вс 26 май 2024 12:23:52 AM MSK] And the full chain certs is there: /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/fullchain.cer   [ERR] issue certs succeed,installing certs...     [Вс 26 май 2024 12:23:52 AM MSK] The domain 'hoofsandhorns.freemyip.com' seems to have a ECC cert already, lets use ecc cert.   [Вс 26 май 2024 12:23:52 AM MSK] Installing key to: /root/cert/hoofsandhorns.freemyip.com/privkey.pem   [Вс 26 май 2024 12:23:52 AM MSK] Installing full chain to: /root/cert/hoofsandhorns.freemyip.com/fullchain.pem   [INF] install certs succeed,enable auto renew...     [Вс 26 май 2024 12:23:53 AM MSK] Already uptodate!   [Вс 26 май 2024 12:23:53 AM MSK] Upgrade success!   [INF] auto renew succeed, certs details:     total 16K   drwxr-xr-x 2 root root 4.0K Jun  2 00:23 .   drwxr-xr-x 3 root root 4.0K Jun  2 00:23 ..   -rw-r--r-- 1 root root 3.3K Jun  2 00:23 fullchain.pem   -rw------- 1 root root  227 Jun  2 00:23 privkey.pem 

Возвращаемся в браузер в панель 3X-UI, переходим в Настройки панели

  • Порт панели меняем на нестандартный, например 65456

  • В поле Путь к файлу публичного ключа сертификата панели вставляем путь из терминала /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/fullchain.cer

  • В поле Путь к файлу приватного ключа сертификата панели соответственно путь /root/.acme.sh/hoofsandhorns.freemyip.com_ecc/hoofsandhorns.freemyip.com.key

  • Поле Корневой путь URL адреса панели для большей безопасности, меняем на какое-нибудь секретное слово, например /pusti

Сохраняем и перезапускаем панель 3X-UI, теперь наш адрес для входа в панель

https://hoofsandhorns.freemyip.com:65456/pusti 

Настройка подключения

Далее необходимо создать подключение, выбираем Добавть подключение, на вкладке Подключения

Заполняем подключение:

  • Пишем название в поле Примечание, например Ausweis

  • Протокол выбираем vless

  • Порт меняем на 443

  • Безопасность переключаем на REALITY

  • В uTLS выбираем браузер, которым пользуетесь чаще, например chrome

  • Dest и SNI лучше заменить с yahoo.com на российский yandex.ru

  • Генерируем пару ключей путем нажатия на Get New Cert

  • Сохраняем подключение кнопкой Создать

Усилим маскировку нашего соединения:

  • Разворачиваем меню нашего соединения +

  • Нажимаем пиктограмму с карандашом для редактирования

  • В поле Flow выбираем xtls-rprx-vision

  • Сохраняем изменения

Готово! Для проверки работоспособности можно воспользоваться телефоном установив на Android приложение v2rayNG, а на iOS V2BOX Нажимаем значок с QR-кодом и показываем его приложению в телефоне.

Установка OPKG Entware на маршрутизатор Keenetic

Для справки
Entware — это менеджер ПО для встраиваемых систем, который открывает доступ к огромному количеству (более 1500) пакетов программ для Linux, расширяя возможности устройства, на котором он установлен. Чаще всего поддержкой Entware обладают продвинутые маршрутизаторы.

Перед установкой OPKG Entware необходимо подготовить Flash-накопитель на USB, подойдет минимальный объем (4-8 GB). Накопитель будет вставлен в USB порт постоянно, на нем будет находиться операционная система.
Делаем подготовку USB накопителя по ссылке Использование файловой системы EXT4 на USB
После того как имеем подготовленный носитель, приступаем непосредственно к установке Установка репозитория Entware на USB-накопитель

Настройка клиента xray с помощью скрипта xkeen

Для справки
Ветка по теме xkeen на форуме keenetic
Подробная инструкция по настройке

Установка скрипта

На Windows используем Putty, заходим на ваш роутер, ip-адрес может отличаться, порт 222, если задействован SSH компонент в Keenetic OS, если нет, то стандартный 22

На Linux/macOS по ssh

ssh -p222 root@192.168.1.1 

Установка скрипта Xkeen

opkg install curl tar cd /tmp curl -s -L https://github.com/Skrill0/XKeen/releases/latest/download/xkeen.tar --output xkeen.tar && tar -xvf xkeen.tar -C /opt/sbin --overwrite > /dev/null && rm xkeen.tar xkeen -i 

Выбираем 1. Установить отсутствующие GeoIP

 Выберите номер или номера действий для GeoIP          0. Пропустить       1. Установить отсутствующие GeoIP       2. Нет доступных GeoIP для обновления       3. Установить AntiFilter       4. Установить v2fly       99. Нет установленных GeoIP для удаления       Ваш выбор: 1 

Выбираем 1. Установить отсутствующие GeoSite

 Выберите номер или номера действий для GeoSite          0. Пропустить       1. Установить отсутствующие GeoSite       2. Нет доступных GeoSite для обновления       3. Установить v2fly       4. Установить AntiFilter       5. Установить AntiZapret       6. Установить Zkeen       99. Нет установленных GeoSite для удаления       Ваш выбор: 1 

Включаем автоматическое обновление для всех (1)

 Выберите номер или номера действий для автоматических обновлений          0. Пропустить       1. Включить отсутствующие задачи автоматического обновления       2. Обновить включенные задачи автоматического обновления       3. Обновить Xkeen       4. Обновить Xray       5. Включить GeoSite       6. Обновить GeoIP       99. Выключить все       Ваш выбор: 1 

Устанавливаем обновление, например ежедневно в 00:00

 Время автоматического обновления для всех задач:       Выберите день       0. Отмена       1. Понедельник       2. Вторник       3. Среда       4. Четверг       5. Пятница       6. Суббота       7. Воскресенье       8. Ежедневно       Ваш выбор: 8 
 Cron остановлен    Cron запущен       Выполняется очистка временных файлов после работы Xkeen    Очистка временных файлов успешно выполнена       Перед использованием Xray настройте конфигураций по пути «/opt/etc/xray/configs»    Установка окончена 

Справка
По ключу -h можно вызвать помощь по всем командам xkeen

Настройка портов для прокси

xkeen -ap 443,80 

Конфигурирование Xray

Список файлов конфигурации Xray

ls -la /opt/etc/xray/configs/ 
drwxr-xr-x    4 root     root          4096 May 28 05:45 ./   drwxr-xr-x    4 root     root          4096 May 25 20:47 ../   -rw-rwxrwx    1 root     root           564 May 25 20:47 01_log.json*   -rw-rwxrwx    1 root     root           724 May 25 20:47 02_transport.json*   -rwxrwxrwx    1 root     root           383 May 28 02:13 03_inbounds.json*   -rwxrwxrwx    1 root     root           915 May 28 03:45 04_outbounds.json*   -rw-rwxrwx    1 root     root          1097 May 28 03:26 05_routing.json*   -rwxrwxrwx    1 root     root           182 May 26 00:21 06_policy.json* 

Нас интересуют только 3 файла 03_inbounds.json, 04_outbounds.json и 05_routing.json

Будем пользоваться редактором nano, устанавливаем

opkg install nano 

Правим конфигурационный файл 03_inbounds.json

nano /opt/etc/xray/configs/03_inbounds.json 
{   "inbounds": [     {     // TUN       "tag": "socks-in",       "port": 2080,       "protocol": "socks",       "settings": {         "auth": "noauth",         "udp": true       },       "sniffing": {         "enabled": true,         "routeOnly": true,         "destOverride": [           "http",           "tls",           "quic"         ]       }     }   ] } 

Внимание
Будьте внимательны, синтаксис json строгий, не нарушайте структуру, соблюдайте синтаксис.

listen — IP-адрес вашего роутера
port — произвольный порт (2000-65535)
protocol — указываем «socks» или «http»
tag — тег соединения, пусть будет «socks-in»
остальное как в примере

Нажимаем сохранение CRTL+O, затем выходим из редактора CTRL+X

Конфигурационный файл 04_outbounds.json

nano /opt/etc/xray/configs/04_outbounds.json 
{   "outbounds": [     {       "domainStrategy": "UseIPv4",       "tag": "vless-reality",       "protocol": "vless",       "settings": {         "vnext": [           {             "address": "hoofsandhorns.freemyip.com",             "port": 443,             "users": [               {                 "id": "8bda3d23-262f-44ff-b8a3-f7dfc83cb705",                 "encryption": "none",                 "flow": "xtls-rprx-vision",                 "level": 0               }             ]           }         ]       },       "streamSettings": {         "network": "tcp",         "security": "reality",         "realitySettings": {           "publicKey": "Jf0f3n7elMH7PZNXpCKcKzT7Qx2_n1kvA6NIwn_eSk4",           "fingerprint": "chrome",           "serverName": "yandex.ru",           "shortId": "d0c03b88",           "spiderX": "/"         }       }     }   ] } 

tag — тег соединения, пусть будет «vless-reality»
protocol — обязательно «vless»
address — тот что мы регистрировали, «hoofsandhorns.freemyip.com«
port — «443»
fingerprint — то что указывали в настройках 3X-UI «chrome»
serverName — тоже такие же как в 3X-UI «yandex.ru«
id, publicKey, shortId — смотрим в инфо соединения на 3X-UI в разделе URL

Нажимаем сохранение CRTL+O, затем выходим из редактора CTRL+X

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

Конфигурационный файл 04_outbounds.json

nano /opt/etc/xray/configs/05_routing.json 
{   "routing": {     "rules": [     // Блокируем соединение по уязвимым UDP портам       {         "inboundTag": ["socks-in"],         "outboundTag": "block",         "type": "field",         "network": "udp",         "port": "135, 137, 138, 139"       },     // Настройка vless       {         "inboundTag": ["socks-in"],         "outboundTag": "vless-reality",         "type": "field"       }     ]   } } 

VPS подключение
inboundTag — тег что что указывали в 03_inbounds.json «socks-in»
outboundTag — тег из 04_outbounds.json «vless-reality»

Запускаем xkeen

xkeen -start 

Настройка роутера для подключения

Заходим на ваш роутер в браузере по адресу 192.168.1.1 (ваш ip может отличаться)

  1. Устанавливаем клиента прокси

Путь: Управление-> Параметры системы-> Изменить набор компонентов -> Клиент прокси

Нажимаем Обновить KeeneticOS, маршрутизатор перезагрузиться

  1. Настраиваем прокси подключение

Путь: Интернет -> Другие подключения -> Прокси подключения -> Добавить

  • Имя — xray

  • Протокол — SOCKS v5

  • Адрес — ip адрес вашего роутера : порт тот что указан 03_inbounds.json 2080

  1. Добавляем политику Xkeen

Путь: Интернет -> Приоритеты подключений -> Добавить политику -> Xkeen

  1. Добавляем в политику Xkeen прокси Xray, нажимаем сохранить

  1. Добавляем клиента в политику Xkeen путем перетаскивания на него мышкой

  1. Проброс UDP через TUN

Подключившись к веб-конфигуратору в адресной строке браузера вы увидите адрес вида http://192.168.1.1/dashboard
Сотрите слово dashboard и после символа косой черты / добавьте маленькую строчную букву a английского алфавита http://192.168.1.1/a

В веб-интерфейсе откроется страница Web cli, с которой можно отправлять команды для роутера.

interface Proxy0 proxy socks5-udp 
system configuration save  

Все готово! Проверяем наш внешний IP-адрес.

ifconfig.co  # или ifconfig.me  # или https://browserleaks.com/ip 


ссылка на оригинал статьи https://habr.com/ru/articles/822597/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *