From d5a21d4fc023226a265b797126b401cedb58951a Mon Sep 17 00:00:00 2001 From: Andry Date: Wed, 10 Dec 2025 22:04:59 +0400 Subject: [PATCH] Auto base sync: 2025-12-10 22:04:59 --- .obsidian/graph.json | 2 +- .obsidian/workspace.json | 53 +++- .../1. Установка скриптом/1. Скрипт установки VPN.md | 12 + .../1. Установка скриптом/2. Файл/installer-marzban.sh | 103 +++++++ .../1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md | 2 + .../2. Ручная установка/1. Установка и настройка.md | 79 +++++ .../2. Создание сертификатов и их внесение в marzban.md | 51 ++++ .../2. Ручная установка/Cache/Gif.md | 1 + .../2. Ручная установка/Папка с кодом/Vless-код.md | 35 +++ .../1. Скрипт установки VPN.md | 12 + .../2. Ручная установка и настройка marzban.md | 129 +++++++++ .../3. Подключение WARP к Marz.md | 71 +++++ ...ание, настройка и подключение конфига warp к марзбан.md | 48 +++ 2. Инструкция Marzban/Cache/Gif.md | 1 + 2. Инструкция Marzban/Коды/Outbound Warp.md | 31 ++ 2. Инструкция Marzban/Коды/Rules Marzban.md | 30 ++ 2. Инструкция Marzban/Коды/Vless-код.md | 37 +++ .../Создание сертификатов и их внесение в marzban.md | 53 ++++ .../Рабочий конфиг..md | 274 ++++++++++++++++++ .../Установка на разные девайсы.md | 2 + 20 files changed, 1018 insertions(+), 8 deletions(-) create mode 100644 1. Инструкция Marzban/1. Установка скриптом/1. Скрипт установки VPN.md create mode 100644 1. Инструкция Marzban/1. Установка скриптом/2. Файл/installer-marzban.sh create mode 100644 1. Инструкция Marzban/1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md create mode 100644 1. Инструкция Marzban/2. Ручная установка/1. Установка и настройка.md create mode 100644 1. Инструкция Marzban/2. Ручная установка/2. Создание сертификатов и их внесение в marzban.md create mode 100644 1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md create mode 100644 1. Инструкция Marzban/2. Ручная установка/Папка с кодом/Vless-код.md create mode 100644 2. Инструкция Marzban/1. Скрипт установки VPN.md create mode 100644 2. Инструкция Marzban/2. Ручная установка и настройка marzban.md create mode 100644 2. Инструкция Marzban/3. Подключение WARP к Marz.md create mode 100644 2. Инструкция Marzban/3.1 Создание, настройка и подключение конфига warp к марзбан.md create mode 100644 2. Инструкция Marzban/Cache/Gif.md create mode 100644 2. Инструкция Marzban/Коды/Outbound Warp.md create mode 100644 2. Инструкция Marzban/Коды/Rules Marzban.md create mode 100644 2. Инструкция Marzban/Коды/Vless-код.md create mode 100644 2. Инструкция Marzban/Создание сертификатов и их внесение в marzban.md create mode 100644 3. Instruction inastall devices/Рабочий конфиг..md create mode 100644 3. Instruction inastall devices/Установка на разные девайсы.md diff --git a/.obsidian/graph.json b/.obsidian/graph.json index 82f43ef..6182605 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -17,6 +17,6 @@ "repelStrength": 10, "linkStrength": 1, "linkDistance": 250, - "scale": 0.04224918762698833, + "scale": 1.2570341048229237, "close": false } \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index b692468..015b13f 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -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" ] } \ No newline at end of file diff --git a/1. Инструкция Marzban/1. Установка скриптом/1. Скрипт установки VPN.md b/1. Инструкция Marzban/1. Установка скриптом/1. Скрипт установки VPN.md new file mode 100644 index 0000000..c74c5fd --- /dev/null +++ b/1. Инструкция Marzban/1. Установка скриптом/1. Скрипт установки VPN.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`** + diff --git a/1. Инструкция Marzban/1. Установка скриптом/2. Файл/installer-marzban.sh b/1. Инструкция Marzban/1. Установка скриптом/2. Файл/installer-marzban.sh new file mode 100644 index 0000000..9458b59 --- /dev/null +++ b/1. Инструкция Marzban/1. Установка скриптом/2. Файл/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 + diff --git a/1. Инструкция Marzban/1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md b/1. Инструкция Marzban/1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md new file mode 100644 index 0000000..02b4ae4 --- /dev/null +++ b/1. Инструкция Marzban/1. Установка скриптом/2. Файл/СМОТРИ ФАЙЛ.md @@ -0,0 +1,2 @@ +>[!bug] **Возврат в статью** +>[[1. Скрипт установки VPN]] diff --git a/1. Инструкция Marzban/2. Ручная установка/1. Установка и настройка.md b/1. Инструкция Marzban/2. Ручная установка/1. Установка и настройка.md new file mode 100644 index 0000000..97cd845 --- /dev/null +++ b/1. Инструкция Marzban/2. Ручная установка/1. Установка и настройка.md @@ -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/) + diff --git a/1. Инструкция Marzban/2. Ручная установка/2. Создание сертификатов и их внесение в marzban.md b/1. Инструкция Marzban/2. Ручная установка/2. Создание сертификатов и их внесение в marzban.md new file mode 100644 index 0000000..3e43112 --- /dev/null +++ b/1. Инструкция Marzban/2. Ручная установка/2. Создание сертификатов и их внесение в marzban.md @@ -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. Установка и настройка]] \ No newline at end of file diff --git a/1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md b/1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md new file mode 100644 index 0000000..e6bf954 --- /dev/null +++ b/1. Инструкция Marzban/2. Ручная установка/Cache/Gif.md @@ -0,0 +1 @@ +![[vivaldi_lH5qIAPZ2n.gif]] \ No newline at end of file diff --git a/1. Инструкция Marzban/2. Ручная установка/Папка с кодом/Vless-код.md b/1. Инструкция Marzban/2. Ручная установка/Папка с кодом/Vless-код.md new file mode 100644 index 0000000..1fa4525 --- /dev/null +++ b/1. Инструкция Marzban/2. Ручная установка/Папка с кодом/Vless-код.md @@ -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" + ] + } + }, \ No newline at end of file diff --git a/2. Инструкция Marzban/1. Скрипт установки VPN.md b/2. Инструкция Marzban/1. Скрипт установки VPN.md new file mode 100644 index 0000000..c74c5fd --- /dev/null +++ b/2. Инструкция Marzban/1. Скрипт установки VPN.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`** + diff --git a/2. Инструкция Marzban/2. Ручная установка и настройка marzban.md b/2. Инструкция Marzban/2. Ручная установка и настройка marzban.md new file mode 100644 index 0000000..d8dd5cc --- /dev/null +++ b/2. Инструкция Marzban/2. Ручная установка и настройка marzban.md @@ -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]]** diff --git a/2. Инструкция Marzban/3. Подключение WARP к Marz.md b/2. Инструкция Marzban/3. Подключение WARP к Marz.md new file mode 100644 index 0000000..e01f962 --- /dev/null +++ b/2. Инструкция Marzban/3. Подключение WARP к Marz.md @@ -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]] +(>тут все готово и только вставить) + +` + diff --git a/2. Инструкция Marzban/3.1 Создание, настройка и подключение конфига warp к марзбан.md b/2. Инструкция Marzban/3.1 Создание, настройка и подключение конфига warp к марзбан.md new file mode 100644 index 0000000..64f3ea9 --- /dev/null +++ b/2. Инструкция Marzban/3.1 Создание, настройка и подключение конфига warp к марзбан.md @@ -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]] diff --git a/2. Инструкция Marzban/Cache/Gif.md b/2. Инструкция Marzban/Cache/Gif.md new file mode 100644 index 0000000..e6bf954 --- /dev/null +++ b/2. Инструкция Marzban/Cache/Gif.md @@ -0,0 +1 @@ +![[vivaldi_lH5qIAPZ2n.gif]] \ No newline at end of file diff --git a/2. Инструкция Marzban/Коды/Outbound Warp.md b/2. Инструкция Marzban/Коды/Outbound Warp.md new file mode 100644 index 0000000..0af7a68 --- /dev/null +++ b/2. Инструкция Marzban/Коды/Outbound Warp.md @@ -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" + } + ] +} +``` +Тут смотреть в коде на **Ваш_Параметр** и менять на **свои** \ No newline at end of file diff --git a/2. Инструкция Marzban/Коды/Rules Marzban.md b/2. Инструкция Marzban/Коды/Rules Marzban.md new file mode 100644 index 0000000..0d1ddf7 --- /dev/null +++ b/2. Инструкция Marzban/Коды/Rules Marzban.md @@ -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]] \ No newline at end of file diff --git a/2. Инструкция Marzban/Коды/Vless-код.md b/2. Инструкция Marzban/Коды/Vless-код.md new file mode 100644 index 0000000..49a2431 --- /dev/null +++ b/2. Инструкция Marzban/Коды/Vless-код.md @@ -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" + ] + } + }, +``` \ No newline at end of file diff --git a/2. Инструкция Marzban/Создание сертификатов и их внесение в marzban.md b/2. Инструкция Marzban/Создание сертификатов и их внесение в marzban.md new file mode 100644 index 0000000..f1b524d --- /dev/null +++ b/2. Инструкция Marzban/Создание сертификатов и их внесение в marzban.md @@ -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 + diff --git a/3. Instruction inastall devices/Рабочий конфиг..md b/3. Instruction inastall devices/Рабочий конфиг..md new file mode 100644 index 0000000..2cabdba --- /dev/null +++ b/3. Instruction inastall devices/Рабочий конфиг..md @@ -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 + } + ] + } + } + ] +} +``` \ No newline at end of file diff --git a/3. Instruction inastall devices/Установка на разные девайсы.md b/3. Instruction inastall devices/Установка на разные девайсы.md new file mode 100644 index 0000000..3bc47ea --- /dev/null +++ b/3. Instruction inastall devices/Установка на разные девайсы.md @@ -0,0 +1,2 @@ +>[!bug] +>**https://www.merralius.cfd** \ No newline at end of file