# 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*