Archived
add_archive_project
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
# Xray-config
|
||||
|
||||
**Xray-config** - это набор скриптов для автоматизации маршрутизации.
|
||||
|
||||
## Зависимости
|
||||
|
||||
Для работы tproxy необходимо установить соответствующие пакеты:
|
||||
|
||||
```sh
|
||||
opkg update && opkg install kmod-nf-tproxy kmod-nft-tproxy git curl
|
||||
```
|
||||
|
||||
Также необходимо установить полную версию dnsmasq:
|
||||
|
||||
```sh
|
||||
cd /tmp
|
||||
opkg update
|
||||
opkg download dnsmasq-full
|
||||
opkg remove dnsmasq
|
||||
opkg install ./dnsmasq-full_*.ipk
|
||||
rm ./dnsmasq-full_*.ipk
|
||||
```
|
||||
|
||||
После чего ставим сам xray:
|
||||
|
||||
```sh
|
||||
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 бит:
|
||||
|
||||
```sh
|
||||
mkdir ~/.ssh
|
||||
chmod 600 ~/.ssh
|
||||
ssh-keygen -f ~/.ssh/id_dropbear -t rsa -s 4096
|
||||
```
|
||||
|
||||
2. Копируем публичную часть ключа, которую можно посмотреть, выполнив следующую команду:
|
||||
|
||||
```sh
|
||||
cat ~/.ssh/id_dropbear.pub
|
||||
```
|
||||
|
||||
3. В Gitea переходим в *Настрйки -> Ключи SSH / GPG* ([Ключи SSH / GPG](https://gitea.oyacoi.ru/user/settings/keys))
|
||||
4. Нажимаем **Добавить ключ** и в *Содержимое* добавляем ранее скопированную публичную часть ключа
|
||||
5. Сохраняем, после чего можно клонировать репозиторий по SSH (посмотреть ссылку SSH для прокета можно нажав на *Код -> SSH* внутри репозитория)
|
||||
|
||||
|
||||
## Установка
|
||||
|
||||
- Клонируем проект в */opt*:
|
||||
|
||||
```sh
|
||||
mkdir /opt
|
||||
cd /opt
|
||||
git clone gitea@gitea.lan:pyrschtjag/xray-config.git
|
||||
```
|
||||
- Удяляем дефолтный конфиг и initd-сервис:
|
||||
|
||||
```sh
|
||||
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*
|
||||
|
||||
```sh
|
||||
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*:
|
||||
|
||||
```sh
|
||||
cp /etc/xray/config/outbounds.jsonc-example /etc/xray/config/outbounds.jsonc
|
||||
```
|
||||
- Указываем свой id в конфиге */etc/xray/config/outbounds.jsonc*
|
||||
* Если используется сервер, **отличный** от vector, тогда пишем **свой** конфиг *outbounds*
|
||||
|
||||
## Использование
|
||||
|
||||
- При первом запуске достаточно запустить обновление списков маршрутов:
|
||||
|
||||
```sh
|
||||
sh /etc/xray/main/update.sh
|
||||
```
|
||||
|
||||
- В дальнейшем пользоваться через основной сервис xray:
|
||||
|
||||
```sh
|
||||
service xray stop|start|restart
|
||||
```
|
||||
|
||||
## Описание
|
||||
|
||||
Скрипт автообновления маршрутов: */etc/xray/main/update.sh*
|
||||
|
||||
По деофлту для маршрутизации используются списки ip-диапазонов:
|
||||
- [Re:filter](https://github.com/1andrevich/Re-filter-lists/tree/main)
|
||||
- [cdn_ip_ranges](https://github.com/123jjck/cdn-ip-ranges)
|
||||
- [domain-list-community](https://github.com/v2fly/domain-list-community)
|
||||
|
||||
При запуске 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:
|
||||
```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*:
|
||||
|
||||
```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*, скрипт сам скачает этот файл, распарсит и будет использовать для маршрутизации.
|
||||
Reference in New Issue
Block a user