Files
homelab-docs/docs/vps/vpn-migrate-config.md

140 lines
9.1 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.
# Перенос конфигурации AmneziaWG между серверами
Как развернуть тот же VPN на новом VPS и переключиться с одного сервера на другой без потери параметров обфускации. На роутере создаётся второе VPN-подключение, переключение — выбор нужного (Германия или США / новый сервер).
---
## Два текущих сервера
| Параметр | Германия (основной) | США (второй) |
|------------|---------------------|---------------------|
| IP | 185.103.253.99 | 147.45.124.117 |
| Порт AWG | 33118/UDP | 37135/UDP |
| Сеть | — | Netmask 255.255.254.0, Gateway 147.45.124.1 |
| Регион | Франкфурт-на-Майне | USA |
| Статус | Основной | Возможен отказ позже |
Подробнее про сервер в Германии: [VPN-сервер (VPS, AmneziaWG)](vpn-vps-amneziawg.md).
---
## Параметры обфускации совпадают
На обоих серверах снят вывод `wg show` (AmneziaWG). Параметры обфускации **идентичны**:
| Параметр | Значение |
|----------|-----------|
| jc | 6 |
| jmin | 10 |
| jmax | 50 |
| s1 | 90 |
| s2 | 62 |
| h1 | 1455064900 |
| h2 | 852483043 |
| h3 | 2078090415 |
| h4 | 1981181588 |
Отличаются только: IP сервера, порт UDP, имя интерфейса (wg0 / awg0), ключи и список пиров. То есть один и тот же «профиль» обфускации можно воспроизвести на новом VPS — клиенты будут вести себя так же с точки зрения DPI.
---
## Как перенести конфиг на новый сервер
Если позже арендуешь другой VPS (вместо США или дополнительно), конфигурацию можно перенести полностью.
1. **Развернуть сервер:** Ubuntu (или другая ОС из [требований Amnezia](https://docs.amnezia.org/ru/documentation/supported-linux-os-for-vps)), Docker, доступ по SSH с твоего ключа.
2. **Установить AmneziaWG через приложение AmneziaVPN:** добавить новый сервер по IP, установить протокол AmneziaWG. В настройках протокола на сервере задать те же параметры обфускации, что и сейчас: **jc, jmin, jmax, s1, s2, h1h4** (значения из таблицы выше).
3. **Клиенты:** для нового сервера в AmneziaVPN сгенерировать новые гостевые конфиги (или конфиг с полным доступом). В конфиге будет новый Endpoint = IP:порт нового VPS. Старые ключи/пиры с предыдущего сервера на новый не копировать — у нового сервера свой ключ; важны только параметры обфускации на сервере и в клиенте.
4. **Роутер:** создать второе VPN-подключение (второй профиль/интерфейс) с конфигом для нового сервера. Переключение — выбор активного подключения (Германия или США / новый хост).
Итог: параметры обфускации задаются вручную при настройке AmneziaWG на новом VPS так же, как на текущих; клиентские конфиги получаются из приложения уже с новым Endpoint.
---
## Роутер: два подключения, переключение
- В настройках роутера создаётся **дополнительное** VPN-подключение (второй профиль AmneziaWG/WireGuard).
- Один профиль — Germany (185.103.253.99:33118), второй — USA (147.45.124.117:37135) или будущий новый сервер.
- Переключение: выбираешь активное подключение — либо одно, либо другое (или отключено). Маршруты/политики при необходимости те же для обоих (например, весь трафик в туннель или только часть по правилам).
Так можно в любой момент перейти с USA на новый VPS: добавляешь новый профиль с конфигом нового сервера и переключаешься на него.
---
## Конфиги для полного восстановления сервера
Все файлы, чтобы поднять новый VPS с нуля (тот же образ и параметры контейнера). Ключи и пиры WireGuard создаются приложением AmneziaVPN при установке протокола — их не копируем.
### Файлы в репозитории
| Назначение | Путь в репо |
|------------|-------------|
| Dockerfile AmneziaWG | `docs/vps/amnezia-awg/Dockerfile` |
| Метрики для Homepage | `scripts/vps-metrics-api.py` |
| Systemd-юнит метрик | `docs/vps/vps-metrics.service` |
### 1. Подготовка VPS
- ОС: Ubuntu (или [поддерживаемая Amnezia](https://docs.amnezia.org/ru/documentation/supported-linux-os-for-vps)).
- Установить Docker, настроить SSH-доступ с твоего ключа (для AmneziaVPN).
- На хосте: скопировать `docs/vps/amnezia-awg/Dockerfile` в каталог на VPS (например `/opt/amnezia/amnezia-awg/`), собрать образ:
```bash
cd /opt/amnezia/amnezia-awg
docker build -t amnezia-awg .
```
### 2. Запуск контейнера AmneziaWG
**Германия (или новый сервер с портом 33118):**
```bash
docker run -d --name amnezia-awg --restart=always \
-p 33118:33118/udp \
-v /lib/modules:/lib/modules \
--cap-add=NET_ADMIN --cap-add=SYS_MODULE \
--privileged \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
--security-opt label=disable \
amnezia-awg
```
**США (или второй сервер с портом 37135):**
```bash
docker run -d --name amnezia-awg2 --restart=always \
-p 37135:37135/udp \
-v /lib/modules:/lib/modules \
--cap-add=NET_ADMIN --cap-add=SYS_MODULE \
--privileged \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
--security-opt label=disable \
amnezia-awg
```
Важно: внутри контейнера AmneziaWG слушает тот порт, который задаётся при установке протокола через приложение (на Germany — 33118, на USA — 37135). Если поднимаешь новый сервер с другим портом, в команде меняй оба: `-p ПОРТ:ПОРТ/udp` и при установке AmneziaWG в приложении укажи тот же порт.
### 3. Установка протокола через AmneziaVPN
1. В приложении AmneziaVPN добавь сервер по IP нового VPS (SSH по ключу).
2. Установи протокол **AmneziaWG** на этот сервер (приложение подключится по SSH и настроит контейнер).
3. В настройках протокола на сервере задай параметры обфускации из таблицы выше: **jc, jmin, jmax, s1, s2, h1h4**.
4. Сгенерируй гостевые конфиги / конфиг с полным доступом — в них будет Endpoint = IP:порт нового VPS.
### 4. Метрики для Homepage (опционально)
Чтобы виджет метрик на Homepage показывал данные с этого VPS:
```bash
# Скопировать скрипт и юнит на VPS
cp scripts/vps-metrics-api.py /usr/local/bin/
chmod +x /usr/local/bin/vps-metrics-api.py
cp docs/vps/vps-metrics.service /etc/systemd/system/
systemctl daemon-reload && systemctl enable --now vps-metrics
```
Порт **3497/tcp** должен быть доступен с хоста, где крутится Homepage (или открыт в файрволе VPS).
### 5. Файрвол
На текущем сервере в Германии UFW не включён, политика iptables по умолчанию ACCEPT. Достаточно убедиться, что хостинг не режет входящий **UDP на порт AmneziaWG** (33118 или 37135) и при необходимости SSH (22) и 3497 для метрик.