Skip to content

Configuration

jameszero edited this page Jun 8, 2026 · 13 revisions

Внешние списки портов и IP

Предусмотрена возможность добавить в конфигурационные файлы XKeen необходимые порты проксирования или исключения из проксирования, а также IP-адреса и подсети, проксирование которых не требуется. Файлы находятся в директории /opt/etc/xkeen/

  • port_proxying.lst - порты проксирования, например 80 и 443
  • port_exclude.lst - порты, которые необходимо исключить из проксирования, например, 3389.
  • ip_exclude.lst - IP-адреса и подсети, которые необходимо исключить из проксирования, например, 77.88.8.8

Каждый порт и IP указываются в этих файлах с новой строки. Пустые строки и строки, начинающиеся со знака комментария # игнорируются. Порты проксирования и порты исключенные из проксирования не могут применяться вместе, используйте или то, или другое. Если по ошибке будут заполнены оба списка, то приоритет имеют порты проксирования, а список исключенных портов игнорируется. При чистой установке XKeen создаются шаблоны вышеуказанных файлов с примерами их заполнения.


Контроль файловых дескрипторов

В среде entware Keenetic довольно низкий предел файловых дескрипторов (fd) выделяемых на один процесс - 1024. Превышение этого значения приводит к отказу прокси-клиенту создавать новые коннекты. На процессорах arm64 суммарно на все процессы отведено около 50000 fd, а на mips процессорах около 12000 fd (цифры могут отличаться для разных моделей роутеров). Оригинал XKeen выделяет для процесса xray 1 миллион! дескрипторов и если xray попытается их занять, роутер может просто зависнуть. Форк XKeen версии 1.1.3.6+, в зависимости от процессора, устанавливает лимит 40000 fd для arm64 и 10000 fd для остальных процессоров, а при достижении 90% от этой цифры, перезапускает прокси-клиент. В параметрах arm64_fd и other_fd стартового скрипта XKeen, при необходимости, можно откорректировать лимиты, установив другие значения. Контроль fd может быть полезен для высоконагруженных роутеров с большим количеством клиентов. Для типичного self-use применения XKeen, данный функционал использовать необязательно, поэтому по умолчанию контроль открытых файловых дескрипторов прокси-клиентом отключен (включить/отключить можно командой xkeen -fd). Возможностью контролировать открытые файловые дескрипторы следует пользоваться в крайних ситуациях, когда ничего уже не помогает, так как при этом прокси-клиент будет постоянно перезапускаться для сброса дескрипторов. Рекомендуется вместо этого найти и устранить причину. Это может быть устройство или приложение, открывающее множество подключений.


Self-Hosted-прокси для загрузки

В базовый конфиг добавлены два публичных GitHub-прокси, через которые возможна загрузка XKeen и его компонентов в случае недоступности GitHub. Если же и они окажутся недоступны, можете установить Self-Hosted прокси на своём сервере и указать его в параметре gh_proxy конфигурационного файла xkeen.json Файл xkeen.json можно создать заранее перед установкой XKeen, в этом случае прокси будет использоваться при установке.


Повторы загрузки с GitHub

При нестабильном соединении один транзиентный сбой может прервать установку или обновление компонентов. В конфигурационном файле xkeen.json можно настроить автоматические повторные попытки загрузки:

{
  "xkeen": {
    "retries_download": 3,
    "retry_delay_download": 5
  }
}
  • retries_download — общее число попыток загрузки одного файла. По умолчанию 1 (без повторов). Применяется к загрузке XKeen, Xray, Mihomo, Yq, GeoSite/GeoIP/GeoIPSET, а также к получению списка релизов через GitHub API/jsDelivr.
  • retry_delay_download — пауза в секундах между попытками. По умолчанию 2.

Повторы работают совместно со встроенной цепочкой зеркал (gh_proxy, gh-proxy.com, ghfast.top): на каждой попытке скрипт автоматически перебирает все доступные префиксы.


OffLine-установка

Обычная установка XKeen и необходимых компонентов выполняется в OnLine режиме и жёстко привязана к GitHub, а в случае его недоступности будет невозможна. Поэтому в форк дополнительно к способу установки через Self-Hosted-прокси добавлен режим OffLine-установки по команде xkeen -io

Для OffLine-установки необходимо заранее любым способом скачать установочный архив XKeen версии 1.1.3.9+, ядро проксирования xray и(или) mihomo + парсер yaml-файлов yq подходящей архитектуры. Если планируте использовать xray и геофайлы в роутинге, то загрузите и их. Следующим шагом поместите в папку /opt/sbin/ архив XKeen (не распаковывая) и предварительно извлечённые из архива и при необходимости переименованные в xray mihomo и yq бинарники, затем выполните OffLine-установку командами в ssh-консоли entware Keenetic:

cd /opt/sbin
tar -xvzf xkeen.tar.gz && rm xkeen.tar.gz
xkeen -io

Копирование файлов конфигурации xray, mihomo и необходимых геофайлов в директории /opt/etc/xray/configs, /opt/etc/mihomo, /opt/etc/xray/dat выполните вручную, после чего можете запустить проксирование командой xkeen -start

При OffLine-установке XKeen не проверяет соответствие архитектуры процессора и бинарников, поэтому выбирайте совместимые бинарники внимательно. Если затрудняетесь в выборе, запустите xkeen -io без xray и mihomo в папке /opt/sbin/ и XKeen сообщит, какая архитектура требуется для вашего роутера.

При недоступности GitHub, обновление геофайлов по планировщику работать не будет, выполняйте его вручную.

Если недоступен не только GitHub, но и репозиторий Entware, то перед OffLine установкой XKeen требуется вручную установить недостающие пакеты из следующего списка:

curl, tar, lscpu, jq, libc, libssp, librt, libpthread, iptables, ca-bundle, coreutils-uname, coreutils-nohup, ipset

либо прописать в файл /opt/etc/opkg.conf рабочее зеркало репозитория


Пользовательские политики

В роутинге, используя параметр source, вы можете определить разные правила маршрутизации для разных устройств, а пользовательские политики дают возможность задать для них разные порты проксирования, например, для торрент-клиента можно сделать политику с 80,443 портами проксирования, для телефонов политику с портами 80,443,596:599,1400,3478,5222, а для игровых устройств с более широким набором портов. Для работы с пользовательскими политиками, они должны быть определены в конфигурационном файле /opt/etc/xkeen/xkeen.json, а также созданы в интерфейсе роутера с теми же именами. Пользовательские политики подключаются только если в интерфейсе роутера создана дефолтная политика xkeen, иначе пользовательские политики игнорируются и проксирование запускается для всех клиентов роутера. В пользовательских политиках, в отличие от политики xkeen, не проверяется наличие обязательных портов проксирования 80,443, и вы можете формировать произвольный их список. Описание конфигурационного файла xkeen.json


Проксирование DNS

Проксирование DNS с помощью XKeen активируется командой xkeen -dns и имеет следующую особенность. Корректная работа устройств вне политик XKeen возможна только когда:

  • Эти устройства находятся не в "Политике по умолчанию", а в кастомной политике с произвольным именем
  • В роутере не игнорируется DNS провайдера, либо добавлен любой внешний не шифрованный DNS (даже при использовании AdGuardHome и отключении прошивочного резолвера командой opkg dns-override)
  • В роутере удалён компонент "Фильтрация контента и блокировка рекламы при помощи облачных сервисов" (на актуальных прошивках Кинетика этот компонент зависит от "Мастера первоначальной настройки" и его тоже нужно удалить)

Описание работы IPSET в XKeen

XKeen создаёт и использует 4 сета IPv4 и 4 сета IPv6 IPSET.

  • user_exclude, user_exclude6 - наполняются пользовательскими исключениями IP из файла ip_exclude.lst
  • geo_exclude, geo_exclude6 - наполняются подсетями России из загружаемых файлов ru_exclude_ipv4.lst и ru_exclude_ipv6.lst
  • geo_override, geo_override6 - наполняется из пользовательского файла ru_exclude_override.lst IP-адресами и подсетями, которые нужно исключить из предыдущего пункта
  • ext_exclude, ext_exclude6 - наполняются любым сторонним приложением на ваш выбор, например, AdGuard Home или dnsmasq (см. документацию к этим приложениям). Данная возможность позволяет добавлять в исключения проксирования не IP, а доменные имена.

Все сеты, кроме geo_override и geo_override6, исключаются из цепей маршрутизации XKeen и идут напрямую через провайдера. Это позволяет избежать обрывов коннекта, которые иногда происходят в результате обработки трафика прокси-клиентом.

Файлы ru_exclude_ipv4.lst и ru_exclude_ipv6.lst первоначально устанавливаются и загружаются в процессе установки XKeen или вручную командой xkeen -gips. Обновление этих файлов выполняется одновременно с геофайлами по планировщику либо запуском xkeen -ug


Проксирование трафика Entware

Проксирование трафика Entware можно использовать для обновления компонентов XKeen при недоступности GitHub, либо для любых других приложений в Entware, не связанных с XKeen. Для проксирования трафика Entware требуется установка 255 метки на все исходящие подключения кроме blackhole и dns. При использовании ядра Xray добавьте маркировку к каждому подключению в outbounds включая direct:

"streamSettings": {
  "sockopt": {
    "mark": 255
  }
}

При использовании ядра Mihomo добавьте маркировку глобально:

tproxy-port: 1181
log-level: silent
...
routing-mark: 255

либо к каждому proxies, proxy-providers и direct подключениям (см. документацию к Mihomo) После этого можете включить проксирование трафика Entware выполнив команду xkeen -pr

Clone this wiki locally