Compare commits
2 Commits
3cf3e4e267
...
d5a21d4fc0
| Author | SHA1 | Date | |
|---|---|---|---|
| d5a21d4fc0 | |||
| 8e6594cefe |
2
.obsidian/graph.json
vendored
2
.obsidian/graph.json
vendored
@@ -17,6 +17,6 @@
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 1,
|
||||
"scale": 1.2570341048229237,
|
||||
"close": false
|
||||
}
|
||||
53
.obsidian/workspace.json
vendored
53
.obsidian/workspace.json
vendored
@@ -95,10 +95,24 @@
|
||||
"id": "06e223311e1373f4",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Без названия.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Без названия"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "59f79e6832dc6c0e",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "Граф"
|
||||
"icon": "lucide-file",
|
||||
"title": "Новая вкладка"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -261,18 +275,43 @@
|
||||
"obsidian-git:Open Git source control": false
|
||||
}
|
||||
},
|
||||
"active": "06e223311e1373f4",
|
||||
"active": "d179233a4e24f3eb",
|
||||
"lastOpenFiles": [
|
||||
"3. Instruction inastall devices/Установка на разные девайсы.md",
|
||||
"3. Instruction inastall devices/Рабочий конфиг..md",
|
||||
"3. Instruction inastall devices",
|
||||
"2. Инструкция Marzban/Коды/Vless-код.md",
|
||||
"2. Инструкция Marzban/Коды/Rules Marzban.md",
|
||||
"2. Инструкция Marzban/Коды/Outbound Warp.md",
|
||||
"2. Инструкция Marzban/Cache/Gif.md",
|
||||
"2. Инструкция Marzban/Создание сертификатов и их внесение в marzban.md",
|
||||
"2. Инструкция Marzban/Коды",
|
||||
"2. Инструкция Marzban/Cache",
|
||||
"2. Инструкция Marzban/3.1 Создание, настройка и подключение конфига warp к марзбан.md",
|
||||
"2. Инструкция Marzban/3. Подключение WARP к Marz.md",
|
||||
"2. Инструкция Marzban/2. Ручная установка и настройка marzban.md",
|
||||
"2. Инструкция Marzban/1. Скрипт установки VPN.md",
|
||||
"2. Инструкция Marzban",
|
||||
"1. Инструкция Marzban/2. Ручная установка/Папка с кодом/Vless-код.md",
|
||||
"1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md",
|
||||
"1. Инструкция Marzban/1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md",
|
||||
"1. Инструкция Marzban/1. Установка скриптом/2. Файл/installer-marzban.sh",
|
||||
"1. Инструкция Marzban/2. Ручная установка/Папка с кодом",
|
||||
"1. Инструкция Marzban/2. Ручная установка/Cache",
|
||||
"1. Инструкция Marzban/2. Ручная установка/2. Создание сертификатов и их внесение в marzban.md",
|
||||
"1. Инструкция Marzban/2. Ручная установка/1. Установка и настройка.md",
|
||||
"1. Инструкция Marzban/1. Установка скриптом/2. Файл",
|
||||
"1. Инструкция Marzban/1. Установка скриптом/1. Скрипт установки VPN.md",
|
||||
"1. Инструкция Marzban/2. Ручная установка",
|
||||
"1. Инструкция Marzban/1. Установка скриптом",
|
||||
"Без названия.md",
|
||||
"2 заметка.md",
|
||||
"Без названия 1.md",
|
||||
"шаблоны/notes123.md",
|
||||
"Без названия",
|
||||
"README.md",
|
||||
"шаблоны/Совмещение 2.md",
|
||||
"шаблоны/Без названия 2.md",
|
||||
"шаблоны/Без названия 1.md",
|
||||
"шаблоны/Без названия 3.md",
|
||||
"шаблоны"
|
||||
"шаблоны/Без названия 3.md"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
## Вариант 1. установка по скрипту
|
||||
|
||||
>[!Bug] **Использовать код**
|
||||
>`bash <(wget --no-check-certificate -O - https://gist.githubusercontent.com/Stich505/50104e1d672873e9fcbde0b1656f7974/raw/f370333e62c658271483b77cedcc45bb1adacfa0/gistfile.txt)`
|
||||
|
||||
## Вариант 2. установка из файла
|
||||
|
||||
>[!example]
|
||||
>1) **Нужно закинуть файл из [[СМОТРИ ФАЙЛ]] в любое место на Linux**
|
||||
>2) **Нужно перейти в это место через `cd __`**
|
||||
>3) **использовать команду `sudo chmod +x ./installer-marzban.sh && ./installer-marzban.sh`**
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
systemctl disable --now unattended-upgrades
|
||||
|
||||
apt update -y
|
||||
apt install curl net-tools iftop nload cron socat -y
|
||||
apt autoremove --purge snapd -y
|
||||
|
||||
# Clean journal logs
|
||||
journalctl --vacuum-size=5M
|
||||
journalctl --verify
|
||||
sed -i -e "s/#SystemMaxUse=/SystemMaxUse=5M/g" /etc/systemd/journald.conf
|
||||
sed -i -e "s/#SystemMaxFileSize=/SystemMaxFileSize=1M/g" /etc/systemd/journald.conf
|
||||
sed -i -e "s/#SystemMaxFiles=100/SystemMaxFiles=5/g" /etc/systemd/journald.conf
|
||||
systemctl daemon-reload
|
||||
systemctl restart systemd-journald
|
||||
sleep 1
|
||||
|
||||
|
||||
|
||||
#### ENABLE BBRv2
|
||||
enable_bbr() {
|
||||
echo -e "${blue}Enable BBR${clear}"
|
||||
if [[ ! "$(sysctl net.core.default_qdisc)" == *"= fq" ]]
|
||||
then
|
||||
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
|
||||
fi
|
||||
if [[ ! "$(sysctl net.ipv4.tcp_congestion_control)" == *"bbr" ]]
|
||||
then
|
||||
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
|
||||
fi
|
||||
}
|
||||
enable_bbr
|
||||
|
||||
|
||||
|
||||
### WARP INSTALL on UBUNTU - 127.0.0.1:40000
|
||||
bash <(curl -fsSL checkvpn.net/files/warp.sh) proxy
|
||||
|
||||
|
||||
|
||||
# IP VPS
|
||||
IPVPS=`ip addr show $ETH | grep global | sed -En -e 's/.*inet ([0-9.]+).*/\1/p' | head -n1`
|
||||
|
||||
|
||||
# Download env and fix pass.
|
||||
cd /root/
|
||||
curl -sL "https://checkvpn.net/files/.env.example" -o .env.example
|
||||
cp -r .env.example env_marzban
|
||||
|
||||
|
||||
# random password with 16 symbols
|
||||
PASSMARZBAN=`openssl rand -hex 16`
|
||||
|
||||
# random port from
|
||||
RANDPORT=`echo $(( ( RANDOM % 65535 ) + 1025 ))`
|
||||
|
||||
# get email
|
||||
read -p "Введите вашу почту(admin@example.com): " EMAIL
|
||||
|
||||
curl https://get.acme.sh | sh -s email=$EMAIL
|
||||
|
||||
|
||||
# get domain
|
||||
read -p "Введите имя домена (example.com): " DOMAIN
|
||||
|
||||
|
||||
mkdir -p /var/lib/marzban/certs/
|
||||
|
||||
|
||||
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d $DOMAIN \
|
||||
--key-file /var/lib/marzban/certs/key.pem \
|
||||
--fullchain-file /var/lib/marzban/certs/fullchain.pem
|
||||
|
||||
sed -i '1d' env_marzban
|
||||
sed -i '1d' env_marzban
|
||||
|
||||
sed -i -e '1iUVICORN_PORT = "'$RANDPORT'" ' env_marzban
|
||||
sed -i -e '1iUVICORN_HOST = "'$DOMAIN'" ' env_marzban
|
||||
sed -i -e '1iXRAY_SUBSCRIPTION_URL_PREFIX = "https://'$DOMAIN':'$RANDPORT'" ' env_marzban
|
||||
|
||||
sed -i -e '1iSUDO_PASSWORD = "'$PASSMARZBAN'" ' env_marzban
|
||||
sed -i -e '1iSUDO_USERNAME = "marzban" ' env_marzban
|
||||
|
||||
sed -i -e '1iUVICORN_SSL_CERTFILE = "'/var/lib/marzban/certs/fullchain.pem'" ' env_marzban
|
||||
sed -i -e '1iUVICORN_SSL_KEYFILE = "'/var/lib/marzban/certs/key.pem'" ' env_marzban
|
||||
|
||||
|
||||
|
||||
# install marzban with fixed .env
|
||||
bash -c "$(curl -sL https://checkvpn.net/files/marzban2.sh)" @ install
|
||||
|
||||
|
||||
sleep 1
|
||||
echo "------------------------------------------"
|
||||
echo "WEB interface Marzban IP: https://"$DOMAIN":"$RANDPORT"/dashboard/login"
|
||||
echo "WEB interface Marzban login: marzban"
|
||||
echo "WEB interface Marzban password:" $PASSMARZBAN
|
||||
|
||||
sleep 10
|
||||
marzban restart
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
>[!bug] **Возврат в статью**
|
||||
>[[1. Скрипт установки VPN]]
|
||||
@@ -0,0 +1,79 @@
|
||||
>[!Example]- **Установка Marzban, создание админа и открытие панели**
|
||||
> Установить marzban нужно командой:
|
||||
> `sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install`
|
||||
> >[!Bug] этой командой идёт установка **LAST** версии `marzban`
|
||||
>
|
||||
> **После установки Marzban, нужно установить пользователя **
|
||||
>
|
||||
> >[!Todo] Создание админа и его пароля производится командой:
|
||||
>>`marzban cli admin create --sudo`
|
||||
>>Указываете (Name_user) -> enter
|
||||
>>Указываете (Password) -> enter
|
||||
>>Указываете 2 раз тот же (Password) -> enter
|
||||
>>>[!warning] Остальное можно просто скипнуть нажав enter
|
||||
>
|
||||
>Установка завершена, открыть панель можно по пути:
|
||||
>`http://YOUR_SERVER_IP:8000/dashboard/`
|
||||
>Для входа укажите созданные вами login и password
|
||||
|
||||
>[!Danger]+ **С момента создания протокола и до момента, пока не будут отредактированы важные файлы, marzban НЕ ДАСТ сохранить конфигурацию, это нормальное поведение!!**
|
||||
|
||||
|
||||
>[!Example]- **Создание VLESS протокола**
|
||||
> 1) нужно находясь в панели открыть основные настройки:
|
||||
>![[Pasted image 20241006120520.png]]
|
||||
>**Теперь нам нужно опустится до строки** `inbound`
|
||||
![[Pasted image 20241006121617.png]]
|
||||
> Нажимаем enter и вставляем [[Vless-код]], как это должно выглядеть смотрите ниже:
|
||||
> ![[vivaldi_lH5qIAPZ2n.gif]]
|
||||
|
||||
>[!Example]- **Поиск подходящего сайта**
|
||||
>Нам нужно найти сайт у которого: `минимальный пинг, tls 1.3, сайт не за CDN сервисом`
|
||||
>
|
||||
>**для поиска подходящего сайта открываем две новых вкладки в браузере с гугл поиском где:**
|
||||
**1 вкладка** - Пишем в поисковой строке `site:nl` (`NL` заменить нужной страной)
|
||||
> 1) После загрузки запроса будут выведены сайты нужной нам страны.
|
||||
> 2) Открываем сайты **и копируем из ссылки ТОЛЬКО доменную часть**
|
||||
>
|
||||
>**2 вкладка** Открываем сайт `https://www.cdn77.com/tls-test` и вставляем скопированный домен из *1 вкладки* -> нажимаем _Enter_ и ждем когда прогрузятся данные
|
||||
>
|
||||
> После загрузки данных мы видим данные о `tls и ssl У сайта` в конечном итоге данные должны выглядеть вот так:
|
||||
> ![[Pasted image 20241006123927.png]]
|
||||
>
|
||||
>Теперь нужно проверить пинг от нас до сайта, в консоли вашего сервера пишем:
|
||||
>`ping npo.nl` -> enter
|
||||
>>[!Warning] достаточно 10 запросов чтобы понять отклик в миллисекундах, затем нажимаем `CTRL+C` для остановки запросов к сайту
|
||||
>
|
||||
>в конечном итоге на экране консоли будет выдана такая информация:
|
||||
>![[Pasted image 20241006125142.png]]
|
||||
>
|
||||
>>[!Info] На примере скриншота видно, что пинг огромный, а значит нужно продолжать искать сайт с подходящими условиями и минимальным пингом
|
||||
|
||||
>[!Example]- **Внесение домена найденного сайта с соответствующими требованиями**
|
||||
>
|
||||
>**Когда нужный сайт найден, возвращаемся в основные настройки и указываем в полях:**
|
||||
>`dest` домен сервера:443
|
||||
>`serverNames` домен сервера
|
||||
>**Итоговый пример** ![[Pasted image 20241006125744.png]]
|
||||
|
||||
>[!Example]- **Генерация ключей шифрования и параметра shortIds и внесения в панель**
|
||||
>осуществляется командами:
|
||||
> `docker exec marzban-marzban-1 xray x25519`
|
||||
>`openssl rand -hex 8`
|
||||
>После генерации данных нужно их также внести в панель марзбана в поля:
|
||||
>`privateKey`
|
||||
>`shordlds`
|
||||
>Итоговый пример ![[Pasted image 20241006130325.png]]
|
||||
>
|
||||
>**Теперь нажимаем сохранить и перезапустить ядро + обновляем страницу**
|
||||
|
||||
|
||||
|
||||
|
||||
>[!note] **Переходы:
|
||||
> [[2. Создание сертификатов и их внесение в marzban]]**
|
||||
|
||||
|
||||
|
||||
>[!Danger] [Оригинал инструкция](https://habr.com/ru/articles/771892/)
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
>[!Tip]- **Установка socat и cron:**
|
||||
`apt install cron socat`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
>[!tip]- **Устанавливаем acme.sh**
|
||||
>>[!Bug] EMAIL = Это ваш email
|
||||
> `curl https://get.acme.sh | sh -s email=EMAIL`
|
||||
>sdfsdf
|
||||
|
||||
>[!tip]- **Создание директории для сертификатов**
|
||||
>`mkdir -p /var/lib/marzban/certs/`
|
||||
|
||||
>[!Tip]+ Получение сертификата
|
||||
>>[!Danger] Введите ваш домен или субдомен в поле `DOMAIN`
|
||||
>>**Ниже 1 единая команда!!!**
|
||||
>
|
||||
|
||||
```
|
||||
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d DOMAIN \
|
||||
--key-file /var/lib/marzban/certs/key.pem \
|
||||
--fullchain-file /var/lib/marzban/certs/fullchain.pem
|
||||
```
|
||||
|
||||
Проверить список выпущенных сертификатов можно командой:
|
||||
```
|
||||
~/.acme.sh/acme.sh --list
|
||||
```
|
||||
|
||||
|
||||
>[!Tip]- **Редактирование данных в файле .env**
|
||||
>После создания сертификатов, нужно отредактировать файл
|
||||
>1) Открываем файл командой:
|
||||
>2) `nano /opt/marzban/.env
|
||||
>Делаем изменения в полях:
|
||||
>1) `UVICORN_PORT = 443`
|
||||
>2) `UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem"`
|
||||
>3) `UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem"`
|
||||
>4) `XRAY_SUBSCRIPTION_URL_PREFIX` = https://YOUR_DOMAIN (Ковычки удаляем)
|
||||
>5) *Пример ниже, красное как было, зеленое как стало*
|
||||
>![[Pasted image 20241006133752.png]]
|
||||
|
||||
После редактирования нужно перезапустить марзбан командой:
|
||||
`sudo marzban restart`
|
||||
|
||||
|
||||
|
||||
|
||||
>[!Note] Переход в [[1. Установка и настройка]]
|
||||
1
1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md
Normal file
1
1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md
Normal file
@@ -0,0 +1 @@
|
||||
![[vivaldi_lH5qIAPZ2n.gif]]
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"tag": "VLESS TCP REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "заменить:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"заменить"
|
||||
],
|
||||
"privateKey": "заменить",
|
||||
"shortIds": [
|
||||
"заменить"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls",
|
||||
"quic"
|
||||
]
|
||||
}
|
||||
},
|
||||
12
2. Инструкция Marzban/1. Скрипт установки VPN.md
Normal file
12
2. Инструкция Marzban/1. Скрипт установки VPN.md
Normal file
@@ -0,0 +1,12 @@
|
||||
## Вариант 1. установка по скрипту
|
||||
|
||||
>[!Bug] **Использовать код**
|
||||
>`bash <(wget --no-check-certificate -O - https://gist.githubusercontent.com/Stich505/50104e1d672873e9fcbde0b1656f7974/raw/f370333e62c658271483b77cedcc45bb1adacfa0/gistfile.txt)`
|
||||
|
||||
## Вариант 2. установка из файла
|
||||
|
||||
>[!example]
|
||||
>1) **Нужно закинуть файл из [[СМОТРИ ФАЙЛ]] в любое место на Linux**
|
||||
>2) **Нужно перейти в это место через `cd __`**
|
||||
>3) **использовать команду `sudo chmod +x ./installer-marzban.sh && ./installer-marzban.sh`**
|
||||
|
||||
129
2. Инструкция Marzban/2. Ручная установка и настройка marzban.md
Normal file
129
2. Инструкция Marzban/2. Ручная установка и настройка marzban.md
Normal file
@@ -0,0 +1,129 @@
|
||||
>[!Example]- **Установка Marzban, создание админа и открытие панели**
|
||||
> Установить marzban нужно командой:
|
||||
> `sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install`
|
||||
> >[!Bug] этой командой идёт установка **LAST** версии `marzban`
|
||||
>
|
||||
> **После установки Marzban, нужно установить пользователя **
|
||||
>
|
||||
> >[!Todo] Создание админа и его пароля производится командой:
|
||||
>>`marzban cli admin create --sudo`
|
||||
>>Указываете (Name_user) -> enter
|
||||
>>Указываете (Password) -> enter
|
||||
>>Указываете 2 раз тот же (Password) -> enter
|
||||
>>>[!warning] Остальное можно просто скипнуть нажав enter
|
||||
>
|
||||
>Установка завершена, открыть панель можно по пути:
|
||||
>`http://YOUR_SERVER_IP:8000/dashboard/`
|
||||
>Для входа укажите созданные вами login и password
|
||||
|
||||
>[!Danger]+ **С момента создания протокола и до момента, пока не будут отредактированы важные файлы, marzban НЕ ДАСТ сохранить конфигурацию, это нормальное поведение!!**
|
||||
|
||||
|
||||
>[!Example]- **Создание VLESS протокола**
|
||||
> 1) нужно находясь в панели открыть основные настройки:
|
||||
>![[Pasted image 20241006120520.png]]
|
||||
>**Теперь нам нужно опустится до строки** `inbound`
|
||||
![[Pasted image 20241006121617.png]]
|
||||
> Нажимаем enter и вставляем [[Vless-код]], как это должно выглядеть смотрите ниже:
|
||||
> ![[vivaldi_lH5qIAPZ2n.gif]]
|
||||
|
||||
>[!Example]- **Поиск подходящего сайта**
|
||||
>Нам нужно найти сайт у которого: `минимальный пинг, tls 1.3, сайт не за CDN сервисом`
|
||||
>
|
||||
>**для поиска подходящего сайта открываем две новых вкладки в браузере с гугл поиском где:**
|
||||
**1 вкладка** - Пишем в поисковой строке `site:nl` (`NL` заменить нужной страной)
|
||||
> 1) После загрузки запроса будут выведены сайты нужной нам страны.
|
||||
> 2) Открываем сайты **и копируем из ссылки ТОЛЬКО доменную часть**
|
||||
>
|
||||
>**2 вкладка** Открываем сайт `https://www.cdn77.com/tls-test` и вставляем скопированный домен из *1 вкладки* -> нажимаем _Enter_ и ждем когда прогрузятся данные
|
||||
>
|
||||
> После загрузки данных мы видим данные о `tls и ssl У сайта` в конечном итоге данные должны выглядеть вот так:
|
||||
> ![[Pasted image 20241006123927.png]]
|
||||
>
|
||||
>Теперь нужно проверить пинг от нас до сайта, в консоли вашего сервера пишем:
|
||||
>`ping npo.nl` -> enter
|
||||
>>[!Warning] достаточно 10 запросов чтобы понять отклик в миллисекундах, затем нажимаем `CTRL+C` для остановки запросов к сайту
|
||||
>
|
||||
>в конечном итоге на экране консоли будет выдана такая информация:
|
||||
>![[Pasted image 20241006125142.png]]
|
||||
>
|
||||
>>[!Info] На примере скриншота видно, что пинг огромный, а значит нужно продолжать искать сайт с подходящими условиями и минимальным пингом
|
||||
|
||||
>[!Example]- **Внесение домена найденного сайта с соответствующими требованиями**
|
||||
>
|
||||
>**Когда нужный сайт найден, возвращаемся в основные настройки и указываем в полях:**
|
||||
>`dest` домен сервера:443
|
||||
>`serverNames` домен сервера
|
||||
>**Итоговый пример** ![[Pasted image 20241006125744.png]]
|
||||
|
||||
>[!Example]- **Генерация ключей шифрования и параметра shortIds и внесения в панель**
|
||||
>осуществляется командами:
|
||||
> `docker exec marzban-marzban-1 xray x25519`
|
||||
>`openssl rand -hex 8`
|
||||
>После генерации данных нужно их также внести в панель марзбана в поля:
|
||||
>`privateKey`
|
||||
>`shordlds`
|
||||
>Итоговый пример ![[Pasted image 20241006130325.png]]
|
||||
>
|
||||
>**Теперь нажимаем сохранить и перезапустить ядро + обновляем страницу**
|
||||
|
||||
>[!BUG]- **Инструкция: подключение Linux-сервера к AdGuard Home через нестандартный порт (5300) через systemd-resolved**
|
||||
>
|
||||
> 1. **Убедись, что на сервере-клиенте установлен systemd-resolved**
|
||||
>
|
||||
>Для большинства современных дистрибутивов (Ubuntu, Debian, Fedora) это уже так:
|
||||
>
|
||||
>`systemctl status systemd-resolved`
|
||||
>
|
||||
>Если не активен, запусти:
|
||||
>
|
||||
>`systemctl enable --now systemd-resolved`
|
||||
>
|
||||
>### 2. **Отредактируй файл /etc/systemd/resolved.conf**
|
||||
>
|
||||
Открой файл:
|
||||
>
|
||||
>`nano /etc/systemd/resolved.conf`
|
||||
>
|
||||
>Добавь (или измени) строчки:
|
||||
>
|
||||
> ` [Resolve]DNS=45.95.232.245:5300`
|
||||
> `FallbackDNS=8.8.8.8 1.1.1.1`
|
||||
> тогда если твой сервер недоступен, будет fallback на них.
|
||||
>
|
||||
>### 3. **Убедись, что /etc/resolv.conf — симлинк**
|
||||
>
|
||||
> Проверь:
|
||||
>
|
||||
> `ls -l /etc/resolv.conf`
|
||||
>
|
||||
Должно быть:
|
||||
>
|
||||
> `/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf`
|
||||
>
|
||||
> Если не так, исправь:
|
||||
>` rm -f /etc/resolv.conf`
|
||||
> `ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf`
|
||||
>### 4. **Перезапусти systemd-resolved**
|
||||
>
|
||||
> `systemctl restart systemd-resolved`
|
||||
>
|
||||
>### 5. **Проверь DNS**
|
||||
>
|
||||
> Выполни:
|
||||
> `dig ya.ru`
|
||||
>
|
||||
> или
|
||||
>
|
||||
> `systemd-resolve ya.ru`
|
||||
>
|
||||
> Ответ должен прийти, DNS-сервер будет 127.0.0.53, а на самом деле он будет перенаправлен через твой AdGuard Home на 5300 порту.
|
||||
>
|
||||
>## **Если не работает:**
|
||||
>
|
||||
>- Проверь открытость порта на сервере AdGuard Home:
|
||||
>
|
||||
> `nc -v 45.95.232.245 5300`
|
||||
|
||||
|
||||
>[!note] **Переход в [[Создание сертификатов и их внесение в marzban]]**
|
||||
71
2. Инструкция Marzban/3. Подключение WARP к Marz.md
Normal file
71
2. Инструкция Marzban/3. Подключение WARP к Marz.md
Normal file
@@ -0,0 +1,71 @@
|
||||
>[!Example]- Создание конфига WireGuard для ВАРПА
|
||||
> 1. Установим WARP Командой
|
||||
>```
|
||||
>wget https://github.com/ViRb3/wgcf/releases/download/v2.2.29/wgcf_2.2.29_linux_amd64
|
||||
>```
|
||||
>2. Перемещаем скачанный файл в /usr/bin и меняем его имя на wgcf
|
||||
>**(тупо скопируй команду и вставь)**
|
||||
>```
|
||||
>mv wgcf_2.2.29_linux_amd64 /usr/bin/wgcf && chmod +x /usr/bin/wgcf
|
||||
>```
|
||||
>3. Генерируем конфиг Варпа
|
||||
>**(тупо скопируй команду и вставь)**
|
||||
>```
|
||||
wgcf register
|
||||
wgcf generate
|
||||
>```
|
||||
>>[!danger] а теперь настройка [[3.1 Создание, настройка и подключение конфига warp к марзбан]]
|
||||
|
||||
>[!Bug]- ЧЕК ЛИСТ ОБЯЗАТЕЛЬНЫЙ!!!
|
||||
>
|
||||
>1. Проверка статуса сервиса:
|
||||
> `systemctl status wire-proxy`
|
||||
> Должен быть ***active (running)***
|
||||
> _________________________________________
|
||||
> 2. Проверка порта SOCKS:
|
||||
> `ss -tlnp | grep 40000`
|
||||
> ***Должен показать wireproxy на порту 40000***
|
||||
> _________________________________________
|
||||
> 3. Проверка WARP через прокси
|
||||
> `curl -x socks5h://127.0.0.1:40000 https://www.cloudflare.com/cdn-cgi/trace/ | grep warp`
|
||||
> ***Должно показать warp=on или warp=plus***
|
||||
> _________________________________________
|
||||
> 4. Проверка IP через прокси
|
||||
> `curl -x socks5h://127.0.0.1:40000 https://ifconfig.me`
|
||||
> ***Должен показать IP Cloudflare, отличный от вашего серверного.***
|
||||
> _________________________________________
|
||||
> 5. Перезапуск
|
||||
>`systemctl restart wireproxy`
|
||||
|
||||
>[!Example]- Получаем Warp+
|
||||
>6. Заходим в тг бота — https://t.me/generatewarpplusbot
|
||||
> ![[Pasted image 20241007055150.png]]
|
||||
>7. Вставляем ключ
|
||||
>```
|
||||
nano wgcf-account.toml
|
||||
>```
|
||||
![[Pasted image 20241007055447.png]]
|
||||
>3. Затем обновляем конфиг Варпа
|
||||
>```
|
||||
wgcf update
|
||||
wgcf generate
|
||||
>```
|
||||
|
||||
> [!example]- Активация WARP+ в Marzban
|
||||
>
|
||||
>1. Заходим в конфиг Варпа и добавляем его в Веб-марзбан
|
||||
>```
|
||||
nano wgcf-profile.conf
|
||||
>```
|
||||
>![[Pasted image 20241007060414.png]]
|
||||
> 2. В настройках Веб-Марза нужно найти строку **"outbounds": [**
|
||||
>- вставляем туда [[Outbound Warp]] (только свои данные вставить)
|
||||
>> [!warning]- Да, я тупой и не понял, что и куда копировать
|
||||
>![[Pasted image 20241007060820.png]]
|
||||
>
|
||||
>3. Вставить правила в Веб-Марз
|
||||
>- Перейти и вставить [[Rules Marzban]]
|
||||
(>тут все готово и только вставить)
|
||||
|
||||
`
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
>[!bug]+ Установка Wireproxy
|
||||
>Используй команды ниже
|
||||
```
|
||||
wget https://github.com/octeep/wireproxy/releases/download/v1.0.9/wireproxy_linux_amd64.tar.gz
|
||||
tar -xzf wireproxy_linux_amd64.tar.gz
|
||||
mv wireproxy /usr/local/bin/
|
||||
chmod +x /usr/local/bin/wireproxy
|
||||
```
|
||||
>[!danger] Создания конфигурации
|
||||
> `nano /etc/wireproxy.conf`
|
||||
> **вставить код ниже**
|
||||
|
||||
```
|
||||
[Interface]
|
||||
PrivateKey = <ваш_приватный_ключ_из_wgcf-profile.conf>
|
||||
Address = <ваш_адрес_из_wgcf-profile.conf>
|
||||
DNS = 1.1.1.1
|
||||
|
||||
[Peer]
|
||||
PublicKey = <публичный_ключ_пира_из_wgcf-profile.conf>
|
||||
Endpoint = engage.cloudflareclient.com:2408
|
||||
AllowedIPs = 0.0.0.0/0, ::/0
|
||||
|
||||
[Socks5]
|
||||
BindAddress = 127.0.0.1:40000
|
||||
```
|
||||
>[!danger] Создания конфигурации
|
||||
>`nano /etc/systemd/system/wire-proxy.service`
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Wireproxy WARP SOCKS5 Proxy
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/wireproxy -c /etc/wireproxy.conf
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
>[!bug] Подключение и запуск
|
||||
> systemctl daemon-reload
|
||||
> systemctl enable --now wire-proxy
|
||||
>>[!tip] ***Молодец, теперь проверь по чек листу*** [[3. Подключение WARP к Marz]]
|
||||
1
2. Инструкция Marzban/Cache/Gif.md
Normal file
1
2. Инструкция Marzban/Cache/Gif.md
Normal file
@@ -0,0 +1 @@
|
||||
![[vivaldi_lH5qIAPZ2n.gif]]
|
||||
31
2. Инструкция Marzban/Коды/Outbound Warp.md
Normal file
31
2. Инструкция Marzban/Коды/Outbound Warp.md
Normal file
@@ -0,0 +1,31 @@
|
||||
"outbounds": [
|
||||
{
|
||||
"tag": "WARP",
|
||||
"protocol": "wireguard",
|
||||
"settings": {
|
||||
"secretKey": "Ваш_Параметр1",
|
||||
"DNS": "1.1.1.1",
|
||||
"address": [ "172.16.0.2/32",
|
||||
"Ваш_Параметр2"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"publicKey": "Ваш_Параметр3",
|
||||
"endpoint": "engage.cloudflareclient.com:2408"
|
||||
}
|
||||
],
|
||||
"kernelMode": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "DIRECT"
|
||||
},
|
||||
{
|
||||
"protocol": "blackhole",
|
||||
"tag": "BLOCK"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Тут смотреть в коде на **Ваш_Параметр** и менять на **свои**
|
||||
30
2. Инструкция Marzban/Коды/Rules Marzban.md
Normal file
30
2. Инструкция Marzban/Коды/Rules Marzban.md
Normal file
@@ -0,0 +1,30 @@
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"outboundTag": "WARP",
|
||||
"domain": [
|
||||
"geosite:google",
|
||||
"geosite:openai"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"domain": [
|
||||
"full:cp.cloudflare.com",
|
||||
"domain:msftconnecttest.com",
|
||||
"domain:msftncsi.com",
|
||||
"domain:connectivitycheck.gstatic.com",
|
||||
"domain:captive.apple.com",
|
||||
"full:detectportal.firefox.com",
|
||||
"domain:networkcheck.kde.org",
|
||||
"full:*.gstatic.com"
|
||||
],
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
},
|
||||
```
|
||||
он уже **готовый** и вставляется ниже строки **"routing": {**
|
||||
![[Pasted image 20241007062448.png]]
|
||||
37
2. Инструкция Marzban/Коды/Vless-код.md
Normal file
37
2. Инструкция Marzban/Коды/Vless-код.md
Normal file
@@ -0,0 +1,37 @@
|
||||
```
|
||||
{
|
||||
"tag": "VLESS TCP REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "заменить:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"заменить"
|
||||
],
|
||||
"privateKey": "заменить",
|
||||
"shortIds": [
|
||||
"заменить"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls",
|
||||
"quic"
|
||||
]
|
||||
}
|
||||
},
|
||||
```
|
||||
@@ -0,0 +1,53 @@
|
||||
>[!Tip]- **Установка socat и cron:**
|
||||
`apt install cron socat`
|
||||
|
||||
>[!tip]- **Устанавливаем acme.sh**
|
||||
>>[!Bug] EMAIL = Это ваш email
|
||||
> `curl https://get.acme.sh | sh -s email=EMAIL`
|
||||
>sdfsdf
|
||||
|
||||
>[!tip]- **Создание директории для сертификатов**
|
||||
>`mkdir -p /var/lib/marzban/certs/`
|
||||
|
||||
>[!Tip]+ Получение сертификата
|
||||
>>[!Danger] Введите ваш домен или субдомен в поле `DOMAIN`
|
||||
>>**Ниже 1 единая команда!!!**
|
||||
>
|
||||
|
||||
```
|
||||
|
||||
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d DOMAIN \
|
||||
--key-file /var/lib/marzban/certs/key.pem \
|
||||
--fullchain-file /var/lib/marzban/certs/fullchain.pem
|
||||
|
||||
```
|
||||
|
||||
Проверить список выпущенных сертификатов можно командой:
|
||||
```
|
||||
~/.acme.sh/acme.sh --list
|
||||
```
|
||||
|
||||
|
||||
>[!Tip]- **Редактирование данных в файле .env**
|
||||
>После создания сертификатов, нужно отредактировать файл
|
||||
>1) Открываем файл командой:
|
||||
>2) `nano /opt/marzban/.env`
|
||||
>Делаем изменения в полях:
|
||||
>1) `UVICORN_PORT = 443`
|
||||
>2) `UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem"`
|
||||
>3) `UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem"`
|
||||
>4) `XRAY_SUBSCRIPTION_URL_PREFIX` = https://YOUR_DOMAIN (Ковычки удаляем)
|
||||
>5) *Пример ниже, красное как было, зеленое как стало*
|
||||
>![[Pasted image 20241006133752.png]]
|
||||
|
||||
После редактирования нужно перезапустить марзбан командой:
|
||||
`sudo marzban restart`
|
||||
|
||||
|
||||
|
||||
|
||||
>[!Note] Переход в [[2. Ручная установка и настройка marzban]]
|
||||
|
||||
>[!Bug] Сделай автобекапы
|
||||
>https://git.lifazzz.sbs:3000/lifaz/backup-m
|
||||
|
||||
274
3. Instruction inastall devices/Рабочий конфиг..md
Normal file
274
3. Instruction inastall devices/Рабочий конфиг..md
Normal file
@@ -0,0 +1,274 @@
|
||||
```
|
||||
{
|
||||
"log": {
|
||||
"loglevel": "warning"
|
||||
},
|
||||
"dns": {
|
||||
"servers": [
|
||||
"1.1.1.1"
|
||||
]
|
||||
},
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"domain": [
|
||||
"jut.su",
|
||||
"geosite:category-ru",
|
||||
"proton.me",
|
||||
"mail.proton.me",
|
||||
"regexp:^.*.rutube.ru$",
|
||||
"geosite:microsoft",
|
||||
"instagram.com",
|
||||
"whoer.net",
|
||||
"youtube.com",
|
||||
"youtube.googleapis.com",
|
||||
"googlevideo.com"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"protocol": [
|
||||
"bittorrent"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "BLOCK",
|
||||
"domain": [
|
||||
"geosite:category-ads-all",
|
||||
"ads.youtube.com"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"ip": [
|
||||
"geoip:private"
|
||||
],
|
||||
"outboundTag": "BLOCK",
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
},
|
||||
"inbounds": [
|
||||
{
|
||||
"tag": "VMess TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8081,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {
|
||||
"header": {
|
||||
"type": "http",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"path": [
|
||||
"/"
|
||||
],
|
||||
"headers": {
|
||||
"Host": [
|
||||
"google.com"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
},
|
||||
"security": "none"
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VMess Websocket",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8080,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "ws",
|
||||
"wsSettings": {
|
||||
"path": "/",
|
||||
"headers": {
|
||||
"Host": "google.com"
|
||||
}
|
||||
},
|
||||
"security": "none"
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VLESS TCP REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "discordapp.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"discordapp.com"
|
||||
],
|
||||
"privateKey": "wI494sqcfCIErXDiGWIOusJSIMCs_Di0R5nRifjIzgQ",
|
||||
"shortIds": [
|
||||
"",
|
||||
"e20f777f3e6b06ec"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VLESS GRPC REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 2053,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "grpc",
|
||||
"grpcSettings": {
|
||||
"serviceName": "xyz"
|
||||
},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "discordapp.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"cdn.discordapp.com",
|
||||
"discordapp.com"
|
||||
],
|
||||
"privateKey": "MMX7m0Mj3faUstoEm5NBdegeXkHG6ZB78xzBv2n3ZUA",
|
||||
"shortIds": [
|
||||
"",
|
||||
"6ba85179e30d4fc2"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "Trojan Websocket TLS",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 2083,
|
||||
"protocol": "trojan",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "ws",
|
||||
"security": "tls",
|
||||
"tlsSettings": {
|
||||
"certificates": [
|
||||
{
|
||||
"certificate": [
|
||||
"-----BEGIN CERTIFICATE-----",
|
||||
"MIIBvTCCAWOgAwIBAgIRAIY9Lzn0T3VFedUnT9idYkEwCgYIKoZIzj0EAwIwJjER",
|
||||
"MA8GA1UEChMIWHJheSBJbmMxETAPBgNVBAMTCFhyYXkgSW5jMB4XDTIzMDUyMTA4",
|
||||
"NDUxMVoXDTMzMDMyOTA5NDUxMVowJjERMA8GA1UEChMIWHJheSBJbmMxETAPBgNV",
|
||||
"BAMTCFhyYXkgSW5jMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGAmB8CILK7Q1",
|
||||
"FG47g5VXg/oX3EFQqlW8B0aZAftYpHGLm4hEYVA4MasoGSxRuborhGu3lDvlt0cZ",
|
||||
"aQTLvO/IK6NyMHAwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMB",
|
||||
"MAwGA1UdEwEB/wQCMAAwOwYDVR0RBDQwMoILZ3N0YXRpYy5jb22CDSouZ3N0YXRp",
|
||||
"Yy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tMAoGCCqGSM49BAMCA0gAMEUCIQC1",
|
||||
"XMIz1XwJrcu3BSZQFlNteutyepHrIttrtsfdd05YsQIgAtCg53wGUSSOYGL8921d",
|
||||
"KuUcpBWSPkvH6y3Ak+YsTMg=",
|
||||
"-----END CERTIFICATE-----"
|
||||
],
|
||||
"key": [
|
||||
"-----BEGIN RSA PRIVATE KEY-----",
|
||||
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7ptMDsNFiL7iB5N5",
|
||||
"gemkQUHIWvgIet+GiY7x7qB13V6hRANCAAQYCYHwIgsrtDUUbjuDlVeD+hfcQVCq",
|
||||
"VbwHRpkB+1ikcYubiERhUDgxqygZLFG5uiuEa7eUO+W3RxlpBMu878gr",
|
||||
"-----END RSA PRIVATE KEY-----"
|
||||
]
|
||||
}
|
||||
],
|
||||
"minVersion": "1.2",
|
||||
"cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "Shadowsocks TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 1080,
|
||||
"protocol": "shadowsocks",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"network": "tcp,udp"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "DIRECT"
|
||||
},
|
||||
{
|
||||
"protocol": "blackhole",
|
||||
"tag": "BLOCK"
|
||||
},
|
||||
{
|
||||
"tag": "WARP",
|
||||
"protocol": "socks",
|
||||
"settings": {
|
||||
"servers": [
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 40000
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,2 @@
|
||||
>[!bug]
|
||||
>**https://www.merralius.cfd**
|
||||
Reference in New Issue
Block a user