Netcraze Hopper 4G+ VLESS XKeen setup

Настройка Netcraze Hopper 4G+ (Keenetic/KeeneticOS) для VLESS через XKeen с разделением трафика

Зада­ча: настро­ить роу­тер Netcraze Hopper 4G+ (Keenetic/KeeneticOS) для под­клю­че­ния к соб­ствен­но­му сер­ве­ру по про­то­ко­лу VLESS (3X-UI) с раз­де­ле­ни­ем тра­фи­ка — рос­сий­ские сай­ты напря­мую, осталь­ной тра­фик через защи­щён­ное соеди­не­ние, — вклю­чая рас­ши­ре­ние памя­ти через OPKG/Entware и инте­гра­цию с XKeen.

Реше­ние: раз­вёр­нут Entware на внеш­нем нако­пи­те­ле, уста­нов­лен XKeen (Xray-core) с авто­ма­ти­че­ским раз­де­ле­ни­ем тра­фи­ка по гео-базам (Re:filter/v2fly/ZKeen), настро­е­но управ­ле­ние через штат­ные поли­ти­ки досту­па веб-интер­фей­са роу­те­ра, устра­не­на утеч­ка через IPv6. По фак­ту экс­плу­а­та­ции в усло­ви­ях мобиль­но­го аплин­ка потре­бо­вал­ся допол­ни­тель­ный внеш­ний слой (WireGuard) и огра­ни­че­ние прок­си­ру­е­мых пор­тов — оба пунк­та опи­са­ны отдель­но ниже, по опы­ту реаль­ной рабо­ты, а не толь­ко по каби­нет­ной настройке.

Авто­ры: про­бле­му реша­ли Вита­лий Бур­ков и Claude (Anthropic) — в каче­стве тех­ни­че­ско­го кон­суль­тан­та и соав­то­ра поша­го­вой диагностики.

Про­ве­ре­но на: Netcraze Hopper 4G+ (NC-2312, AArch64), KeeneticOS 5.1.1


📌 Резуль­тат (крат­ко, для тех, кто не хочет читать всё)

- Флеш­ка → Entware → XKeen (Xray-core) → рабо­чий VLESS-тун­нель к сво­е­му серверу.
- Split-tunneling по гео-прин­ци­пу: RU-адре­са напря­мую, осталь­ное — через сер­вер, с kill-switch на слу­чай обрыва.
- IPv6 отклю­чён, что­бы не «про­те­кал» реаль­ный IP.
- Управ­ле­ние, кто из устройств ходит через тун­нель — пря­мо в штат­ном веб-интер­фей­се роу­те­ра, через поли­ти­ку досту­па “xkeen“.
- Шиф­ро­ва­ние сей­час базо­вое (“security: none“, без TLS/Reality) — рабо­та­ет, но неста­биль­но **без допол­ни­тель­но­го внеш­не­го защи­щён­но­го слоя** поверх мобиль­но­го аплин­ка (см. раз­дел 8). Reality и пост­кван­то­вое шиф­ро­ва­ние VLESS про­бо­ва­ли — не заве­лись, отложено.
- В усло­ви­ях мобиль­ной сети обя­за­тель­ны: огра­ни­че­ние прок­си­ру­е­мых пор­тов (ина­че рост нагруз­ки и обры­вы) и посто­ян­ные IP-адре­са кли­ен­тов (ина­че XKeen «пло­хо цеп­ля­ет» устройства).


1. Подготовка внешнего накопителя

Отфор­ма­ти­ро­вать флеш­ку в ext4 зара­нее, на ком­пью­те­ре (про­грам­мой типа Hard Disk Manager / любой ext4-фор­мат­тер / имя|метку дис­ка я задал NEWOPKG ). Вста­вить флеш­ку в роутер.


2. Установка компонента OPKG в веб-интерфейсе

Настрой­ки систе­мы → Изме­нить набор компонентов:

  • Вклю­чить «Под­держ­ка откры­тых пакетов»
  • Допол­ни­тель­но вклю­чить «Моду­ли ядра под­си­сте­мы Netfilter» (пона­до­бит­ся для iptables/ipset при split-tunneling)
  • Нажать «Обно­вить» — роу­тер перезагрузится

Нако­пи­те­ли и устрой­ства → OPKG: выбрать флеш­ку в поле «Нако­пи­тель», сохранить.

⚠️ Проблема: автоматическая установка Entware не стартует

После выбо­ра дис­ка в логе вид­на толь­ко стро­ка missing initrc "/opt/etc/initrc" ... trying default one, даль­ше тиши­на — ска­чи­ва­ние архи­ва Entware не запускается.

Реше­ние — запу­стить уста­нов­ку вруч­ную через CLI роу­те­ра (SSH на систем­ный порт, admin@<router-ip>, при­гла­ше­ние (config)>):

opkg no disk
opkg disk NEWOPKG:/ https://bin.entware.net/aarch64-k3.10/installer/aarch64-installer.tar.gz

(имя дис­ка NEWOPKG и архи­тек­ту­ра aarch64 — под­ста­вить свои, архи­тек­ту­ру вид­но в систем­ном логе по стро­ке Boot CPU: AArch64 Processor).

⚠️ Точ­ное имя паке­та уста­нов­щи­ка Entware (aarch64-installer.tar.gz в нашем слу­чае) зави­сит от архи­тек­ту­ры про­цес­со­ра кон­крет­ной моде­ли — перед уста­нов­кой уточ­ни­те её в систем­ном жур­на­ле роу­те­ра (стро­ка Boot CPU: ...) или в харак­те­ри­сти­ках моде­ли, и под­ставь­те соот­вет­ству­ю­щий вари­ант уста­нов­щи­ка с bin.entware.net.

Через 20 – 40 секунд в систем­ном жур­на­ле долж­на появить­ся финаль­ная строка:

[5/5] Установка системы пакетов "Entware" завершена!

3. Подключение к Entware по SSH

Entware под­ни­ма­ет отдель­ный SSH-сер­вер (dropbear), логин root, пароль по умол­ча­нию keenetic.

⚠️ Проблема: порт по умолчанию (22) недоступен

Реаль­ный порт может отли­чать­ся. Про­ве­рить и при необ­хо­ди­мо­сти запу­стить сер­вис вруч­ную через CLI роу­те­ра ((config)>):

exec cat /opt/etc/config/dropbear.conf   # смотрим PORT=...
exec ps | grep dropbear                  # проверяем, что процесс запущен
exec /opt/etc/init.d/S51dropbear start   # если не запущен — стартуем

В нашем слу­чае реаль­ный порт ока­зал­ся 222.

Под­клю­чить­ся: ssh root@<router-ip> -p 222, пароль keenetic.

Сра­зу сме­нить пароль:

passwd

4. Обновление репозиториев и установка базовых утилит

opkg update
opkg upgrade
opkg install curl tar

5. Установка XKeen (Xray + GeoSite/GeoIP + split-tunneling из коробки)

cd /tmp
curl -OL --connect-timeout 10 -m 60 "https://raw.githubusercontent.com/jameszeroX/XKeen/main/install.sh"
chmod +x install.sh
./install.sh

Отве­ты на вопро­сы уста­нов­щи­ка (для KeeneticOS ≤ 5.1.2):

  1. Вер­сия XKeen1 (Stable)
  2. Ядро прок­си­ро­ва­ния1 (Xray — соот­вет­ству­ет сер­ве­ру на 3X-UI)
  3. Вер­сия Xray1 (послед­няя доступ­ная; вер­сия кли­ен­та не обя­за­на сов­па­дать с вер­си­ей сервера)
  4. GeoSite1 (уста­но­вить все доступ­ные базы: Re:filter, v2fly, ZKeen — не поме­ша­ют, дают гиб­кость в пра­ви­лах маршрутизации)
  5. GeoIP1 (ана­ло­гич­но, все базы)
  6. Исклю­чить рос­сий­ские IP из прок­си­ро­ва­ния (GeoIPSET)1 — клю­че­вой пункт для split-tunneling: рос­сий­ский тра­фик пой­дёт напря­мую, всё осталь­ное — через защи­щён­ное соединение
  7. Авто­об­нов­ле­ние GeoFile/GeoIPSET1 (вклю­чить зада­чу по расписанию)

По завер­ше­нии: XKeen добавлен в автозагрузку, кон­фи­ги Xray лежат в /opt/etc/xray/configs/.


6. Конфигурация подключения к серверу

Фай­лы кон­фи­гу­ра­ции создаются/правятся напря­мую в /opt/etc/xray/configs/:

  • 03_inbounds.json — созда­ёт­ся уста­нов­щи­ком авто­ма­ти­че­ски, тро­гать не нуж­но (теги redirect/tproxy, слу­ша­ют локаль­ный порт для пере­хва­та трафика).
  • 04_outbounds.json — сюда про­пи­сы­ва­ет­ся под­клю­че­ние к сво­е­му серверу.
  • 05_routing.json — пра­ви­ло марш­ру­ти­за­ции пере­хва­чен­но­го тра­фи­ка на прокси.

🧑‍💻🛡️Кому неудоб­но пра­вить кон­фи­ги рука­ми, мож­но вос­поль­зо­вать­ся сер­ви­сом Outbound Generator — кон­вер­тер URI в кон­фи­гу­ра­ции для Xray и Mihomo, реко­мен­до­ван­ным самим уста­нов­щи­ком XKeen. ⚠️ Обра­ти­те вни­ма­ние: ссыл­ка с UUID и дан­ны­ми сер­ве­ра при этом уйдёт на сто­рон­ний сайт — исполь­зуй­те с осто­рож­но­стью, если это принципиально.

📜 /opt/etc/xray/configs/04_outbounds.json:

{
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "ВАШ_СЕРВЕР_IP",
            "port": ВАШ_ПОРТ,
            "users": [
              {
                "id": "ВАШ_UUID",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none"
      }
    },
    { "tag": "direct", "protocol": "freedom" },
    { "tag": "block", "protocol": "blackhole" }
  ]
}

📜 /opt/etc/xray/configs/05_routing.json:

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "inboundTag": ["redirect", "tproxy"],
        "outboundTag": "proxy"
      }
    ]
  }
}

Проверка конфига перед запуском

xkeen -xtest

7. Запуск и проверка

xkeen -start
xkeen -status

Ожи­да­е­мо: Прокси-клиент xray запущен в режиме Hybrid.

Про­вер­ка, что тра­фик реаль­но идёт через сервер:

curl -s https://ifconfig.me

Дол­жен пока­зать IP ваше­го сер­ве­ра, а не реаль­ный IP провайдера/4G — это нор­маль­но и озна­ча­ет, что тун­нель работает.

Про­вер­ка, что рос­сий­ские сай­ты идут в обход тун­не­ля (split-tunneling):

nslookup ya.ru
ipset test geo_exclude <IP_из_nslookup>

Ответ is in set geo_exclude под­твер­жда­ет, что домен вер­но опре­де­лён как рос­сий­ский и пой­дёт напрямую.


8. Обязательный внешний слой поверх мобильного аплинка

Проблема, выявленная в реальной эксплуатации: голый VLESS нестабилен на мобильной сети

⚠️ Проблема, выявленная в реальной эксплуатации: голый VLESS нестабилен на мобильной сети

Сце­на­рий исполь­зо­ва­ния — «в полях»: роу­тер под­клю­ча­ет­ся как Wi-Fi-кли­ент к смарт­фо­ну, раз­да­ю­ще­му интер­нет от мобиль­но­го опе­ра­то­ра (Tele2 и т.п.), то есть меж­ду Xray-кли­ен­том на роу­те­ре и выш­кой опе­ра­то­ра есть про­ме­жу­точ­ное Wi-Fi/NAT-зве­но.

На прак­ти­ке ока­за­лось: без допол­ни­тель­но­го защи­щён­но­го слоя базо­вый VLESS (security: none) рабо­та­ет неста­биль­но имен­но в мобиль­ной сети — руко­по­жа­тие уста­нав­ли­ва­ет­ся, но доступ­ность сай­тов рез­ко пада­ет (в тестах — вплоть до «интер­нет не обна­ру­жен»), а при отклю­че­нии допол­ни­тель­но­го слоя ситу­а­ция повто­ря­ет­ся. Наи­бо­лее веро­ят­ная при­чи­на — опе­ра­тор­ский DPI не бло­ки­ру­ет такой тра­фик пол­но­стью, а троттлит/подрезает его как неха­рак­тер­ный пат­терн, посколь­ку «голый» VLESS без TLS-обёрт­ки замет­но выде­ля­ет­ся на общем фоне трафика.

Реше­ние, под­твер­ждён­ное на прак­ти­ке: дер­жать посто­ян­но под­ня­тым допол­ни­тель­ный защи­щён­ный тун­нель (в нашем слу­чае — WireGuard) как внеш­ний слой, через кото­рый уже идёт весь тра­фик роу­те­ра, вклю­чая исхо­дя­щий поток от Xray к сер­ве­ру. Это скры­ва­ет харак­тер­ный пат­терн VLESS от DPI на сто­роне оператора.

Как это выгля­дит в связке:

  1. Основ­ной посто­ян­ный тун­нель (WireGuard) под­нят на роу­те­ре отдель­ным WAN-под­клю­че­ни­ем, рабо­та­ет постоянно.
  2. XKeen/Xray со сво­ей поли­ти­кой xkeen рабо­та­ет поверх — то есть исхо­дя­щий тра­фик Xray тоже заво­ра­чи­ва­ет­ся в WireGuard по пути к серверу.
  3. При отклю­че­нии WireGuard — пада­ет ста­биль­ность и само­го VLESS-тун­не­ля, это ожи­да­е­мо в такой схе­ме, а не повод счи­тать её неисправной.

Это не борь­ба с про­бле­мой, а зафик­си­ро­ван­ное архи­тек­тур­ное тре­бо­ва­ние для мобильного/полевого сце­на­рия: защи­щён­ный внеш­ний тун­нель дол­жен быть под­нят посто­ян­но, VLESS/XKeen рабо­та­ет внут­ри него, а не вме­сто него. При ста­ци­о­нар­ном под­клю­че­нии (кабель, домаш­ний Wi-Fi без мобиль­но­го NAT посе­ре­дине) необ­хо­ди­мость в этом слое может отсут­ство­вать — не про­ве­ря­лось отдель­но (лето, дача, огород ;).


9. Балансировка нагрузки: ограничение файловых дескрипторов и портов

⚠️ Проблема: рост числа подключённых устройств валит доступность

 

При стресс-тесте одно­вре­мен­ным запус­ком про­вер­ки ~100 сай­тов (https://​rootrouter​.ru/​o​n​line/) сра­зу на трёх устрой­ствах, под­клю­чён­ных через поли­ти­ку xkeen (ноут­бук, смарт­фон, Smart TV), доступ­ность рез­ко пада­ла — с одно­го устрой­ства тест про­хо­дит в нор­ме, а при син­хрон­ном запус­ке на 2 – 3 устрой­ствах пада­ет до 40 – 70% недо­ступ­ных сай­тов. При­чи­на — в крат­ной нагруз­ке: сам чекер откры­ва­ет не одно, а несколь­ко парал­лель­ных соеди­не­ний на каж­дый про­ве­ря­е­мый сайт (заме­ре­но xkeen -cfd: 361 откры­тый фай­ло­вый дескрип­тор на одно устрой­ство при ~103 сай­тах, то есть  на каж­дый сайт из теста при­мер­но 3,5). При трёх одно­вре­мен­но тести­ру­ю­щих устрой­ствах это уже око­ло 1000 – 1200 парал­лель­ных соеди­не­ний разом — по сути то же самое, что открыть в бра­у­зе­ре боль­ше тыся­чи вкла­док одно­вре­мен­но и заста­вить каж­дую сра­зу же что-то загру­жать. Неуди­ви­тель­но, что Xray на роу­те­ре с этим не справ­ля­ет­ся без огра­ни­че­ния дескрип­то­ров (xkeen -fd) и суже­ния прок­си­ру­е­мых портов.

Диа­гно­сти­ка:

xkeen -cfd

Пока­зы­ва­ет коли­че­ство откры­тых фай­ло­вых дескрип­то­ров прок­си-кли­ен­та. В состо­я­нии покоя — еди­ни­цы, при нагруз­ке от несколь­ких актив­ных устройств может уле­тать за несколь­ко тысяч (лимит роу­те­ра обыч­но поряд­ка 40000, но про­бле­мы начи­на­ют­ся замет­но рань­ше упо­ра в лимит).

Реше­ние 1 — вклю­чить встро­ен­ный кон­троль дескрипторов:

xkeen -fd

Обя­за­тель­ная настрой­ка при более чем одном актив­ном устрой­стве на поли­ти­ке xkeen — без неё дескрип­то­ры накап­ли­ва­ют­ся и часть новых соеди­не­ний начи­на­ет отваливаться.

Реше­ние 2 — сузить спи­сок прок­си­ру­е­мых пор­тов. По умол­ча­нию после xkeen -start может быть акти­вен режим «на всех пор­тах» — то есть в тун­нель заво­ра­чи­ва­ет­ся вооб­ще весь тра­фик (DNS, теле­мет­рия, тор­рен­ты и т.п.), а не толь­ко веб. Это рез­ко уве­ли­чи­ва­ет чис­ло парал­лель­ных соеди­не­ний и, соот­вет­ствен­но, нагрузку.

Про­ве­рить теку­щий режим:

xkeen -cp

Задать кон­крет­ные пор­ты (базо­вый веб-бра­у­зинг — обыч­но достаточно):

xkeen -ap 80,443

Если через тун­нель так­же нуж­ны голо­со­вые звонки/видеосвязь в мес­сен­дже­рах (WebRTC), потре­бу­ют­ся допол­ни­тель­ные UDP-диа­па­зо­ны — но помни­те: медиа-тра­фик звон­ков луч­ше вооб­ще не заво­ра­чи­вать в тун­нель (см. ниже), задерж­ка на лиш­ний ска­чок роутер→сервер→обратно спо­соб­на сама по себе про­во­ци­ро­вать обры­вы и джиттер.

После изме­не­ния спис­ка портов:

xkeen -restart
xkeen -status

Наблю­де­ние из прак­ти­ки: после суже­ния до 80,443 замет­но сни­зи­лась нагруз­ка, доступ­ность сай­тов ста­ла ста­биль­ной при одно­вре­мен­ной рабо­те несколь­ких устройств, а голо­со­вые звон­ки в мес­сен­дже­рах (шед­шие рань­ше через сер­вер и стра­дав­шие от обры­вов) пошли напря­мую — задерж­ка сни­зи­лась. Если поз­же обна­ру­жит­ся нуж­ный сер­вис, ходя­щий не по 80/443 — добав­ляй­те порт точеч­но через xkeen -ap, а не откры­вай­те диа­па­зон целиком.


10. Устранение утечки через IPv6

⚠️ Проблема: внешние проверки IP иногда показывают реальный IP оператора вместо IP сервера

При­чи­на — часть тра­фи­ка ухо­дит по IPv6 в обход прок­си (Xray/XKeen прок­си­ру­ет пре­иму­ще­ствен­но IPv4).

Реше­ние:

xkeen -ipv6

(интер­ак­тив­но отклю­ча­ет под­держ­ку IPv6 на уровне KeeneticOS и iptables). Допол­ни­тель­но сто­ит про­ве­рить в веб-интер­фей­се (Интер­нет → соот­вет­ству­ю­щее WAN-под­клю­че­ние → вклад­ка IPv6), что там сто­ит «Не использовать».


11. Диагностика (на будущее, при проблемах)

xkeen -diag                                  # общая диагностика XKeen
xkeen -cfd                                   # число открытых файловых дескрипторов прокси-клиента
ipset list -n                                # список наборов IP
ipset list geo_exclude | head -20            # проверка, что база RU-адресов не пустая
ip rule list                                 # правила маршрутизации по меткам пакетов
iptables -t mangle -L -n -v | head -40       # перехват/маркировка трафика, счётчики пакетов
top -n 1 | head -20                          # загрузка CPU/RAM, отдельно смотреть процесс xray
free -m                                      # свободная память роутера

Нену­ле­вые счёт­чи­ки паке­тов в пра­ви­лах TPROXY/REDIRECT/match-set geo_exclude под­твер­жда­ют, что split-tunneling реаль­но обра­ба­ты­ва­ет тра­фик, а не про­сто настро­ен «на бумаге».


12. Управление через веб-интерфейс роутера (выбор устройств для туннеля)

XKeen не име­ет соб­ствен­ной стра­ни­цы в веб-интер­фей­се Netcraze/Keenetic, но инте­гри­ру­ет­ся через штат­ный меха­низм поли­тик досту­па в интер­нет.

Мои сети и Wi-Fi → При­о­ри­те­ты под­клю­че­ний → Поли­ти­ки досту­па в интернет:

  1. Доба­вить новую поли­ти­ку, имя — стро­го xkeen (без про­бе­лов, точ­но так же).
  2. Отме­тить все реаль­ные под­клю­че­ния, через кото­рые роу­тер физи­че­ски выхо­дит в интер­нет (Wi-Fi-аплин­к/раз­да­ю­щее устрой­ство, Ethernet, встро­ен­ные моде­мы опе­ра­то­ров) — кро­ме самих тун­не­лей (WireGuard-под­клю­че­ния) и прок­си-под­клю­че­ний. Без реаль­но­го под­клю­че­ния поли­ти­ка не смо­жет стар­то­вать: xkeen -start в этом слу­чае выда­ёт ошиб­ку У политики xkeen нет доступа в интернет.
  3. Не вклю­чать «Мно­го­пу­те­вая пере­да­ча» (это режим сум­ми­ро­ва­ния про­пуск­ной спо­соб­но­сти несколь­ких про­вай­де­ров, не нужен для нашей задачи).
  4. Сохра­нить.

Мои сети и Wi-Fi → Спис­ки кли­ен­тов → [нуж­ное устрой­ство] → поле «Поли­ти­ка доступа»:

  • Выбрать xkeen — тра­фик это­го устрой­ства пой­дёт через защи­щён­ное соеди­не­ние (с учё­том split-tunneling по гео-базам).
  • Осталь­ным устрой­ствам оста­вить «Поли­ти­ку по умолчанию».
  • Реко­мен­ду­ет­ся сра­зу вклю­чить «Посто­ян­ный IP-адрес» для каж­до­го тако­го устрой­ства. На прак­ти­ке XKeen может «пло­хо цеп­лять» кли­ен­та после переподключения/смены DHCP-адре­са (помо­га­ет пере­клю­че­ние поли­ти­ки или пере­за­пуск — по сути пере­с­бор­ка пра­вил), и посто­ян­ный IP уби­ра­ет саму при­чи­ну рассинхрона.

После изме­не­ния поли­тик — пере­за­пу­стить прокси:

xkeen -restart

⚠️ Важ­но: на устрой­ствах, под­клю­чён­ных к поли­ти­ке xkeen, луч­ше отклю­чить все про­чие тун­не­ли, VPN-при­ло­же­ния и систем­ные прок­си — сов­мест­ное исполь­зо­ва­ние с XKeen при­во­дит к кон­флик­там маршрутизации.


Итоговое состояние

  • ✅ Entware/OPKG раз­вёр­нут на внеш­ней флешке
  • ✅ XKeen + Xray-core уста­нов­ле­ны, авто­за­пуск при пере­за­груз­ке подтверждён
  • ✅ VLESS-под­клю­че­ние к соб­ствен­но­му сер­ве­ру (3X-UI) рабо­та­ет, security: none (без TLS/Reality — рабо­чий базо­вый вари­ант), при усло­вии посто­ян­но под­ня­то­го внеш­не­го защи­щён­но­го слоя поверх мобиль­но­го аплин­ка (см. раз­дел 8)
  • ✅ Split-tunneling по гео-прин­ци­пу: рос­сий­ские адре­са — напря­мую, осталь­ное — через сер­вер (под­твер­жде­но через ipset test, iptables счёт­чи­ки и внеш­ние IP-чекеры)
  • ✅ Kill-switch: при поте­ре марш­ру­та в таб­ли­це поли­ти­ки тра­фик ухо­дит в blackhole, а не «уте­ка­ет» в обход туннеля
  • ✅ IPv6 отклю­чён на уровне KeeneticOS во избе­жа­ние утеч­ки реаль­но­го IP
  • ✅ Управ­ле­ние через штат­ный веб-интер­фейс: поли­ти­ка xkeen с при­вяз­кой к реаль­но­му под­клю­че­нию, назна­че­ние по устрой­ствам из «Спис­ки кли­ен­тов» с посто­ян­ным IP
  • ✅ Огра­ни­че­ние прок­си­ру­е­мых пор­тов (80÷443) и кон­троль фай­ло­вых дескрип­то­ров (xkeen -fd) — обя­за­тель­ны при несколь­ких одно­вре­мен­но актив­ных устройствах

Отложено / не завершено

  • Reality (мас­ки­ров­ка под TLS-сайт) — inbound создан, но при под­клю­че­нии «тун­нель под­ни­ма­ет­ся, тра­фи­ка нет»; при­чи­на не выяв­ле­на, тре­бу­ет отдель­ной диа­гно­сти­ки (логи сер­ве­ра при под­клю­че­нии, про­вер­ка вер­сии Xray-core, кор­рект­ность dest/serverNames/short ID).
  • Натив­ное пост­кван­то­вое шиф­ро­ва­ние VLESS (mlkem768x25519plus) — inbound создан, но кли­ент­ское при­ло­же­ние на смарт­фоне не уста­нав­ли­ва­ло интер­нет-соеди­не­ние (веро­ят­но, непол­ная под­держ­ка функ­ции в кли­ен­те) — не пере­не­се­но на роутер.

Теку­щая рабо­чая кон­фи­гу­ра­ция (security: none + внеш­ний защи­щён­ный слой поверх мобиль­но­го аплин­ка) обес­пе­чи­ва­ет рабо­то­спо­соб­ность и раз­де­ле­ние тра­фи­ка, но не име­ет соб­ствен­ной TLS-мас­ки­ров­ки на уровне VLESS — эта зада­ча реша­ет­ся пока что вто­рым тун­не­лем, а не самим про­то­ко­лом. Воз­врат к вопро­су Reality/шифрования на сто­роне VLESS — по жела­нию, отдель­ной задачей.


Применимость решения к другим моделям

Инструк­ция не при­вя­за­на к кон­крет­но­му устрой­ству — она постро­е­на на штат­ных меха­низ­мах KeeneticOS (OPKG/Entware, поли­ти­ки досту­па) и на XKeen, кото­рый сам опре­де­ля­ет архи­тек­ту­ру про­цес­со­ра при уста­нов­ке. Поэто­му реше­ние вос­про­из­во­ди­мо на любом дру­гом роу­те­ре линей­ки Netcraze и Keenetic (это один и тот же модель­ный ряд под раз­ны­ми назва­ни­я­ми после реб­рен­дин­га — устрой­ства пол­но­стью вза­и­мо­за­ме­ня­е­мы по про­шив­ке и функциям).

Обя­за­тель­ные условия:

  • Сво­бод­ный USB-порт для внеш­не­го накопителя.
  • Flash-память не менее 64 Мбайт (моде­ли с Dual Image 32 Мбайт исклю­че­ны — на них штат­но не хва­та­ет места даже под систем­ные нуж­ды, мучить их OPKG не стоит).
  • KeeneticOS вер­сии 5.1 и выше.

Моде­ли Netcraze, под­хо­дя­щие при соблю­де­нии усло­вий выше (марш­ру­ти­за­то­ры, не точ­ки досту­па и не чистые Mesh-ретрансляторы):

Назва­ние моде­ли (арти­кул)
Netcraze Hopper 4G+ (NC-2312)
Netcraze Hopper (NC-3811)
Netcraze Hopper SE (NC-3812)
Netcraze Hopper DSL (NC-3611)
Netcraze Giga (NC-1012)
Netcraze Ultra (NC-1812)
Netcraze Hero 5G (NC-4110)
Netcraze Viva (NC-1913)
Netcraze Speedster DSL (NC-2113)

Не под­хо­дят: точ­ки досту­па (Stellar 6, Orbiter 6 — не явля­ют­ся марш­ру­ти­за­то­ра­ми), чистые Mesh-ретранс­ля­то­ры (Buddy 4÷5÷6÷6 SE — рабо­та­ют толь­ко в режи­ме повто­ри­те­ля, без пол­но­цен­но­го роу­тер-функ­ци­о­на­ла), моде­ли без USB-пор­та, моде­ли с Flash-памя­тью 32 Мбайт (Extra, Carrier, Launcher и ана­ло­гич­ные бюд­жет­ные версии).