This repository has been archived on 2026-04-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
xray-config-archive/README.md
T
2026-04-04 13:25:49 +04:00

7.7 KiB

Xray-config

Xray-config - это набор скриптов для автоматизации маршрутизации.

Зависимости

Для работы tproxy необходимо установить соответствующие пакеты:

opkg update && opkg install kmod-nf-tproxy kmod-nft-tproxy git curl

Также необходимо установить полную версию dnsmasq:

cd /tmp
opkg update
opkg download dnsmasq-full
opkg remove dnsmasq
opkg install ./dnsmasq-full_*.ipk
rm ./dnsmasq-full_*.ipk

После чего ставим сам xray:

opkg update && opkg install xray-core

Настройки среды

Скрипт /etc/xray/common/check.sh, который запускается с startup.sh и update.sh сам подготавливает окружение и создаёт директории:

  • /var/log/xray и добавляет в rc.local
  • /etc/dnsmasq.d и добавляет option confdir в config/dhcp

Добавление rsa-ключа в Gitea

  1. Подключаемся по ssh к OpenWrt и генерируем rsa-ключ длиной 4096 бит:
mkdir ~/.ssh
chmod 600 ~/.ssh
ssh-keygen -f ~/.ssh/id_dropbear -t rsa -s 4096
  1. Копируем публичную часть ключа, которую можно посмотреть, выполнив следующую команду:
cat ~/.ssh/id_dropbear.pub
  1. В Gitea переходим в Настрйки -> Ключи SSH / GPG (Ключи SSH / GPG)
  2. Нажимаем Добавить ключ и в Содержимое добавляем ранее скопированную публичную часть ключа
  3. Сохраняем, после чего можно клонировать репозиторий по SSH (посмотреть ссылку SSH для прокета можно нажав на Код -> SSH внутри репозитория)

Установка

  • Клонируем проект в /opt:
mkdir /opt
cd /opt
git clone gitea@gitea.lan:pyrschtjag/xray-config.git
  • Удяляем дефолтный конфиг и initd-сервис:
rm /etc/config/xray
rm /etc/init.d/xray
  • Создаём симлинки:
    • /etc/xray/common -> /opt/xray-config/etc/xray/common
    • /etc/xray/config -> /opt/xray-config/etc/xray/config
    • /etc/xray/main -> /opt/xray-config/etc/xray/main
    • /etc/init.d/xray -> /opt/xray-config/etc/init.d/xray
    • /etc/config/xray -> /opt/xray-config/etc/config/xray
ln -s /opt/xray-config/etc/init.d/xray /etc/init.d/xray
ln -s /opt/xray-config/etc/config/xray /etc/config/xray
ln -s /opt/xray-config/etc/xray/common /etc/xray/common
ln -s /opt/xray-config/etc/xray/config /etc/xray/config
ln -s /opt/xray-config/etc/xray/main /etc/xray/main
  • Копируем outbounds.jsonc-example в outbounds.jsonc в /etc/xray/config:
cp /etc/xray/config/outbounds.jsonc-example /etc/xray/config/outbounds.jsonc
  • Указываем свой id в конфиге /etc/xray/config/outbounds.jsonc
    • Если используется сервер, отличный от vector, тогда пишем свой конфиг outbounds

Использование

  • При первом запуске достаточно запустить обновление списков маршрутов:
sh /etc/xray/main/update.sh
  • В дальнейшем пользоваться через основной сервис xray:
service xray stop|start|restart

Описание

Скрипт автообновления маршрутов: /etc/xray/main/update.sh

По деофлту для маршрутизации используются списки ip-диапазонов:

При запуске xray будет автоматически создана таблица xray с правилами и маршрутами, а также подготовлены сами маршруты.

/etc/xray/ipset - содержит списки для маршрутизации.

Пользовательские адреса задаются в файлах:

  • /etc/xray/ipset/ip_user.lst
  • /etc/xray/ipset/domain_user.lst

Для исключений используются файлы:

  • /etc/xray/ipset/xray_ip_user_whitelist.lst
  • /etc/xray/ipset/xray_domain_user_whitelist.lst

Каждая запись в списках (как для доменов, так и для подсетей) должна начинаться с новый строки. Синтаксис для xray_ip_user_whitelist.lst (и для других списков с подсетями) выглядит следующим образом:

  • x.x.x.x
  • x.x.x.x/mask

Скрипт автоматически добавляет:

  • Суффикс xray_domain_ или xray_ip_ в зависимости от типа списка
  • Постфикс _whitelist если список находится в xray_domain_whitelist или xray_ip_whitelist
  • Расширение .lst

Если необходимо добавить свои списки доменов или подсетей и разнести их по нескольким файлам, то необходимо придерживаться следующих правил для нейминга файлов:

  • xray_ip_user_LISTNAME.lst - пользовательский спикок url с подсетями для маршрутизации в прокси
  • xray_ip_user_LISTNAME_whitelist.lst - пользовательский белый список url с подсетями для маршрутизации в обход прокси
  • xray_domain_user_LISTNAME.lst - пользовательский спикок url с доменами для маршрутизации в прокси
  • xray_domain_user_LISTNAME_whitelist.lst - пользовательский белый список url с доменами для маршрутизации в обход прокси

Каждый запуск обновления удаляет предыдущие списки, не относящиеся к user.

Скрипт автообновления списков можно добавить в cron:

0 5 * * 0 sh /etc/xray/main/update.sh

Добавление своих url со списками

Чтобы добавить готовый список адресов, достаточно добавить ссылки на raw-файл в следующие массивы:

  • xray_ip - спикок url с подсетями для маршрутизации в прокси
  • xray_ip_whitelist - белый список url с подсетями для маршрутизации в обход прокси
  • xray_domain - спикок url с доменами для маршрутизации в прокси
  • xray_domain_whitelist - белый список url с доменами для маршрутизации в обход прокси

Пример /etc/xray/main/update.sh:


xray_ip="
https://raw.link_ip1.lst
https://raw.link_ip2.txt
"

xray_ip_whitelist=""

xray_domain="
https://raw.link_domain1.lst
https://raw.link_domain2.txt
"

xray_domain_whitelist="
https://raw.link_domain3.lst
"

После чего при запуске update.sh, скрипт сам скачает этот файл, распарсит и будет использовать для маршрутизации.