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

9.1 KiB
Raw Permalink Blame History

Перенос конфигурации 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).


Параметры обфускации совпадают

На обоих серверах снят вывод 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), 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).
  • Установить Docker, настроить SSH-доступ с твоего ключа (для AmneziaVPN).
  • На хосте: скопировать docs/vps/amnezia-awg/Dockerfile в каталог на VPS (например /opt/amnezia/amnezia-awg/), собрать образ:
    cd /opt/amnezia/amnezia-awg
    docker build -t amnezia-awg .
    

2. Запуск контейнера AmneziaWG

Германия (или новый сервер с портом 33118):

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):

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:

# Скопировать скрипт и юнит на 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 для метрик.