WireGuard: add clean reinstall flow and bootstrap wg-install
This commit is contained in:
33
README.md
33
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
Проект автоматизирует установку и настройку WireGuard-сервера и WireGuard-клиента на Debian/Ubuntu.
|
||||
|
||||
Основная идея: один репозиторий с понятными Bash-скриптами, которые можно повторно запускать без бессмысленной поломки уже существующей конфигурации.
|
||||
Основная идея: один репозиторий с понятными Bash-скриптами для быстрого разворачивания и переустановки WireGuard-стека.
|
||||
|
||||
## Назначение проекта
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
- `README.md`
|
||||
- `.gitignore`
|
||||
- `lib/common.sh` — общие функции
|
||||
- `bootstrap/install_wg_install.sh` — установка короткой команды `wg-install`
|
||||
- `templates/wg0.conf.template` — шаблон базового `wg0.conf`
|
||||
- `server/install_server.sh` — установка сервера + GUI
|
||||
- `server/wg-peerctl.sh` — helper для регистрации peer на сервере
|
||||
@@ -76,15 +77,34 @@
|
||||
sudo bash server/install_server.sh
|
||||
```
|
||||
|
||||
Важно: серверный установщик теперь всегда выполняет полный reset прошлого состояния (`/etc/wireguard` + `wireguard-ui` data/db) и поднимает всё заново.
|
||||
|
||||
### Запуск сервера одной командой (без `git clone`)
|
||||
|
||||
```bash
|
||||
tmp="$(mktemp -d)" && curl -fL "https://git.ruslan.xyz/ruslan/Wireguard_server/archive/main.tar.gz" -o "$tmp/repo.tar.gz" && tar -xzf "$tmp/repo.tar.gz" -C "$tmp" && bash "$tmp/wireguard_server/server/install_server.sh"
|
||||
```
|
||||
|
||||
Если GUI уже ранее запускался и нужно переинициализировать его дефолты (подсеть, endpoint, пользователь/пароль), добавьте:
|
||||
### Короткая команда `wg-install` (установить один раз)
|
||||
|
||||
Из локального репозитория:
|
||||
```bash
|
||||
--gui-reset-db yes
|
||||
sudo bash bootstrap/install_wg_install.sh
|
||||
```
|
||||
|
||||
После этого запуск сервера:
|
||||
```bash
|
||||
sudo wg-install
|
||||
```
|
||||
|
||||
С аргументами тоже работает:
|
||||
```bash
|
||||
sudo wg-install --non-interactive --server-public-ip 203.0.113.10 --default-iface eth0
|
||||
```
|
||||
|
||||
Установка `wg-install` без `git clone`:
|
||||
```bash
|
||||
tmp="$(mktemp -d)" && curl -fL "https://git.ruslan.xyz/ruslan/Wireguard_server/archive/main.tar.gz" -o "$tmp/repo.tar.gz" && tar -xzf "$tmp/repo.tar.gz" -C "$tmp" && sudo bash "$tmp/wireguard_server/bootstrap/install_wg_install.sh"
|
||||
```
|
||||
|
||||
Скрипт интерактивно спросит недостающие данные:
|
||||
@@ -162,7 +182,7 @@ sudo bash client/install_client.sh \
|
||||
|
||||
- Сервер: `/etc/wireguard/server_private.key` и `/etc/wireguard/server_public.key`.
|
||||
- Клиент: `/etc/wireguard/wg0_client_private.key`, `..._public.key`, `..._psk.key`.
|
||||
- Повторный запуск не перегенерирует ключи без необходимости.
|
||||
- При каждом запуске серверного установщика серверные ключи создаются заново (так как выполняется полный reset).
|
||||
|
||||
## Как задаются маршруты
|
||||
|
||||
@@ -292,9 +312,7 @@ docker ps -aq --filter 'label=com.docker.compose.service=wireguard-ui' | xargs -
|
||||
docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xargs -r docker rm -f
|
||||
```
|
||||
|
||||
Если клиенты из GUI создаются в неправильной подсети (например `10.252.1.x` вместо вашей `10.66.66.x`), запустите установщик с `--gui-reset-db yes`, затем создайте клиента заново и пересканируйте QR.
|
||||
|
||||
Почему так бывает: `wireguard-ui` хранит глобальные настройки в своей БД. Если БД была создана ранее со старой подсетью, новые переменные окружения не всегда перезаписывают эти значения автоматически.
|
||||
Если клиенты из GUI создаются в неправильной подсети, просто перезапустите серверный установщик: теперь он автоматически очищает БД GUI и поднимает всё с нуля.
|
||||
|
||||
## Важные пути
|
||||
|
||||
@@ -310,4 +328,5 @@ docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xa
|
||||
```bash
|
||||
bash server/install_server.sh --help
|
||||
bash client/install_client.sh --help
|
||||
bash bootstrap/install_wg_install.sh
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user