Files
obsidian/VPN/Marzban - план действий при блокировке.md

220 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Marzban — план действий при блокировке
> Инфраструктура: VDS Рига `195.135.254.66`, панель `https://daniilvds.duckdns.org:2083/dashboard/`
> Логин: `admin` / `Marzban2026!`
---
## 🚨 Быстрая смена порта
### 1. Меняем порт в Marzban (xray конфиг)
Через браузер:
```
https://daniilvds.duckdns.org:2083/dashboard/
→ Core Settings → Xray Config
→ Меняем "port": 8888 на новый (например 9443)
→ Save
```
Или через API (с любой машины):
```bash
TOKEN=$(curl -s -X POST https://daniilvds.duckdns.org:2083/api/admin/token \
-d "username=admin&password=Marzban2026!" \
-H "Content-Type: application/x-www-form-urlencoded" | python3 -c "import json,sys; print(json.load(sys.stdin)['access_token'])")
# Получить текущий конфиг
curl -s https://daniilvds.duckdns.org:2083/api/core/config \
-H "Authorization: Bearer $TOKEN"
# Применить изменённый конфиг (меняешь port в JSON и применяешь)
curl -s -X PUT https://daniilvds.duckdns.org:2083/api/core/config \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... новый конфиг ... }'
```
### 2. Пробрасываем новый порт в Docker
```bash
ssh root@195.135.254.66
# Редактируем compose
nano /opt/marzban/docker-compose.yml
# Меняем "8888:8888" → "9443:9443"
cd /opt/marzban && docker compose up -d marzban
```
### 3. Обновляем ключи пользователям
Ключи пользователей **обновляются автоматически** — порт меняется во всех ссылках.
Заходишь в панель → выбираешь пользователя → копируешь новую ссылку → отправляешь.
Или через API:
```bash
curl -s https://daniilvds.duckdns.org:2083/api/user/USERNAME \
-H "Authorization: Bearer $TOKEN"
# В поле "links" будет актуальная ссылка с новым портом
```
---
## 👥 Управление пользователями
### Создать пользователя
```bash
curl -s -X POST https://daniilvds.duckdns.org:2083/api/user \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "vasya",
"proxies": {"vless": {}},
"inbounds": {"VLESS_REALITY": []}
}'
```
### Получить ссылку пользователя
```bash
curl -s https://daniilvds.duckdns.org:2083/api/user/vasya \
-H "Authorization: Bearer $TOKEN" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['links'][0])"
```
### Удалить пользователя (отозвать доступ)
```bash
curl -s -X DELETE https://daniilvds.duckdns.org:2083/api/user/vasya \
-H "Authorization: Bearer $TOKEN"
```
### Список всех пользователей
```bash
curl -s "https://daniilvds.duckdns.org:2083/api/users" \
-H "Authorization: Bearer $TOKEN" | python3 -c "import json,sys; [print(u['username'], u['status']) for u in json.load(sys.stdin)['users']]"
```
---
## 🔌 Добавить новый протокол (inbound)
Через **Core Settings → Xray Config** в панели добавляешь новый блок в `inbounds`.
### Shadowsocks (простой, хорошо работает через мобильный)
```json
{
"tag": "SHADOWSOCKS",
"listen": "0.0.0.0",
"port": 8388,
"protocol": "shadowsocks",
"settings": {
"clients": [],
"network": "tcp,udp"
}
}
```
### VLESS + WebSocket + TLS (обходит DPI через CDN/Cloudflare)
```json
{
"tag": "VLESS_WS",
"listen": "0.0.0.0",
"port": 8889,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": "/vpn"
}
}
}
```
После добавления inbound — в настройках пользователя выбрать новый inbound.
---
## ⚡ Устойчивые порты (реже блокируют)
| Порт | Почему безопасен |
|------|-----------------|
| 443 | HTTPS — блокировка убьёт половину интернета |
| 80 | HTTP — аналогично |
| 2083 | cPanel SSL — используется хостингами |
| 2087 | cPanel — аналогично |
| 8443 | Альтернативный HTTPS |
**Переехать на 443:**
1. Остановить Outline/shadowbox: `docker stop shadowbox`
2. Сменить порт Marzban на 443 (через панель + compose)
---
## 🔄 Полезные команды на сервере
```bash
ssh root@195.135.254.66
# Статус контейнеров
cd /opt/marzban && docker compose ps
# Логи Marzban
docker logs marzban-marzban-1 --tail 50
# Логи Caddy (SSL)
docker logs marzban-caddy-1 --tail 20
# Перезапуск Marzban
docker compose restart marzban
# Перезапуск всего стека
docker compose restart
# Обновить образ Marzban
docker compose pull && docker compose up -d
# Занятые порты
ss -tlnp | grep -E "8888|2053|443|80"
```
---
## 🔑 Reality — что делать если начали детектировать
Reality маскируется под настоящий TLS-хендшейк к `www.microsoft.com`. Если заблокировали:
1. Сменить `dest` на другой популярный сайт (например `www.google.com:443` или `www.apple.com:443`)
2. Сгенерировать новую пару ключей:
```bash
docker exec marzban-marzban-1 xray x25519
```
3. Обновить `privateKey`, `publicKey`, `shortIds` в Core Settings
4. Все пользователи получат новые ссылки автоматически (pubkey меняется в ссылке)
---
## 📱 Приложения для клиентов
| Платформа | Приложение | Ссылка |
|-----------|-----------|--------|
| iOS | Karing | https://apps.apple.com/app/karing/id6472431552 |
| Android | Hiddify | https://play.google.com/store/apps/details?id=app.hiddify.com |
| Windows | Hiddify | https://github.com/hiddify/hiddify-app/releases/latest |
| macOS | Hiddify | https://github.com/hiddify/hiddify-app/releases/latest |
---
## 📋 Страница для раздачи ключей
`https://vpn.digital-home.site/admin?key=mysecret2026`
Вставляешь vless:// ссылку из Marzban → получаешь ссылку на 24 часа для друга.
---
*Обновлено: 01.04.2026*