# Восстановление при блокировке IP

> Что делать, когда IP вашего сервера заблокирован — диагностика и варианты восстановления.

## Диагностика

Запустите со своей собственной машины (SSH не требуется):

```
meridian test 198.51.100.10
```

Если проверка TCP на порту 443 не проходит из вашей сети, но работает откуда-то ещё (другая сеть, VPN, [ping tool](https://getmeridian.org/ping)), IP скорее всего заблокирован. Отказ TCP везде обычно означает облачный брандмауэр или сервер, который не работает.

## Немедленное облегчение

Если вы развёрнули с **доменом** (`--domain`) и запись проксируется через Cloudflare, пути XHTTP и WSS всё ещё работают — они достигают Cloudflare, не вашего заблокированного IP. Приложения, использующие JSON Xray или подписку Mihomo, переключаются самостоятельно; другие могут выбрать запись XHTTP или WSS вручную.

Если у вас есть **ретранслятор**, клиенты, подключающиеся через него, не затрагиваются, пока ретранслятор сам может достичь выхода.

## Варианты восстановления

### Добавить замену выхода

Самый быстрый путь, пока ваш control-plane сервер (тот, на котором работает панель) всё ещё достижим с вашей машины:

```bash
# 1. Получите новый VPS у вашего провайдера (новый IP)
# 2. Добавьте его в флот
meridian node add 198.51.100.20 --name replacement
```

Клиенты сохраняют свои учётные записи. Они получают новый выход при следующем обновлении подписки — попросите их обновить в приложении, если это не происходит автоматически.

### Или переместить заблокированный выход на новый сервер

`node replace` перемещает выход на новый сервер, сохраняя его ID, ключи, пути протокола и ретрансляторы, затем очищает старый сервер:

```bash
meridian node replace exit-1 198.51.100.20
```

Клиенты подберут новый адрес при следующем обновлении подписки. Сам control-plane сервер не может быть перемещён таким образом.

### Добавить домен для резервного CDN

Если вы не использовали домен, добавьте его к новому выходу:

```bash
meridian node add 198.51.100.20 --domain vpn.example.com
```

См. [Domain mode](/md/ru/domain-mode/) для шагов Cloudflare.

### Добавить ретранслятор

Ретранслятор на домашнем сервере даёт пользователям точку входа, которая остаётся достижимой, когда иностранные IP заблокированы:

```bash
meridian relay add 203.0.113.10 --exit 198.51.100.20
```

### Если control-plane сервер потерян

`node add` и `relay add` нужна панель. Если сервер, на котором она была размещена, пропал и не может быть восстановлен, автоматической миграции нет: разверните свежий сервер с `meridian deploy`, затем воссоздайте каждого клиента с `meridian client add`. Каждый человек получает новую ссылку.

## Управление с более чем одной машины

Всё что Meridian знает о флоте живёт в `~/.config/meridian/` на машине из которой вы разворачиваете. Чтобы управлять флотом со второй машины, скопируйте весь тот директорий, и скопируйте его снова после каждого изменения которое вы делаете где-то ещё.

Вы не можете случайно отменить работу другой машины. Control-сервер держит маленький запись последнего изменения которое было применено (`/var/lib/meridian/fence.json`). Перед изменением чего-либо, Meridian сравнивает вашу копию с тем записью, и `meridian plan` предупреждает впереди времени если apply было бы отказано:

- **"Another machine changed this fleet"**: ваша копия устарела. Скопируйте `~/.config/meridian/` с машины которая применила последней, затем запустите команду снова.
- **"Another apply is running"**: кто-то изменяет флот прямо сейчас. Подождите пока они кончат. Если этот запуск потерпел крах, его требование истекает в пределах 30 минут; потерпевший крах запуск на вашей собственной машине не блокирует вас вообще.
- **"This control server belongs to a different copy of the fleet"**: этот `~/.config/meridian/` никогда не копировался с машины которая управляет флотом.

## Подготовка перед блокировкой

1. **Добавьте ретранслятор** на домашний сервер: `meridian relay add RELAY_IP --exit EXIT_IP`
2. **Используйте домен** для резервного CDN: разверните с `--domain vpn.example.com`
3. **Оба** — клиенты затем имеют три пути входа: ретранслятор (домашний), CDN (Cloudflare) и прямой
4. **Создайте резервную копию `~/.config/meridian/`** — это то, что позволяет вам управлять флотом с другой машины

## Оставьте старый сервер

Не удаляйте заблокированный сервер сразу — блокировки иногда снимаются через дни или недели. Проверяйте время от времени:

```bash
meridian test 198.51.100.10
```

Когда он больше не нужен, удалите его командой `meridian node remove`.
