Client: enforce clean reset on every reinstall run
This commit is contained in:
@@ -44,6 +44,7 @@
|
|||||||
4. получает параметры подключения,
|
4. получает параметры подключения,
|
||||||
5. пишет локальный `/etc/wireguard/wg0.conf`,
|
5. пишет локальный `/etc/wireguard/wg0.conf`,
|
||||||
6. запускает и включает `wg-quick@wg0`.
|
6. запускает и включает `wg-quick@wg0`.
|
||||||
|
Каждый запуск клиентского установщика сначала очищает старые клиентские ключи/конфиг выбранного интерфейса и поднимает клиента заново.
|
||||||
|
|
||||||
## Почему выбран GUI `wireguard-ui`
|
## Почему выбран GUI `wireguard-ui`
|
||||||
|
|
||||||
@@ -141,6 +142,8 @@ sudo bash server/install_server.sh \
|
|||||||
sudo bash client/install_client.sh
|
sudo bash client/install_client.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Важно: клиентский установщик теперь всегда выполняет reset старой конфигурации для выбранного интерфейса (`wg0` по умолчанию): удаляет клиентские ключи/конфиг и создает их заново.
|
||||||
|
|
||||||
### Запуск клиента одной командой (без `git clone`)
|
### Запуск клиента одной командой (без `git clone`)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ KEEPALIVE="25"
|
|||||||
usage() {
|
usage() {
|
||||||
cat <<'USAGE'
|
cat <<'USAGE'
|
||||||
Установка WireGuard-клиента и автоматическая регистрация на сервере.
|
Установка WireGuard-клиента и автоматическая регистрация на сервере.
|
||||||
|
Каждый запуск выполняет полный reset предыдущей клиентской конфигурации для выбранного интерфейса.
|
||||||
|
|
||||||
Использование:
|
Использование:
|
||||||
install_client.sh [опции]
|
install_client.sh [опции]
|
||||||
@@ -152,6 +153,22 @@ install_packages() {
|
|||||||
apt_install_if_missing wireguard wireguard-tools iproute2 openssh-client sshpass ca-certificates
|
apt_install_if_missing wireguard wireguard-tools iproute2 openssh-client sshpass ca-certificates
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reset_existing_client_install() {
|
||||||
|
log_warn "Выполняю полный reset предыдущей конфигурации клиента (${WG_INTERFACE})"
|
||||||
|
|
||||||
|
local unit="wg-quick@${WG_INTERFACE}.service"
|
||||||
|
systemctl disable --now "$unit" >/dev/null 2>&1 || true
|
||||||
|
wg-quick down "$WG_INTERFACE" >/dev/null 2>&1 || true
|
||||||
|
|
||||||
|
rm -f \
|
||||||
|
"/etc/wireguard/${WG_INTERFACE}.conf" \
|
||||||
|
"/etc/wireguard/${WG_INTERFACE}_client_private.key" \
|
||||||
|
"/etc/wireguard/${WG_INTERFACE}_client_public.key" \
|
||||||
|
"/etc/wireguard/${WG_INTERFACE}_client_psk.key"
|
||||||
|
|
||||||
|
log_info "Старые конфиг/ключи клиента удалены для интерфейса ${WG_INTERFACE}"
|
||||||
|
}
|
||||||
|
|
||||||
ssh_base_cmd() {
|
ssh_base_cmd() {
|
||||||
echo "ssh -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10 -p ${SSH_PORT} ${SERVER_USER}@${SERVER_HOST}"
|
echo "ssh -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10 -p ${SSH_PORT} ${SERVER_USER}@${SERVER_HOST}"
|
||||||
}
|
}
|
||||||
@@ -333,6 +350,7 @@ main() {
|
|||||||
|
|
||||||
collect_inputs
|
collect_inputs
|
||||||
|
|
||||||
|
reset_existing_client_install
|
||||||
print_routes_info
|
print_routes_info
|
||||||
install_packages
|
install_packages
|
||||||
generate_keys
|
generate_keys
|
||||||
|
|||||||
Reference in New Issue
Block a user