Какие цели у этого руководства:
Обеспечение доступа через 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 может отличаться)
-
Устанавливаем клиента прокси
Путь: Управление
-> Параметры системы
-> Изменить набор компонентов
-> Клиент прокси
Нажимаем Обновить KeeneticOS
, маршрутизатор перезагрузиться
-
Настраиваем прокси подключение
Путь: Интернет
-> Другие подключения
-> Прокси подключения
-> Добавить
-
Имя
— xray -
Протокол
— SOCKS v5 -
Адрес
— ip адрес вашего роутера :порт
тот что указан03_inbounds.json
2080
-
Добавляем политику
Xkeen
Путь: Интернет
-> Приоритеты подключений
-> Добавить политику
-> Xkeen
-
Добавляем в политику
Xkeen
проксиXray
, нажимаемсохранить
-
Добавляем клиента в политику
Xkeen
путем перетаскивания на него мышкой
-
Проброс 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/
Добавить комментарий