Files
local_machine/docs/connectivity/vpn/setup-and-deploy.sh
2026-03-14 20:03:57 +03:00

120 lines
4.4 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
#!/bin/bash
# Настройка SSH ключа и развертывание WireGuard на 149.154.64.19
set -e
SERVER="ahau@149.154.64.19"
KEY_FILE="$HOME/.ssh/ru_server_key"
PUB_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDJ48JZfUVwmVILkNsOqrmywqxCOK3zkxU3+2Z8G01RR ru.hunab.app"
echo "🔐 Настройка SSH и развертывание WireGuard"
echo "═══════════════════════════════════════════"
echo ""
# Шаг 1: Проверка подключения с ключом
echo "1⃣ Проверяю существующее подключение..."
if ssh -i "$KEY_FILE" -o PreferredAuthentications=publickey -o ConnectTimeout=5 -o StrictHostKeyChecking=no "$SERVER" "exit" 2>/dev/null; then
echo "✅ SSH ключ уже настроен!"
else
echo "⚠️ SSH ключ не настроен, добавляю..."
echo ""
echo "📝 Введите пароль: w99z2fBSkO4gU"
echo ""
# Добавляем ключ на сервер
ssh-copy-id -i "$KEY_FILE.pub" "$SERVER" || {
echo ""
echo "⚠️ Автоматическое добавление не сработало. Добавляю вручную..."
cat "$KEY_FILE.pub" | ssh "$SERVER" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
}
echo ""
echo "✅ SSH ключ добавлен!"
fi
echo ""
echo "2⃣ Проверяю подключение с ключом..."
if ssh -i "$KEY_FILE" -o PreferredAuthentications=publickey -o ConnectTimeout=5 "$SERVER" "echo '✅ Подключение работает!'" 2>/dev/null; then
echo "✅ SSH ключ работает!"
else
echo "❌ Не удалось подключиться с ключом"
exit 1
fi
echo ""
echo "3⃣ Развертывание WireGuard на сервере..."
echo ""
ssh -i "$KEY_FILE" "$SERVER" << 'ENDSSH'
set -e
echo " 📁 Создание директорий..."
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
echo " 🛑 Остановка старых контейнеров..."
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
echo " 🚀 Запуск WireGuard контейнера..."
cd /opt/app/vpn/wireguard
docker run -d \
--name hunab-vpn-wireguard-ru \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Moscow \
-e SERVERURL=149.154.64.19 \
-e SERVERPORT=51820 \
-e PEERS=1 \
-e PEERDNS=8.8.8.8 \
-e INTERNAL_SUBNET=10.14.14.0 \
-v /opt/app/vpn/wireguard/config:/config \
-p 51820:51820/udp \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart unless-stopped \
linuxserver/wireguard:latest > /dev/null
echo " ⏳ Ожидание создания конфигурации (45 секунд)..."
sleep 45
echo " 🔥 Настройка Firewall..."
sudo ufw allow 51820/udp comment 'WireGuard VPN RU' 2>/dev/null || true
sudo ufw reload 2>/dev/null || true
echo ""
echo " ✅ WireGuard развернут и запущен!"
echo ""
docker ps | grep wireguard
echo ""
echo " 📄 Конфигурация клиента:"
echo " ═══════════════════════════════"
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
echo " ═══════════════════════════════"
ENDSSH
echo ""
echo "4⃣ Получение конфигурации..."
scp -i "$KEY_FILE" "$SERVER:/opt/app/vpn/wireguard/config/peer1/peer1.conf" docs/vpn/RuVPN.conf
if [ -f docs/vpn/RuVPN.conf ]; then
echo ""
echo "✅ Конфигурация сохранена в docs/vpn/RuVPN.conf"
echo ""
echo "═══════════════════════════════════════════"
echo "📱 ГОТОВО! Импортируйте файл на телефон:"
echo "═══════════════════════════════════════════"
echo ""
cat docs/vpn/RuVPN.conf
echo ""
echo "🎉 Всё готово! Подключайтесь через WireGuard!"
else
echo ""
echo "⚠️ Не удалось скопировать конфигурацию"
fi