XKeen это набор скриптов для роутеров Keenetic с прокси клиентом Xray-core/Mihomo, с помощью которого можно оптимизировать производительность интернет-подключения и обеспечить его безопасность. Подробнее о проекте - XKeen на форуме Keenetic
FAQ по XKeen предназначен для тех, у кого возникли дополнительные вопросы после внимательного прочтения инструкции, а также охватывает ситуации, которые напрямую к XKeen не относятся, но возникают в процессе его использования. FAQ в основном посвящен вопросам использования ядра Xray, которым пользуется автор данного материала, разбор вопросов по второму поддерживаемому ядру Mihomo ожидайте от пользователей этого ядра.
Если после обновления или установки XKeen получаете длинную портянку с ошибкой SIGSEGV: segmentation violation и ничего не работает, откатите ядро Xray до предыдущей версии командой xkeen -ux
Часто задаваемые вопросы и ответы по XKeen
Q: Настроил xkeen/xray, всё работало, ничего не трогал, настроек не менял. Внезапно (прокси упал/сайты через прокси перестали открываться). Что можно предпринять?
A: При внезапных проблемах с XKeen, причина может быть в устаревшем ядре Xray. Оригинальный XKeen не обновляет ядро выше версии 1.8.4. Если у вас установлен оригинал, то рекомендую перейти на форк XKeen. При невозможности перехода на форк, обновите ядро Xray в роутере другим способом. При этом не следует выбирать последние версии. В них разработчики добавляют новые функции, часто требующие отдельной настройки и понимания этих нововедений. Общий порядок действий по поиску причины неработающего проксирования следующий:
- Если ваш хостер Аeзa, выносите мозг ему, а не участникам форума и телеграм-чата XKeen
- Если ваш роутер на процессоре mipsle-архитектуры, не используйте ядро xray 26.3.27, оно не рабочее.
- Проверьте подключение к прокси с помощью любого приложения на смартфоне через WiFi Кинетика (не через мобильный интернет)
- Убедитесь, что установлен форк XKeen актуальной версии
- Убедитесь, что установлена актуальная версия Xray
- Смените в файле 04_outbounds.json отпечаток uTLS на следующий: "fingerprint": "firefox",
- Подберите другой SNI (маскировочный домен) и замените его на сервере и в роутере
- Стоит ли галка на провайдере у политики XKeen
- Заблокирован ли протокол QUIC (пункт 6 этого FAQ)
- Прописаны ли в роутере DoH или DoT серверы (игнорировать DNS провайдера не нужно)
- Отключен ли транзит DNS запросов в роутере
- Нет ли в журнале Кинетика ошибок на DNS
- Удален ли компонент "Протокол IPv6" в роутере
- Есть ли в inbounds параметр "routeOnly": true,
- Отключен ли частный MAC и частный/безопасный DNS на устройствах и в браузерах
- Попробуйте удалить политику XKeen и запустить проксирование для всех клиентов роутера
- Проверьте подключение к другому прокси-серверу
Если ничего из этого не помогло, выполните xkeen -diag и прикрепите диагностический отчёт к сообщению в телеграм-чате, описав результаты диагностики по каждому из вышеперечисленных пунктов.
Как правильно обновляться с оригинала XKeen версии 1.1.3 на форк XKeen?
A: Рекомендую установить форк XKeen поверх оригинала вместо обновления. При этом будет предложено загрузить новое ядро Xray (смотри предыдущий пункт). Выполнить установку поверх можно следующими командами (конфиги Xray при этом сохранятся):
|
1 2 3 4 |
opkg update && opkg upgrade && opkg install curl tar curl -OL https://github.com/jameszeroX/XKeen/releases/latest/download/xkeen.tar.gz tar -xvzf xkeen.tar.gz -C /opt/sbin > /dev/null && rm xkeen.tar.gz xkeen -i |
Q: Почему у меня при использовании xkeen/xray и замерах скорости в приложениях или на сайтах (показатели сильно различаются/низкая скорость/скорость, как через провайдера/процессор загружен на 100%/...)?
Важно!
Для достоверного результата замера скорости необходимо соблюдать два условия:
- не ограничивать порты проксирования 80 и 443;
- не использовать роутинг и направить весь трафик на vps.
A: Всё дело в невысокой производительности процессора роутера и в особенностях работы Xray с потоком xtls-rprx-vision. Когда Xray видит, что через него проходит https-трафик (т.е. шифрованный), он его повторно не шифрует (чтобы не создавать два слоя шифрования) и наоборот, когда через Xray проходит http-трафик (т.е. не шифрованный), включается механизм шифрования, которое выполняется силами процессора устройства и чем он мощней, тем больший объем информации сможет зашифровать Xray, а от этого напрямую зависит то, столько трафика он через себя пропустит в единицу времени, т.е. скорость интернета. Различные сайты и приложения для тестирования скорости используют разные методики, где-то замеряется шифрованный трафик, где-то не шифрованный, могут использоваться произвольные, не включенные в роутинг, домены, а популярный speedtest, например, для замеров задействует нестандартный 8080-порт и если не учесть все эти нюансы, результаты тестов не будут корректными.
Некоторые пользователи пытаются тестировать скорость торрент-клиентами, это плохая практика, как, собственно, и использование Xray для файлообмена в целом. Bittorrent-протокол это не https-трафик и высоких скоростей вы не получите из-за ограничений процессора. Так же не стоит сравнивать результаты замеров при использовании Xray в роутере с Xray-клиентами на компьютерах и смартфонах. Процессоры компьютера или смартфона во много раз мощней роутера и для них шифрование трафика не является существенной нагрузкой.
Советы:
Для повышения скорости интернета и времени отклика через прокси рекомендуется выполнить оптимизацию сетевого стека сервера, включив режим BBR
Обязательно используйте поток xtls-rprx-vision, иначе трафик будет шифроваться всегда и это отрицательно скажется на скорости интернета через Xray.
На скорость интернета так же влияет способ подключения к Xray на роутере. Это могут быть socks5, Redirect, TProxy и их комбинация. В силу особенностей реализации встроенного в Keenetic прокси-клиента, самым медленным является socks5, а самым быстрым Redirect (но он не поддерживает UDP-протокол). Режимы TProxy и Hybrid (Mixed) полностью поддерживают TCP/UDP и являются основными рабочими режимами. Рекомендуемым режимом работы XKeen является современный TProxy. Узнать текущий режим работы можно в момент запуска XKeen или в журнале Кинетика.
Q: Почему у меня на роутере (KN-3810/KN-3610/KN-1912/...) после установки xkeen скорость интернета упала до 30-40 Мбит/c даже напрямую через провайдера и процессор роутера загружен на 100%?
A: С данными моделями Keenetic всё гораздо хуже. В ряде бюджетных моделей роутеров установлен процессор EcoNet (EN****), имеющий очень низкую производительность при использовании Xray (узнать какой процессор установлен в той или иной модели можно в технических характеристиках на официальном сайте Keenetic). Хray в роутере пропускает через себя абсолютно весь запрашиваемый клиентом трафик и согласно роутингу часть трафика отправляет напрямую, а часть через прокси. Слабый процессор не справляется с анализом и транзитом трафика через Xray, исправить это, к сожалению, нельзя. Для данных моделей роутеров, чтобы хоть как-то снизить нагрузку, настоятельно рекомендуется ограничивать порты проксирования 80 и 443 (подробности в инструкции), не подключать чрезмерное количество geosite и geoip баз, а также не использовать компонент прошивки "Классификация трафика", он очень требователен к ресурсам.
Q: Почему при использовании xkeen меня периодически выбрасывает из (ssh-сессии/удаленного рабочего стола/корпоративного VPN/онлайн-звонков/игр/видеоконференций/...)?
A: Xray не предназначен для потокового трафика и для постоянного поддержания коннекта, это не VPN, а прокси со своими особенностями. Весь трафик проходит через его ядро в Кинетике и сопоставляется с роутингом. Если найдено правило маршрутизации, трафик направляется в прокси, если не найдено, то трафик выходит из Xray и направляется через провайдера, но через ядро Xray трафик проходит весь и всегда, а у Xray есть особенность, обрывать сессию, которую он сочтёт устаревшей. Глобально это поведение вы не поменяете, но можно попробовать пустить критичный трафик напрямую, мимо прокси следующим способом. Убедитесь, что в настройках политики доступа в интернет XKeen не включена "Многопутевая передача" и добавьте IP-адрес назначения c 32 маской в исключения проксирования (файл /opt/etc/xkeen/ip_exclude.lst) по образцу - ip_exclude.lst и перезапустите XKeen. Данный способ работает в XKeen версии 1.1.3.9. В некоторых случаях для устранения дисконнектов достаточно ограничить порты проксирования XKeen (файл /opt/etc/xkeen/port_exclude.lst). Так же есть сообщения, что избавиться от разрывов сессий помогает смена ядра проксирования с Xray на Mihomo. Форк XKeen поддерживает оба этих ядра и простое переключение между ними. Сравните работу ядер в одинаковых условиях и выберите наиболее понравившееся и стабильное.
Q: Добавил телефон в политику XKeen, всё работает, но не могу подключить к xray-серверу с помощью приложения на телефоне. Что можно сделать?
A: Вы пытаетесь подключиться к прокси, будучи уже подключенными к прокси. Исключите адрес сервера из проксирования, добавив его IP с 32 маской в файл /opt/etc/xkeen/ip_exclude.lst по образцу - ip_exclude.lst и перезапустите XKeen. Данный способ работает в XKeen версии 1.1.3.9.
Q: Почему сайт (ChatGPT/whoer/dell/intel/...) (определяет мой провайдерский IP/страну/не даёт зайти/...), хотя ресурс добавлен в роутинг?
A: Некоторые ресурсы используют протокол QUIC (реже технологию WebRTC), через которые возможна утечка IP-адреса. Согласно официальной документации Xray, проксирование QUIC не рекомендуется (цитата: "Фактически, QUIC сам по себе не подходит для проксирования, поскольку QUIC имеет встроенные функции TCP, и когда он передается по протоколу VLESS как UDP-трафик, базовый протокол - TCP, что эквивалентно двум уровням TCP"), поэтому эффективным решением является его отключение, например, как написано в статье Отключение WebRTC и QIUC в браузере. При этом нужно помнить, что WebRTC используется многими программами для голосового общения и вебконференций, если вы планируете использовать такие программы, WebRTC лучше не отключать. Есть ещё один способ отключить QUIC для клиентов Xray, это заблокировать 443 порт UDP (способ работает для TProxy и Mixed режимов XKeen), добавив следующий блок первым правилом роутинга:
|
1 2 3 4 5 |
{ "network": "udp", "port": "443", "outboundTag": "block" }, |
Протокол QUIC так же можно заблокировать для всех устройств на уровне локальной сети в межсетевом экране Keenetic:

В некоторых случаях, интернет-ресурсы (например сайт intel.com) дополнительно определяют выбранный в браузере предпочитаемый язык для сайтов и если это ru или ru-RU, то доступ к ресурсу блокируется со стороны сайта. Прокси тут не поможет, необходимо переключить предпочитаемый язык на иностранный.
Q: Как заблокировать рекламу на Youtube?
A: Роутингом Xray, так же, как и DNS-фильтрацией, вы не заблокируете рекламу на ютубе, так как эта реклама вшита в видеопоток и отдаётся с тех же доменов, что и основное видео. С такой рекламой могут справятся только приложения в которых это предусмотрено (SmartTube, YouTube ReVanced, AdGuard для Windows,...), дополнения к браузерам аналогичного назначения, либо покупка Premium на ютубе. Так же есть вероятность, что при регулярном просмотре ютуба, на устройствах, по геолокации находящихся в России, гугл отметит ваш аккаунт, как российский независимо от IP и отключит рекламу. Либо выбирайте VPS в тех странах, где ютуб не показывает рекламу.
Q: После (сбоя питания/перезагрузки/ни с того ни с сего/...) пропал доступ к ssh на роутере. Почему и как исправить?
A: Перед установкой entware проверьте, чтобы не был установлен и если это не так, то удалите компонент прошивки Кинетика "Сервер SSH", так как у entware свой ssh-сервер. Если ssh всё-таки перестал работать, удалите файл /opt/var/run/dropbear.pid, убедитесь, что в конфиге /opt/etc/config/dropbear.conf есть строчка PORT=22 или PORT=222 и перезагрузите роутер. Вместо перезагрузки роутера можете попробовать запустить следующие команды из CLI:
|
1 2 |
exec sh exec /opt/etc/init.d/S51dropbear restart |
Чтобы в дальнейшем избежать подобных сбоев ssh, перенесите файл dropbear.pid в оперативную память роутера, для этого отредактируйте вторую строчку файла /opt/etc/config/dropbear.conf следующим образом:
|
1 |
PIDFILE="/var/run/dropbear.pid" |
Q: Запустил xkeen, но ping и tracert к ресурсам из роутинга почему-то (идут напрямую через провайдера/не проходят).
A: ICMP-пинги и трасировка через прокси не ходят. Прокси работает на верхнем Прикладном уровне модели OSI, а пинги на третьем Сетевом уровне.
Q: Прописал в роутинг домены themoviedb.org и tmdb.org, но они всё равно не открываются. Почему и, как получить к ним доступ?
A: Этот ресурс блокирует российских пользователей на уровне GeoDNS. Решением является использование DNS-сервера, который не передает параметр EDNS Client Subnet. На момент написания этой статьи таким сервером является, например, dns.sb. Можете прописать его DoH или DoT адреса в роутере, удалив остальные DNS-серверы и ресурсы tmdb станут открываться. Другой вариант решения, если у вас установлен AdGuardHome, то можете направить выборочно ресурсы tmdb на dns.sb или на другой подходящий DNS, а для остальных ресурсов пользоваться привычными DNS-серверами. Пример на скриншоте:

https://dns.google/dns-query
https://one.one.one.one/dns-query
[/tmdb.org/themoviedb.org/b-cdn.net/]https://ee-tll.doh.sb/dns-query
Другой вариант решения с помошью AdGuardHome, это включить в его настройках подмену IP-адреса EDNS Client Subnet и прописать туда, например, IP-адрес вашего прокси-сервера. В этом случае можно будет использовать любые DNS-серверы.
Проблему можно решить и без AgGuardHome, создав в веб-интерфейсе Keenetic такую запись для каждого из трёх доменов:

Аналогичную защиту использует производитель сетевого оборудования Ubiquiti. Если испытываете затруднения при загрузке прошивок, пустите домены ubnt.com и ui.com через "правильный" DNS.
Q: По совету "бывалых" указал в настройках панели 3x-ui IP-адрес 127.0.0.1, теперь никак не могу на нее зайти. Скажите, что можно сделать?
A: Создайте в PuTTY ssh-подключение к серверу по публичному IP-адресу, дополнительно пробросив нужный порт к панели. Для этого выберите в левой колонке пункт SSH/Tunnels, впишите порт панели в Source port (например, 65345), а в Destination укажите локалхост с этим портом (localhost:65345) и нажмите "Add" (1 скриншот). Подключитесь к серверу нажав кнопку Open и залогиньтесь по ssh. Не закрывая PuTTY зайдите браузером по адресу localhost, указав нужный порт и путь к панели (2 скриншот).
- PuTTY
- 3x-ui
Q: При перезагрузке роутера XKeen (не запускается/начинает работать для всего устройства, а не только для своей политики). Почему и как исправить?
Важно!
Проблема решена в форке XKeen версии 1.1.3.9. Следующия информация оставлена для истории и не является актуальной.
A: В некоторых случаях entware со всеми установленными пакетами стартует раньше, чем прошивка завершает инициализацию. В этот момент ещё недоступно Интернет-подключение и не созданы "Политики доступа в интернет", поэтому проксирование запускается для всего устройства или не запускается вовсе. Подберите оптимальную задержку автостарта командой xkeen -d 30 (где число это секунды, по умолчанию при установке задержка равна 20). Так же можете дополнительно перезапускать XKeen после автостарта, поместив по пути /opt/etc/init.d/ скрипт S99xkeenrestart и сделать его исполняемым командой chmod +x /opt/etc/init.d/S99xkeenrestart
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/sh # Сайт для проверки доступности интернета HOST="ya.ru" # Бесконечный цикл для проверки доступности интернета while true; do # Пингуем сайт ping -c 1 "$HOST" > /dev/null 2>&1 # Проверяем результат ping и если ОК перезапускаем xkeen через 15 секунд if [ $? -eq 0 ]; then sleep 15 xkeen -restart break else echo "Сайт $HOST не доступен, пытаюсь снова..." fi sleep 5 done |
Q: Установил на роутер AdGuard Home. Все клиенты из политики XKeen в его журнале имеют IP-адрес роутера, а не свои локальные IP-адреса. Можно ли сделать, чтобы запросы отображались от клиентов?
A: Проблему можно исправить перехватом DNS-трафика в таблицах iptables Кинетика. Если используете прокси-клиент Xray, то убедитесь, что в файле inbounds включен параметр routeOnly:
|
1 2 3 4 5 |
"sniffing": { "enabled": true, "routeOnly": true, "destOverride": ["http","tls"] }, |
Если используете Mihomo, то убедитесь, что отключен override-destination:
|
1 2 3 4 5 6 7 |
sniffer: enable: true parse-pure-ip: true override-destination: false sniff: HTTP: TLS: |
Важно!
1. Предложенное далее решение не совместимо с проксированием DNS
2. Для XKeen 2.0 Beta приведенный далее фикс не требуется, в этой версии уже выполнена необходимая доработка (включается командой xkeen -aghfix)
Поместите скрипт aghfix.sh в папку /opt/etc/ndm/netfilter.d/ и сделайте его исполняемым командой chmod +x /opt/etc/ndm/netfilter.d/aghfix.sh После чего перезагрузите роутер.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/bin/sh get_interface_list(){ ip a | grep -E ': br[0-9]:' | cut -d':' -f2 | cut -d' ' -f2 } for brX in $(get_interface_list); do get_router_ip4() { ip a show dev "${brX}" | grep 'inet ' | tr -s ' ' | cut -d' ' -f3 | cut -d'/' -f1 } get_router_ip6() { ip a show dev "${brX}" | grep 'inet6 ' | grep 'scope link' | tr -s ' ' | cut -d' ' -f3 | cut -d'/' -f1 } local_ip4=$(get_router_ip4) if ! iptables -t nat -C PREROUTING -i ${brX} -p udp --dport 53 -j DNAT --to-destination ${local_ip4} >/dev/null 2>&1; then iptables -t nat -I PREROUTING -i ${brX} -p udp --dport 53 -j DNAT --to-destination ${local_ip4} >/dev/null 2>&1 fi if ! iptables -t nat -C PREROUTING -i ${brX} -p tcp --dport 53 -j DNAT --to-destination ${local_ip4} >/dev/null 2>&1; then iptables -t nat -I PREROUTING -i ${brX} -p tcp --dport 53 -j DNAT --to-destination ${local_ip4} >/dev/null 2>&1 fi local_ip6=$(get_router_ip6) if [ -n "${local_ip6}" ]; then if ! ip6tables -t nat -C PREROUTING -i ${brX} -p udp --dport 53 -j DNAT --to-destination ${local_ip6} >/dev/null 2>&1; then ip6tables -t nat -I PREROUTING -i ${brX} -p udp --dport 53 -j DNAT --to-destination ${local_ip6} >/dev/null 2>&1 fi if ! ip6tables -t nat -C PREROUTING -i ${brX} -p tcp --dport 53 -j DNAT --to-destination ${local_ip6} >/dev/null 2>&1; then ip6tables -t nat -I PREROUTING -i ${brX} -p tcp --dport 53 -j DNAT --to-destination ${local_ip6} >/dev/null 2>&1 fi fi done |
Q: Если сервера Xray нет, но есть сервер (Wireguard/OpenConnect). Можно ли используя маршрутизацию Xray открывать сайты через встроенный (Wireguard/OpenConnect) Кинетика?
A: Да. На любой встроенный интерфейс Кинетика, используемый для доступа в интернет, можно направить роутинг Xray следующим способом.
В ssh-консоли роутера выполните команду ip a или ifconfg, чтобы определить наименование интересующего интерфейса. Например, для wireguard это будут интерфейсы nwg, а для OpenConnect nocli с цифрой по порядку:

В файл outbounds.json вместо протокола VLESS добавьте подключение по протоколу freedom с произвольным тегом (например, newtag), перенаправляющее на требуемый интерфейс. Полный листинг файла outbounds.json будет такой:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "outbounds": [ { "protocol": "freedom", "streamSettings": { "sockopt": { "interface": "nwg0" } }, "tag": "newtag" }, { "protocol": "freedom", "tag": "direct" } ] } |
В файл routing.json добавьте необходимые правила для тега newtag:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "routing": { "rules": [ { "domain": [ "site1.ru", "site2.ru", "site3.ru" ], "outboundTag": "newtag" }, { "network": "tcp,udp", "outboundTag": "direct" } ] } } |
Q: На роутере поднят сервер Wireguard и к нему подключаются клиенты. Можно ли для этих клиентов раздать интернет через XKeen?
Важно!
Предложенное далее решение является устаревшим и оставлено для истории. В актуальных прошивках Keenetic добавлен новый компонент "WireGuard VPN-сервер, в котором для поставленной задачи достаточно выбрать необходимый сегмент домашней сети.
A: Да, это возможно. При работе XKeen для всего устройства, дополнительных настроек не требуется. Если же используется политка доступа в интернет XKeen, то для настройки требуется знать номер этой политики и номер интерфейса Wireguard. Посмотреть их можно, выгрузив из админки Кинетика файл конфигурации startup-config и открыв его любым текстовым редактором. Затем в CLI-интерфейсе роутера по адресу 192.168.1.1/a выполните следующую команду, указав в ней найденные номера вместо нулей:
|
1 |
ip hotspot policy Wireguard0 Policy0 |
Чтобы сохранить настройку в памяти роутера выполните:
|
1 |
system configuration save |
Отменить настройку и вернуть значение по умолчанию можно командами:
|
1 2 |
ip hotspot policy Wireguard0 permit system configuration save |
Q: Использую KeenDNS и могу подключаться к веб-интерфейсу роутера. Можно ли получить удалённый доступ к ssh-консоли entware через серый IP?
A: Поднимите на роутере SSTP VPN-сервер. К нему можно подключаться по домену KeenDNS на сером IP-адресе. После подключения, ssh роутера будет доступен по его локальному IP-адресу 192.168.1.1:22. SSTP-клиент для Windows включен в дистрибутив "из коробки", ничего доустанавливать не нужно, для остальных осей ищите в гугле.
Q: Можно ли настроить разные варианты маршрутизации используя одну политику доступа в интернет XKeen?
A: Для устройств с WiFi подключением к роутеру это можно сделать, создав несколько домашних/гостевых сетей и добавив в правила маршрутизации параметр source с их IP-подсетями. Например, таким роутингом, устройства подключившиеся к подсети 192.168.1.0/24 будут использовать выборочную маршрутизацию, а подключившиеся к 192.168.2.0/24 пойдут полностью через прокси:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "routing": { "rules": [ { "source": ["192.168.1.0/24"], "domain": [ "site1.ru", "site2.ru", "site3.ru" ], "outboundTag": "vless-reality" }, { "source": ["192.168.2.0/24"], "outboundTag": "vless-reality" }, { "network": "tcp,udp", "outboundTag": "direct" } ] } } |
Аналогично можно настроить, чтобы одна домашняя подсеть выходила в интернет через один прокси, а вторая, через другой:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "routing": { "rules": [ { "source": ["192.168.1.0/24"], "outboundTag": "vless-reality-eu" }, { "source": ["192.168.2.0/24"], "outboundTag": "vless-reality-us" } ] } } |
При наличии только одной домашней сети можно настроить разную маршрутизацию устройств по их IP-адресам:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "routing": { "rules": [ { "source": ["192.168.1.5"], "outboundTag": "vless-reality-eu" }, { "source": ["192.168.1.6","192.168.1.7","192.168.1.8"], "outboundTag": "vless-reality-us" }, { "source": ["192.168.1.9"], "outboundTag": "direct" } ] } } |
Q: Установил и настроил XKeen. Как выполнить резервное копирование и последующее восстановление в случае сбоя?
A: Выполнить резервное копирование можно запустив следующий код. Он создаёт в корне директории /opt архив, пригодный для установки на чистую флешку:
|
1 2 |
opkg update && opkg upgrade && opkg install tar tar --exclude=entware_backup.tar.gz --exclude=*.pid --warning=no-file-changed -cvzf /opt/entware_backup.tar.gz -C /opt . |
Для восстановления, отформатируйте флешку в файловую систему ext4, подключите её к роутеру, создайте на флешке папку install и поместите в неё архив резервной копии. В веб-интерфейсе роутера на странице OPKG выберите данную флешку в качестве накопителя. Подождите пару минут, пока резервная копия будет устанавливаться.
Q: Через несколько часов или дней непрерывной работы XKeen, пропадает интернет, при этом команда xkeen -status показывает, что прокси работает. Почему и как исправить?
A: При некотором количестве пользователей и интенсивном использовании интернета, прокси-клиент может исчерпать лимит файловых дескрипторов (для роутеров на arm процессорах 40000 fd, а для остальных роутеров 10000 fd). Проверить сколько fd занимает прокси-клиент можно следующей командой (если используете ядро Mihomo, то укажите его вместо Xray):
|
1 |
ls -l /proc/$(pidof xray)/fd | wc -l |
Форк XKeen начиная с версии 1.1.3.6 умеет контролировать число отрытых файловых дескрипторов и перезапускать прокси-клиент при достижении лимита. Чтобы включить эту функцию выполните следующую команду и перезагрузите роутер:
|
1 |
xkeen -fd |
Q: Есть два прокси-сервера. Можно ли открывать одни сайты через первый, а другие сайты через второй сервер?
A: Можно. Добавьте в файл outbounds.json подключения к обоим серверам:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "outbounds": [ { "protocol": "vless", "settings": { // Тут прописываем подключение к серверу proxy1 }, "tag": "proxy1" }, { "protocol": "vless", "settings": { // Тут прописываем подключение к серверу proxy2 }, "tag": "proxy2" }, { "protocol": "freedom", "tag": "direct" } ] } |
Затем в файле routing.json создайте правила, что именно должно открываться через первый, а что через второй сервер:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
{ "routing": { "rules": [ { // Сайт site1.ru открываем через proxy1 "domain": [ "site1.ru" ], "outboundTag": "proxy1" }, { // Сайт site2.ru открываем через proxy2 "domain": [ "site2.ru" ], "outboundTag": "proxy2" }, { // Остальное через провайдера "network": "tcp,udp", "outboundTag": "direct" } ] } } |
Q: Можно ли сделать несколько outbound'ов, чтобы если один недоступен, то до второго пыталось достучаться?
A: Да. Для этого предусмотрен встроенный в Xray механизм балансировки:
Отказоустойчивый прокси-сервер xray. Часть 1
Отказоустойчивый прокси-сервер xray. Часть 2
Отказоустойчивый прокси-сервер xray. Часть 3
Q: К роутеру подключены два провайдера, как сделать, чтобы XKeen/xay подключался к прокси только через одного из них?
A: Ответ на этот вопрос аналогичен 14 пункту данного FAQ. Можно добавить для direct и для прокси подключения в файле outbounds.json параметр "interface" с указанием, через какой интерфейс это подключение должно выполняться.
Пример для direct:
|
1 2 3 4 5 6 7 8 9 |
{ "protocol": "freedom", "streamSettings": { "sockopt": { "interface": "lte_br0" } }, "tag": "direct" }, |
Пример для прокси:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "protocol": "vless", "settings": { // тут ваши настройки прокси-сервера }, "streamSettings": { "network": "raw", "security": "reality", "realitySettings": { // тут ваши настройки прокси-сервера }, "sockopt": { "interface": "lte_br0" } }, "tag": "proxy" }, |
Название интерфейса lte_br0 дано для примера, уточните его в выводе команды ifconfig
--
To be continued...


