-
Notifications
You must be signed in to change notification settings - Fork 26
Configuration
Предусмотрена возможность добавить в конфигурационные файлы 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). Возможностью контролировать открытые файловые дескрипторы следует пользоваться в крайних ситуациях, когда ничего уже не помогает, так как при этом прокси-клиент будет постоянно перезапускаться для сброса дескрипторов. Рекомендуется вместо этого найти и устранить причину. Это может быть устройство или приложение, открывающее множество подключений.
В базовый конфиг добавлены два публичных GitHub-прокси, через которые возможна загрузка XKeen и его компонентов в случае недоступности GitHub. Если же и они окажутся недоступны, можете установить Self-Hosted прокси на своём сервере и указать его в параметре gh_proxy конфигурационного файла xkeen.json Файл xkeen.json можно создать заранее перед установкой XKeen, в этом случае прокси будет использоваться при установке.
При нестабильном соединении один транзиентный сбой может прервать установку или обновление компонентов. В конфигурационном файле 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): на каждой попытке скрипт автоматически перебирает все доступные префиксы.
Обычная установка 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 с помощью XKeen активируется командой xkeen -dns и имеет следующую особенность. Корректная работа устройств вне политик XKeen возможна только когда:
- Эти устройства находятся не в "Политике по умолчанию", а в кастомной политике с произвольным именем
- В роутере не игнорируется DNS провайдера, либо добавлен любой внешний не шифрованный DNS (даже при использовании AdGuardHome и отключении прошивочного резолвера командой
opkg dns-override) - В роутере удалён компонент "Фильтрация контента и блокировка рекламы при помощи облачных сервисов" (на актуальных прошивках Кинетика этот компонент зависит от "Мастера первоначальной настройки" и его тоже нужно удалить)
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.lstIP-адресами и подсетями, которые нужно исключить из предыдущего пункта -
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 можно использовать для обновления компонентов 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
Навигация
- Главная
- FAQ - Часто задаваемые вопросы и ответы
- Отличия форка XKeen от оригинала
- Таблица совместимости роутеров
- Режимы работы XKeen
- Порядок установки
- Описание установочного скрипта
- Конфигурационный файл xkeen.json
- Описание настроек некоторых возможностей
- DNS-over-VLESS
- Маршрутизация по DSCP-меткам
- Известные проблемы