Initial commit: local_machine docs and scripts
This commit is contained in:
119
docs/connectivity/vpn/setup-and-deploy.sh
Executable file
119
docs/connectivity/vpn/setup-and-deploy.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user