Initial commit: local_machine docs and scripts

This commit is contained in:
ahauimix
2026-03-14 20:03:57 +03:00
commit a39ef89125
85 changed files with 14500 additions and 0 deletions

View File

@@ -0,0 +1,158 @@
# 🚀 Развертывание WireGuard на ru.hunab.app
## Быстрая инструкция
### Шаг 1: Подключитесь к серверу
```bash
ssh ahau@149.154.64.19
# Пароль: w99z2fBSkO4gU
```
### Шаг 2: Выполните команды развертывания
```bash
# Создание директорий
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
# Остановка существующего контейнера (если есть)
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
# Запуск 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
# Ожидание создания конфигурации
echo "Ожидание 30 секунд для создания конфигурации..."
sleep 30
# Настройка Firewall
sudo ufw allow 51820/udp comment 'WireGuard VPN RU'
sudo ufw reload
# Проверка статуса
docker ps | grep wireguard
# Просмотр конфигурации клиента
echo "=== Конфигурация клиента ==="
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
```
### Шаг 3: Скопируйте конфигурацию
**С вашего компьютера:**
```bash
# Скопируйте конфигурацию
scp ahau@149.154.64.19:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/wg-ru.conf
```
**Или просмотрите и скопируйте вручную:**
```bash
ssh ahau@149.154.64.19 'cat /opt/app/vpn/wireguard/config/peer1/peer1.conf'
```
Затем скопируйте содержимое в файл `docs/hotspot/wg-ru.conf`.
### Шаг 4: Импортируйте в WireGuard на Android
1. Скопируйте файл `wg-ru.conf` на телефон
2. Откройте приложение WireGuard
3. Нажмите **"+"** → **"Создать из файла или архива"**
4. Выберите файл `wg-ru.conf`
5. Подключитесь!
---
## Проверка работы
После импорта конфигурации проверьте:
1. **IP адрес должен быть российским:**
- Откройте https://whatismyipaddress.com/
- Должен отображаться IP: **149.154.64.19**
2. **Подключение активно:**
- В приложении WireGuard статус должен быть "Подключено"
---
## Управление
### Просмотр статуса
```bash
ssh ahau@149.154.64.19 "docker ps | grep wireguard"
```
### Просмотр логов
```bash
ssh ahau@149.154.64.19 "docker logs hunab-vpn-wireguard-ru"
```
### Перезапуск
```bash
ssh ahau@149.154.64.19 "docker restart hunab-vpn-wireguard-ru"
```
### Остановка
```bash
ssh ahau@149.154.64.19 "docker stop hunab-vpn-wireguard-ru"
```
---
## Решение проблем
### Конфигурация не создается
Подождите еще 30-60 секунд и проверьте:
```bash
ssh ahau@149.154.64.19 "ls -la /opt/app/vpn/wireguard/config/peer1/"
```
### Контейнер не запускается
Проверьте логи:
```bash
ssh ahau@149.154.64.19 "docker logs hunab-vpn-wireguard-ru"
```
### Порт занят
Проверьте, что порт 51820 свободен:
```bash
ssh ahau@149.154.64.19 "sudo netstat -tuln | grep 51820"
```
---
## Готово!
После выполнения всех шагов у вас будет рабочий WireGuard конфиг `wg-ru.conf` для использования из России! 🎉

View File

@@ -0,0 +1,43 @@
# 🚀 Финальные инструкции для получения рабочего конфига
## Проблема
SSH порт 22 на сервере 149.154.64.19 закрыт, поэтому автоматическое развертывание невозможно.
## Решение
### Вариант 1: Если у вас есть доступ к серверу через другой терминал
1. **Выполните команду из файла `ONE_LINE_DEPLOY.txt`:**
```bash
cat docs/vpn/ONE_LINE_DEPLOY.txt
```
Скопируйте команду и выполните в SSH сеансе на сервере.
2. **После выполнения получите конфигурацию:**
```bash
./docs/vpn/scripts/get-wg-ru-config.sh
```
Или вручную:
```bash
scp ahau@149.154.64.19:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/wg-ru.conf
```
### Вариант 2: Если SSH порт открыт на другом порту
Используйте команду с указанием порта:
```bash
ssh -p <PORT> ahau@149.154.64.19
```
### Вариант 3: Если WireGuard уже развернут
Просто получите конфигурацию:
```bash
./docs/vpn/scripts/get-wg-ru-config.sh
```
---
## После получения конфигурации
Файл `docs/vpn/wg-ru.conf` будет содержать рабочий конфиг для импорта в WireGuard на Android.

View File

@@ -0,0 +1,288 @@
# 🍎 macOS - Клиенты для Shadowsocks
## 📋 Обзор
Руководство по установке и настройке различных VPN клиентов для macOS.
**Параметры подключения:**
```
Server: 209.38.32.21
Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305
```
**URI для импорта:**
```
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpiTmtTYnVNUVhnTVhtdUJMUFFDQTVjU1VFQDIwOS4zOC4zMi4yMTo4Mzg4
```
---
## 🎯 Рекомендуемые клиенты
### 1. ⭐ shadowsocks-libev (CLI) - Рекомендуется
**Почему:**
- ✅ Работает без GUI приложений
- ✅ Автозапуск при входе в систему
- ✅ Стабильная работа
- ✅ Низкое потребление ресурсов
**Установка:**
```bash
brew install shadowsocks-libev
```
**Настройка:** См. [SHADOWSOCKS.md](./SHADOWSOCKS.md#macos)
**Управление:**
```bash
cd docs/servers/vpn
./scripts/toggle-shadowsocks-proxy.sh # Переключение прокси
./scripts/check-proxy-status.sh # Проверка статуса
./scripts/fix-shadowsocks.sh # Автоматическое исправление
```
---
### 2. ⭐ ClashX
**Почему:**
- ✅ Очень популярный клиент
- ✅ Правила маршрутизации
- ✅ Поддержка множества протоколов
**Установка:**
1. Скачайте с: https://github.com/yichengchen/clashX/releases
2. Или используйте ClashX Meta: https://github.com/MetaCubeX/ClashX.Meta/releases
**Настройка:**
1. Откройте ClashX → **Config****Edit Config**
2. Замените содержимое на:
```yaml
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
proxies:
- name: "Hunab Shadowsocks"
type: ss
server: 209.38.32.21
port: 8388
cipher: chacha20-ietf-poly1305
password: bNkSbuMQXgMXmuBLPQCA5cSUE
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "Hunab Shadowsocks"
- DIRECT
- name: "Auto"
type: url-test
proxies:
- "Hunab Shadowsocks"
url: 'http://www.gstatic.com/generate_204'
interval: 300
rules:
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
```
3. **Config****Reload Config**
4. **Proxy****Hunab Shadowsocks**
5. Включите **Set as System Proxy**
**GitHub:** https://github.com/yichengchen/clashX
---
### 3. ⭐ V2rayU
**Почему:**
- ✅ Простая установка через Homebrew
- ✅ Поддержка Shadowsocks из коробки
- ✅ Простой интерфейс
**Установка:**
```bash
brew install --cask v2rayu
```
**Настройка:**
1. Откройте V2rayU
2. **Servers****Add Server****Shadowsocks**
3. Введите параметры подключения
4. Выберите сервер и подключитесь
**GitHub:** https://github.com/yanue/V2rayU
---
### 4. ⭐ Outline
**Почему:**
- ✅ Очень простой интерфейс
- ✅ Разработан Google (Jigsaw)
- ✅ Автоматическая настройка
**Установка:**
- Mac App Store: https://apps.apple.com/app/outline/id1356177741
- Или прямая загрузка: https://github.com/Jigsaw-Code/outline-client/releases
**Настройка:**
1. Откройте Outline
2. Нажмите **"+"** → **"Enter access key"**
3. Вставьте ключ:
```
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpiTmtTYnVNUVhnTVhtdUJMUFFDQTVjU1VFQDIwOS4zOC4zMi4yMTo4Mzg4
```
4. Подключитесь
**GitHub:** https://github.com/Jigsaw-Code/outline-client
---
### 5. ShadowsocksX-NG
**Установка:**
```bash
brew install --cask shadowsocksx-ng
```
**Настройка:**
1. Откройте приложение → **Server Preferences** → **"+"**
2. Введите параметры подключения
3. Выберите сервер в меню и подключитесь
4. Включите **"System Proxy"**
---
## 🔧 Настройка системного прокси
### Автоматическая настройка (shadowsocks-libev)
Используйте скрипты:
```bash
cd docs/servers/vpn
./scripts/enable-shadowsocks-full.sh # Включить для всего трафика
```
### Ручная настройка
1. **System Settings** → **Network**
2. Выберите активное подключение (Wi-Fi/Ethernet)
3. **Details...** → **Proxies**
4. Включите **SOCKS Proxy**:
- Server: `127.0.0.1`
- Port: `1080`
5. Нажмите **OK**
**Или через командную строку:**
```bash
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
networksetup -setsocksfirewallproxystate "$INTERFACE" on
```
---
## 🔄 Переключение между Chrome VPN и Shadowsocks
### Использовать Chrome VPN
1. Выключите системный прокси:
```bash
cd docs/servers/vpn
./scripts/toggle-shadowsocks-proxy.sh
```
2. Используйте Chrome VPN как обычно
### Использовать Shadowsocks
1. Включите системный прокси:
```bash
cd docs/servers/vpn
./scripts/toggle-shadowsocks-proxy.sh
```
2. **Полностью закройте Chrome** (Cmd+Q)
3. Откройте Chrome заново
4. Проверьте IP: https://whatismyipaddress.com/
---
## 🔧 Решение проблем
### Браузер показывает старый IP
1. **Отключите Chrome VPN расширение** (если активно)
2. **Проверьте настройки Chrome:** `chrome://settings/system` → "Use system proxy settings"
3. **Полностью закройте Chrome:** Cmd+Q
4. **Откройте Chrome заново**
**Или используйте скрипт:**
```bash
cd docs/servers/vpn
./scripts/fix-shadowsocks.sh
```
### Прокси не работает
1. Проверьте статус:
```bash
cd docs/servers/vpn
./scripts/check-proxy-status.sh
```
2. Перезапустите Shadowsocks:
```bash
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
```
### Firefox не использует системный прокси
Настройте вручную:
1. **Preferences** → **Network Settings**
2. **Manual proxy configuration**
3. **SOCKS Host:** `127.0.0.1`
4. **Port:** `1080`
5. **SOCKS v5**
---
## 📊 Сравнение клиентов
| Клиент | Простота | Функции | Установка | Рекомендация |
|--------|----------|---------|-----------|--------------|
| **shadowsocks-libev** | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ **ЛУЧШИЙ** |
| **ClashX** | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ✅ Очень популярный |
| **V2rayU** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ Хороший баланс |
| **Outline** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ✅ Очень простой |
| **ShadowsocksX-NG** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ✅ Оригинал |
---
## 🔗 Полезные ссылки
- [Shadowsocks полное руководство](./SHADOWSOCKS.md)
- [Скрипты управления](./scripts/)
---
**Версия:** 2.0
**Дата:** 2025-01-XX

View File

@@ -0,0 +1 @@
sudo mkdir -p /opt/app/vpn/wireguard/config && sudo chown -R ahau:ahau /opt/app/vpn && docker stop hunab-vpn-wireguard-ru 2>/dev/null; docker rm hunab-vpn-wireguard-ru 2>/dev/null; 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 && echo "Ожидание 45 секунд..." && sleep 45 && sudo ufw allow 51820/udp comment "WireGuard VPN RU" && sudo ufw reload && echo "=== КОНФИГУРАЦИЯ ===" && cat /opt/app/vpn/wireguard/config/peer1/peer1.conf

View File

@@ -0,0 +1,54 @@
# 🚀 Быстрое развертывание WireGuard на ru.hunab.app
## Выполните эти команды в SSH сеансе на сервере
```bash
# 1. Создание директорий
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
# 2. Остановка старых контейнеров
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
# 3. Запуск 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
# 4. Ожидание (45 секунд)
sleep 45
# 5. Firewall
sudo ufw allow 51820/udp comment 'WireGuard VPN RU'
sudo ufw reload
# 6. Просмотр конфигурации
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
```
## После выполнения команд
Скопируйте вывод команды `cat` и вставьте в файл `docs/vpn/wg-ru.conf`
Или выполните с вашего компьютера:
```bash
scp ahau@149.154.64.19:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/wg-ru.conf
```

View File

@@ -0,0 +1,115 @@
# 🔐 VPN Решения для Hunab.app
## 📋 Обзор
Документация по VPN решениям для сервера 209.38.32.21. Все решения развернуты через Docker и готовы к использованию.
**Сервер:** 209.38.32.21 (Ubuntu 24.10)
**Архитектура:** Docker-based deployment
---
## 🚀 Быстрый старт
### Shadowsocks (Рекомендуется для обхода блокировок)
**Лучший выбор для обхода строгих блокировок и цензуры.**
- 📖 [Полное руководство](./SHADOWSOCKS.md)
- ⚡ Быстрый старт: `bash scripts/deployment/deploy-vpn-shadowsocks.sh`
- 📱 [Android инструкция](./SHADOWSOCKS.md#android)
- 🍎 [macOS инструкция](./SHADOWSOCKS.md#macos)
**Параметры подключения:**
```
Server: 209.38.32.21
Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305
```
### WireGuard (Рекомендуется для обычного использования)
**Проще в настройке, полное туннелирование из коробки.**
- 📖 [Полное руководство](./WIREGUARD.md)
- ⚡ Быстрый старт: `bash scripts/deployment/deploy-vpn-wireguard.sh`
---
## 📚 Документация
### Основные руководства
- **[SHADOWSOCKS.md](./SHADOWSOCKS.md)** - Полное руководство по Shadowsocks
- Развертывание сервера
- Настройка клиентов (Android, macOS, CLI)
- Решение проблем
- Управление и мониторинг
- **[MAC_CLIENTS.md](./MAC_CLIENTS.md)** - Клиенты для macOS
- ShadowsocksX-NG, ClashX, V2rayU, Outline
- Настройка системного прокси
- Решение проблем с браузерами
- Альтернативные клиенты
- **[WIREGUARD.md](./WIREGUARD.md)** - Руководство по WireGuard
- Развертывание
- Настройка клиентов
- Управление
- **[WHONIX.md](./WHONIX.md)** - Whonix для приватности
- Установка на Mac
- Настройка для Apple Silicon
- Использование
---
## 🔧 Скрипты
Все скрипты находятся в папке `scripts/`:
- `scripts/toggle-shadowsocks-proxy.sh` - Переключение системного прокси
- `scripts/check-proxy-status.sh` - Проверка статуса прокси
- `scripts/fix-shadowsocks.sh` - Автоматическое исправление
- `scripts/enable-shadowsocks-full.sh` - Включение для всего трафика
**Использование:**
```bash
cd docs/servers/vpn
./scripts/toggle-shadowsocks-proxy.sh
./scripts/check-proxy-status.sh
./scripts/fix-shadowsocks.sh
./scripts/enable-shadowsocks-full.sh
```
---
## 📊 Сравнение решений
| Критерий | Shadowsocks | WireGuard |
|----------|-------------|-----------|
| **Скорость** | 90-95% | 85-95% |
| **Обход блокировок** | 🏆 Лучший | Хороший |
| **Обнаружимость DPI** | 🏆 Сложнее | Легче |
| **Настройка** | Простая | Очень простая |
| **Полное туннелирование** | Требует настройку | Из коробки |
**Рекомендация:**
- **Для обхода блокировок:** Shadowsocks
- **Для обычного использования:** WireGuard
---
## 🔗 Полезные ссылки
- [Shadowsocks Official](https://shadowsocks.org/)
- [WireGuard Official](https://www.wireguard.com/)
- [Whonix Official](https://www.whonix.org/)
---
**Версия:** 2.0
**Дата:** 2025-01-XX
**Статус:** ✅ Актуально

View File

@@ -0,0 +1,214 @@
# 🔐 Доступы и команды управления прокси-сервером
## 🌐 Сервер ru.hunab.app
**IP:** 149.154.64.19
**Провайдер:** Российский VPS
**ОС:** Ubuntu 24.10
## 🔑 SSH Доступ
```bash
ssh ahau@149.154.64.19
```
**Пароль:** w99z2fBSkO4gU
**Альтернативный доступ с ключом:**
```bash
ssh -i ~/.ssh/id_rsa_ahau ahau@149.154.64.19
```
## 👤 Пользователи
- **ahau** - основной пользователь с sudo правами
- **root** - доступен через ahau + sudo
## 🌍 URL'ы для проверки
- **Основной сайт:** https://ru.hunab.app/
- **Health check:** https://ru.hunab.app/proxy-health
- **API:** https://ru.hunab.app/api/health
## 📁 Важные файлы
```bash
# NGINX конфигурация
/etc/nginx/sites-available/ru.hunab.app
# SSL сертификаты
/etc/letsencrypt/live/ru.hunab.app/
# Логи
/var/log/nginx/ru.hunab.app.access.log
/var/log/nginx/ru.hunab.app.error.log
# Кеш
/var/cache/nginx/
```
---
## 🔧 КОМАНДЫ УПРАВЛЕНИЯ
### 🌐 NGINX Управление
```bash
# Проверка статуса
sudo systemctl status nginx
# Проверка конфигурации
sudo nginx -t
# Перезагрузка конфигурации
sudo systemctl reload nginx
# Полный перезапуск
sudo systemctl restart nginx
# Просмотр активных сайтов
sudo nginx -T | grep server_name
```
### 🔒 SSL/TLS Управление
```bash
# Проверка сертификатов
sudo certbot certificates
# Тест автообновления
sudo certbot renew --dry-run
# Ручное обновление
sudo certbot renew
# Проверка статуса автообновления
sudo systemctl status certbot.timer
sudo systemctl list-timers | grep certbot
```
### 🛡️ Безопасность и Мониторинг
```bash
# UFW Firewall
sudo ufw status verbose
sudo ufw reload
# Fail2ban
sudo systemctl status fail2ban
sudo fail2ban-client status
sudo fail2ban-client status nginx-limit-req
# Просмотр заблокированных IP
sudo fail2ban-client get nginx-limit-req banip
```
### 📊 Логи и Мониторинг
```bash
# NGINX логи
sudo tail -f /var/log/nginx/ru.hunab.app.access.log
sudo tail -f /var/log/nginx/ru.hunab.app.error.log
# Анализ трафика
sudo grep "$(date '+%d/%b/%Y')" /var/log/nginx/ru.hunab.app.access.log | wc -l
# Поиск ошибок
sudo grep -i error /var/log/nginx/ru.hunab.app.error.log | tail -20
# Системные логи
sudo journalctl -u nginx -f
sudo journalctl -u fail2ban -f
```
### 🧪 Тестирование
```bash
# Health check прокси
curl -I https://ru.hunab.app/proxy-health
# Проверка основного сайта
curl -I https://ru.hunab.app/
# Проверка API
curl -I https://ru.hunab.app/api/health
# Тест скорости ответа
curl -w "@-" -o /dev/null -s https://ru.hunab.app/ <<'EOF'
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_appconnect: %{time_appconnect}\n
time_pretransfer: %{time_pretransfer}\n
time_redirect: %{time_redirect}\n
time_starttransfer: %{time_starttransfer}\n
----------\n
time_total: %{time_total}\n
EOF
```
### 💾 Кеширование
```bash
# Очистка кеша NGINX
sudo rm -rf /var/cache/nginx/*
sudo systemctl reload nginx
# Проверка размера кеша
sudo du -sh /var/cache/nginx/
# Просмотр кешированных файлов
sudo find /var/cache/nginx/ -type f | head -10
```
### 🔄 Backup и Восстановление
```bash
# Backup конфигурации
sudo cp /etc/nginx/sites-available/ru.hunab.app /home/ahau/nginx-backup-$(date +%Y%m%d).conf
# Backup SSL сертификатов
sudo tar -czf /home/ahau/ssl-backup-$(date +%Y%m%d).tar.gz /etc/letsencrypt/
# Проверка свободного места
df -h
```
### ⚡ Быстрые диагностические команды
```bash
# Полная проверка состояния системы
echo "=== NGINX Status ===" && sudo systemctl status nginx --no-pager && \
echo "=== SSL Certificates ===" && sudo certbot certificates && \
echo "=== Firewall Status ===" && sudo ufw status && \
echo "=== Current Connections ===" && sudo ss -tuln | grep -E ':80|:443' && \
echo "=== Recent Access ===" && sudo tail -5 /var/log/nginx/ru.hunab.app.access.log
# Проверка производительности
echo "=== CPU Load ===" && uptime && \
echo "=== Memory Usage ===" && free -h && \
echo "=== Disk Usage ===" && df -h && \
echo "=== Network Connections ===" && sudo netstat -anp | grep nginx | wc -l
```
### 🚨 Экстренные команды
```bash
# Экстренная остановка NGINX
sudo systemctl stop nginx
# Экстренный запуск с минимальной конфигурацией
sudo nginx -t && sudo systemctl start nginx
# Откат к предыдущей конфигурации
sudo cp /home/ahau/nginx-backup-YYYYMMDD.conf /etc/nginx/sites-available/ru.hunab.app
sudo systemctl reload nginx
# Проверка процессов NGINX
sudo ps aux | grep nginx
sudo pgrep nginx | xargs sudo kill -9 # Крайний случай!
```
---
## ⚠️ ВАЖНЫЕ ЗАМЕТКИ
- Прокси настроен и работает в production
- SSL автообновление активно (certbot.timer)
- Все security компоненты настроены
- Требуется только мониторинг работоспособности
## 🇷🇺 АВТОМАТИЧЕСКИЙ РЕДИРЕКТ
**Статус:** ✅ РЕАЛИЗОВАНО И РАЗВЕРНУТО (8 декабря 2025)
**Версия:** v3.0
Автоматический редирект российских пользователей на `ru.hunab.app` реализован на фронтенде:
- Немедленный редирект в HTML (до загрузки JS)
- Проверка загрузки статических ресурсов
- Автоматический редирект в JavaScript
📖 **Детальная документация:** [`AUTOMATIC_REDIRECT_SOLUTION.md`](./AUTOMATIC_REDIRECT_SOLUTION.md)

View File

@@ -0,0 +1,347 @@
# 🚀 Shadowsocks VPN - Полное руководство
## 📋 Обзор
Shadowsocks VPN - **лучший выбор для обхода строгих блокировок**. Маскирует трафик под обычный веб-трафик, что делает его очень эффективным против DPI (Deep Packet Inspection) и интернет-цензуры.
**Преимущества:**
-**90-95% от пропускной способности** (очень быстрый)
-**Сложнее обнаружить** через DPI
-**Эффективен против цензуры** (разработан для Китая)
-**TCP протокол** (проходит через корпоративные прокси)
**Параметры подключения:**
```
Server: 209.38.32.21
Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305
```
**URI для импорта:**
```
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpiTmtTYnVNUVhnTVhtdUJMUFFDQTVjU1VFQDIwOS4zOC4zMi4yMTo4Mzg4
```
---
## 🔧 Развертывание сервера
### Автоматическое развертывание
```bash
bash scripts/deployment/deploy-vpn-shadowsocks.sh
```
Скрипт автоматически:
1. ✅ Проверит подключение к серверу
2. ✅ Сгенерирует безопасный пароль
3. ✅ Создаст необходимые директории
4. ✅ Настроит Docker контейнер
5. ✅ Обновит firewall правила
6. ✅ Запустит VPN сервер
7. ✅ Создаст клиентскую конфигурацию
### Статус сервера
**Контейнер:** `hunab-vpn-shadowsocks`
**Статус:** ✅ Запущен и работает
**Порт:** 8388 (TCP/UDP)
**Firewall:** ✅ Настроен
**Проверка статуса:**
```bash
ssh hunab-prod "docker ps | grep shadowsocks"
```
---
## 📱 Настройка клиентов
### Android
1. Установите приложение **Shadowsocks** из Google Play (разработчик: Max Lv)
2. Нажмите **"+"** → **"Manual Settings"**
3. Введите параметры:
```
Server: 209.38.32.21
Remote Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305
```
4. Нажмите **"Подключиться"**
**Альтернативные клиенты для Android:**
- ShadowsocksR - больше функций
- Outline - очень простой
- V2rayNG - много протоколов
- Clash for Android - правила маршрутизации
### macOS
#### Вариант 1: ShadowsocksX-NG (GUI)
```bash
brew install --cask shadowsocksx-ng
```
1. Откройте приложение → **Server Preferences** → **"+"**
2. Введите параметры подключения
3. Выберите сервер в меню и подключитесь
4. Включите **"System Proxy"**
#### Вариант 2: shadowsocks-libev (CLI) - Рекомендуется
```bash
brew install shadowsocks-libev
```
**Настройка:**
```bash
mkdir -p ~/.shadowsocks
cat > ~/.shadowsocks/config.json <<EOF
{
"server": "209.38.32.21",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "bNkSbuMQXgMXmuBLPQCA5cSUE",
"method": "chacha20-ietf-poly1305",
"timeout": 300,
"fast_open": true
}
EOF
```
**Автозапуск:**
```bash
cat > ~/Library/LaunchAgents/com.shadowsocks.local.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.shadowsocks.local</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/ss-local</string>
<string>-c</string>
<string>${HOME}/.shadowsocks/config.json</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/shadowsocks.log</string>
<key>StandardErrorPath</key>
<string>/tmp/shadowsocks.error.log</string>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
```
**Настройка системного прокси:**
1. System Settings → Network → Wi-Fi/Ethernet → Details → Proxies
2. Включите SOCKS Proxy: `127.0.0.1:1080`
**Или используйте скрипты:**
```bash
cd docs/servers/vpn
./scripts/enable-shadowsocks-full.sh # Включить для всего трафика
./scripts/toggle-shadowsocks-proxy.sh # Переключить прокси
./scripts/check-proxy-status.sh # Проверить статус
```
**Альтернативные клиенты для macOS:**
- ClashX - очень популярный
- V2rayU - простой интерфейс
- Outline - очень простой
- Surge - платный, но мощный
---
## 🔧 Управление
### Проверка статуса
```bash
# На сервере
ssh hunab-prod "docker ps | grep shadowsocks"
# На клиенте (macOS CLI)
launchctl list | grep shadowsocks
```
### Просмотр логов
```bash
# Сервер
ssh hunab-prod "docker logs hunab-vpn-shadowsocks"
# Клиент (macOS)
tail -f /tmp/shadowsocks.log
tail -f /tmp/shadowsocks.error.log
```
### Перезапуск
```bash
# Сервер
ssh hunab-prod "cd /opt/app && docker compose -f docker-compose.vpn-shadowsocks.yml restart"
# Клиент (macOS)
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
```
### Изменение пароля
```bash
ssh hunab-prod
cd /opt/app/vpn/shadowsocks
NEW_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
sed -i "s/\"password\": \".*\"/\"password\": \"${NEW_PASSWORD}\"/" config.json
docker restart hunab-vpn-shadowsocks
```
---
## 🧪 Тестирование
### Проверка подключения
```bash
# Через SOCKS5 прокси (macOS CLI)
curl --socks5 127.0.0.1:1080 ifconfig.me
# Должен показать: 209.38.32.21
# Прямое подключение
curl ifconfig.me
# Покажет ваш реальный IP
```
### Проверка через браузер
1. Настройте системный прокси (см. выше)
2. Откройте: https://whatismyipaddress.com/
3. Должен отображаться IP: **209.38.32.21**
---
## 🔧 Решение проблем
### Весь трафик не проходит через Shadowsocks
**Используйте скрипты:**
```bash
cd docs/servers/vpn
./scripts/check-proxy-status.sh # Проверка статуса
./scripts/fix-shadowsocks.sh # Автоматическое исправление
```
**Ручная диагностика:**
1. **Проверка Shadowsocks:**
```bash
launchctl list | grep shadowsocks
curl --socks5 127.0.0.1:1080 ifconfig.me
```
2. **Проверка системного прокси:**
```bash
networksetup -getsocksfirewallproxy "Wi-Fi"
# Должно показать: Enabled: Yes, Server: 127.0.0.1, Port: 1080
```
3. **Настройка прокси:**
```bash
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
networksetup -setsocksfirewallproxystate "$INTERFACE" on
```
### Chrome не использует системный прокси
1. **Отключите Chrome VPN расширение** (если активно)
2. **Проверьте настройки:** `chrome://settings/system` → "Use system proxy settings"
3. **Полностью закройте Chrome:** Cmd+Q (не просто закрыть окно)
4. **Откройте Chrome заново**
### Прокси не работает
1. Проверьте статус:
```bash
launchctl list | grep shadowsocks
```
2. Проверьте логи:
```bash
cat /tmp/shadowsocks.error.log
```
3. Перезапустите:
```bash
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
```
### Порт 1080 занят
1. Проверьте, что использует порт:
```bash
lsof -i :1080
```
2. Измените порт в `~/.shadowsocks/config.json`:
```json
"local_port": 1081
```
3. Обновите системный прокси на новый порт
---
## 📊 Мониторинг
### Использование ресурсов
```bash
ssh hunab-prod "docker stats hunab-vpn-shadowsocks --no-stream"
```
### Активные подключения
```bash
ssh hunab-prod "docker exec hunab-vpn-shadowsocks ss-server -c /etc/shadowsocks-libev/config.json -v"
```
---
## 🔒 Безопасность
### Рекомендации
1. ✅ **Используйте порт 443** для маскировки под HTTPS трафик
2. ✅ **Регулярно меняйте пароль** (каждые 1-3 месяца)
3. ✅ **Используйте современные методы шифрования** (`chacha20-ietf-poly1305`)
4.**Мониторинг трафика** - следите за использованием
5.**Обновляйте контейнер** регулярно
---
## 🔗 Полезные ссылки
- [Shadowsocks Official](https://shadowsocks.org/)
- [Shadowsocks Docker Image](https://hub.docker.com/r/shadowsocks/shadowsocks-libev)
- [Shadowsocks Clients](https://shadowsocks.org/en/download/clients.html)
- [Shadowsocks GitHub](https://github.com/shadowsocks/shadowsocks-libev)
---
**Версия:** 2.0
**Дата:** 2025-01-XX

View File

@@ -0,0 +1,167 @@
# 🔐 Whonix - Полное руководство для Mac
## 📋 Обзор
Whonix - приватная операционная система для максимальной анонимности. Состоит из двух виртуальных машин: Gateway (шлюз через Tor) и Workstation (изолированная рабочая среда).
---
## 🔧 Установка
### Предварительные требования
- macOS (Intel или Apple Silicon)
- Homebrew установлен
- Минимум 4 GB RAM свободно
- 20 GB свободного места на диске
### Шаг 1: Установка VirtualBox
**Для Intel Mac:**
```bash
brew install --cask virtualbox
```
**Для Apple Silicon (M1/M2/M3):**
VirtualBox не поддерживает эмуляцию x86 на Apple Silicon. Используйте:
- **UTM** (бесплатно): `brew install --cask utm`
- **Parallels Desktop** (платно, но лучше)
### Шаг 2: Скачивание образов Whonix
1. Перейдите на: https://www.whonix.org/wiki/Download
2. Скачайте:
- `Whonix-Gateway-*.ova` (~1.5 GB)
- `Whonix-Workstation-*.ova` (~2.5 GB)
Сохраните в: `~/Downloads/whonix/`
### Шаг 3: Импорт в VirtualBox
**Через командную строку:**
```bash
VBoxManage import ~/Downloads/whonix/Whonix-Gateway-*.ova --vsys 0 --vmname "Whonix-Gateway"
VBoxManage import ~/Downloads/whonix/Whonix-Workstation-*.ova --vsys 0 --vmname "Whonix-Workstation"
```
**Через GUI:**
1. Откройте VirtualBox
2. File → Import Appliance
3. Выберите `.ova` файлы
### Шаг 4: Настройка сети
**Gateway:**
```bash
VBoxManage modifyvm "Whonix-Gateway" --nic1 nat --nic2 intnet --intnet2 "whonix"
```
**Workstation:**
```bash
VBoxManage modifyvm "Whonix-Workstation" --nic1 intnet --intnet1 "whonix"
```
---
## 🚀 Запуск Whonix
**Важно: Правильный порядок запуска**
1. **Сначала запустите Whonix-Gateway**
```bash
VBoxManage startvm "Whonix-Gateway" --type gui
```
Дождитесь полной загрузки (появится рабочий стол)
2. **Затем запустите Whonix-Workstation**
```bash
VBoxManage startvm "Whonix-Workstation" --type gui
```
---
## ✅ Валидация работы
В Whonix-Workstation проверьте:
1. **Проверка Tor:**
- Откройте: https://check.torproject.org
- Должно быть: "Congratulations. Your browser is configured to use Tor."
2. **Проверка IP:**
- Откройте: https://whatismyipaddress.com
- IP должен быть из сети Tor (не ваш реальный IP)
3. **Проверка DNS утечек:**
- Откройте: https://dnsleaktest.com
- Должны быть только DNS серверы Tor
---
## 🍎 Apple Silicon (M1/M2/M3)
### Проблема
VirtualBox не поддерживает эмуляцию x86 на Apple Silicon.
### Решение: UTM
1. Установите UTM:
```bash
brew install --cask utm
```
2. Импортируйте Whonix в UTM:
- Откройте UTM
- Создать новую виртуальную машину
- Выберите "Virtualize" → "Linux"
- Импортируйте `.ova` файлы
- **Важно:** Выберите архитектуру **x86_64** (эмуляция)
3. Настройте сеть:
- Gateway: NAT для интернета
- Workstation: Internal Network (shared с Gateway)
**Производительность:** Будет медленнее чем на Intel Mac (эмуляция), но работает.
### Альтернативы
- **Parallels Desktop** - лучше производительность, но платно
- **Tails через USB** - нативная загрузка, быстрее
- **VPN + Tor Browser** - нативное приложение, самое быстрое
---
## 🔧 Решение проблем
### Gateway не запускается
1. Проверьте логи VirtualBox
2. Проверьте настройки сети
3. Убедитесь, что VirtualBox установлен правильно
### Workstation не может подключиться к интернету
1. Убедитесь, что Gateway запущен и полностью загружен
2. Проверьте, что оба VM используют одну Internal Network "whonix"
3. Перезапустите обе VM
### Медленная работа
1. Увеличьте RAM для VM (минимум 2 GB каждая)
2. Увеличьте количество CPU ядер
3. Используйте SSD (не внешний диск)
---
## 🔗 Полезные ссылки
- [Whonix Official](https://www.whonix.org/)
- [Whonix Documentation](https://www.whonix.org/wiki/Documentation)
- [UTM Official](https://mac.getutm.app/)
---
**Версия:** 2.0
**Дата:** 2025-01-XX

View File

@@ -0,0 +1,199 @@
# 🚀 WireGuard VPN - Полное руководство
## 📋 Обзор
WireGuard VPN позволяет подключаться к серверу 209.38.32.21 и использовать его как прокси для обхода интернет-ограничений.
**Преимущества:**
- ✅ Современный протокол (state-of-the-art криптография)
- ✅ Очень быстрый (85-95% от пропускной способности)
- ✅ Простая настройка (минимум конфигурации)
- ✅ Полное туннелирование из коробки
- ✅ Низкое потребление ресурсов
---
## 🔧 Развертывание сервера
### Автоматическое развертывание
```bash
bash scripts/deployment/deploy-vpn-wireguard.sh
```
Скрипт автоматически:
1. ✅ Проверит подключение к серверу
2. ✅ Создаст необходимые директории
3. ✅ Настроит Docker контейнер
4. ✅ Обновит firewall правила
5. ✅ Запустит VPN сервер
6. ✅ Создаст клиентскую конфигурацию
### Ручное развертывание
1. Подключитесь к серверу: `ssh hunab-prod`
2. Создайте директории:
```bash
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R hunab:hunab /opt/app/vpn
```
3. Создайте docker-compose файл
4. Запустите контейнер: `docker compose -f docker-compose.vpn.yml up -d`
5. Откройте порт: `sudo ufw allow 51820/udp comment 'WireGuard VPN'`
---
## 📱 Настройка клиентов
### Android / iOS
1. Установите приложение **WireGuard** из Google Play / App Store
2. Нажмите **"+"** → **"Создать из файла или архива"**
3. Выберите файл `wireguard-peer1.conf` (созданный скриптом)
4. Нажмите **"Подключиться"**
### Windows / macOS / Linux
1. Установите WireGuard клиент:
- **Windows:** https://www.wireguard.com/install/
- **macOS:** `brew install wireguard-tools`
- **Linux:** `sudo apt install wireguard`
2. Импортируйте конфигурацию:
```bash
# Linux/macOS
sudo cp wireguard-peer1.conf /etc/wireguard/wg0.conf
sudo wg-quick up wg0
```
---
## 🔍 Проверка подключения
### На сервере
```bash
# Проверка статуса контейнера
docker ps | grep hunab-vpn-wireguard
# Просмотр логов
docker logs hunab-vpn-wireguard
# Проверка подключенных клиентов
docker exec hunab-vpn-wireguard wg show
```
### На клиенте
```bash
# Linux/macOS
sudo wg show
# Проверка IP адреса
curl ifconfig.me
# Должен показать IP сервера 209.38.32.21
```
---
## 🛠️ Управление
### Добавление нового клиента
```bash
ssh hunab-prod
cd /opt/app
docker compose -f docker-compose.vpn.yml down
# Измените PEERS=1 на PEERS=2 в docker-compose.vpn.yml
docker compose -f docker-compose.vpn.yml up -d
# Новый конфиг будет в /opt/app/vpn/wireguard/config/peer2/peer2.conf
```
### Остановка VPN
```bash
ssh hunab-prod "cd /opt/app && docker compose -f docker-compose.vpn.yml down"
```
### Перезапуск VPN
```bash
ssh hunab-prod "cd /opt/app && docker compose -f docker-compose.vpn.yml restart wireguard"
```
### Просмотр статистики
```bash
ssh hunab-prod "docker exec hunab-vpn-wireguard wg show"
```
---
## 🔒 Безопасность
### Рекомендации
1. ✅ **Храните конфигурационные файлы в безопасности**
2. ✅ **Регулярно обновляйте ключи** (каждые 3-6 месяцев)
3. ✅ **Мониторинг трафика**
4. ✅ **Обновляйте контейнер** регулярно
---
## 🐛 Решение проблем
### VPN не подключается
1. Проверьте статус контейнера: `docker ps | grep wireguard`
2. Проверьте логи: `docker logs hunab-vpn-wireguard`
3. Проверьте firewall: `sudo ufw status | grep 51820`
4. Проверьте порт: `sudo netstat -tuln | grep 51820`
### Медленное подключение
1. Проверьте задержку: `ping 209.38.32.21`
2. Проверьте нагрузку сервера: `docker stats hunab-vpn-wireguard`
### Клиент не получает IP
1. Проверьте конфигурацию: `sudo wg show`
2. Перезапустите VPN на сервере
---
## 📊 Мониторинг
### Просмотр активных подключений
```bash
ssh hunab-prod "docker exec hunab-vpn-wireguard wg show"
```
### Просмотр трафика
```bash
ssh hunab-prod "docker exec hunab-vpn-wireguard wg show wg0 transfer"
```
---
## 📝 Примечания
- **Порт:** UDP 51820 (можно изменить)
- **Сеть VPN:** 10.13.13.0/24 (можно изменить)
- **Контейнер:** `hunab-vpn-wireguard`
- **Конфигурация:** `/opt/app/vpn/wireguard/config/`
---
## 🔗 Полезные ссылки
- [WireGuard Official](https://www.wireguard.com/)
- [WireGuard Docker Image](https://github.com/linuxserver/docker-wireguard)
- [WireGuard Client Apps](https://www.wireguard.com/install/)
---
**Версия:** 2.0
**Дата:** 2025-01-XX

View File

@@ -0,0 +1,167 @@
# 🚀 WireGuard VPN на российском сервере (ru.hunab.app)
## 📋 Обзор
Развертывание WireGuard VPN на российском прокси-сервере для доступа из России.
**Сервер:** 149.154.64.19 (ru.hunab.app)
**ОС:** Ubuntu 24.10
**Архитектура:** Docker-based deployment
---
## 🎯 Архитектура решения
```
[Android/iPhone]
[WireGuard Client]
[ru.hunab.app:51820] ← Российский сервер 149.154.64.19 (доступен из РФ)
[209.38.32.21] ← Основной VPN сервер (опционально через туннель)
[Интернет]
```
**Преимущества:**
- ✅ Доступен из России (российский IP)
- ✅ Стандартный WireGuard протокол
- ✅ Работает на всех платформах
-Не требует специальных клиентов
- ✅ Элегантная архитектура
---
## 🔧 Развертывание на российском сервере
### Автоматическое развертывание
```bash
# Подключитесь к российскому серверу
ssh ahau@149.154.64.19
# Пароль: w99z2fBSkO4gU
# Создайте директории
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
# Разверните WireGuard через Docker
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
```
### Настройка Firewall
```bash
# Откройте порт WireGuard
sudo ufw allow 51820/udp comment 'WireGuard VPN RU'
sudo ufw reload
```
### Проверка развертывания
```bash
# Проверка контейнера
docker ps | grep wireguard
# Просмотр логов
docker logs hunab-vpn-wireguard-ru
# Проверка конфигурации клиента
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
```
---
## 📱 Получение конфигурации для Android
### Способ 1: Скачать с сервера
```bash
# С вашего компьютера
scp ahau@149.154.64.19:/opt/app/vpn/wireguard/config/peer1/peer1.conf ./wg-ru.conf
```
### Способ 2: Просмотреть и скопировать
```bash
ssh ahau@149.154.64.19 "cat /opt/app/vpn/wireguard/config/peer1/peer1.conf"
```
---
## 🔄 Альтернатива: Туннелирование через российский сервер
Если не хотите разворачивать отдельный WireGuard на российском сервере, можно настроить туннелирование:
### Вариант A: WireGuard через SSH туннель
```bash
# На вашем компьютере создайте SSH туннель
ssh -L 51820:209.38.32.21:51820 -N ahau@149.154.64.19
# В конфигурации WireGuard измените Endpoint:
# Endpoint = 127.0.0.1:51820
```
### Вариант B: WireProxy (если нужен SOCKS5)
WireProxy позволяет использовать WireGuard через SOCKS5 прокси, но требует установки дополнительного ПО на клиенте.
---
## 📊 Сравнение вариантов
| Критерий | Вариант 1 (WireGuard на RU) | Вариант 2 (SSH туннель) |
|----------|----------------------------|-------------------------|
| **Простота** | ✅ Просто | ⚠️ Требует SSH туннель |
| **Производительность** | ✅ Высокая | ⚠️ Средняя |
| **Мобильность** | ✅ Работает везде | ❌ Требует SSH клиент |
| **Надежность** | ✅ Стабильно | ⚠️ Зависит от SSH |
| **Рекомендация** | ✅ **Лучший выбор** | Для временного решения |
---
## 🎯 Рекомендуемое решение
**Развернуть WireGuard на российском сервере (Вариант 1)** - это самое элегантное и надежное решение:
1. ✅ Стандартный протокол WireGuard
2. ✅ Работает на всех устройствах (Android, iOS, macOS, Windows)
3.Не требует дополнительных туннелей
4. ✅ Высокая производительность
5. ✅ Простая настройка клиентов
---
## 📝 Следующие шаги
1. Разверните WireGuard на `149.154.64.19`
2. Получите конфигурацию клиента
3. Импортируйте в WireGuard на Android
4. Проверьте подключение
---
## 🔗 Связанная документация
- [WireGuard общее руководство](./WIREGUARD.md)
- [Доступ к российскому серверу](./RU_PROXY_SERVER_ACCESS.md)
- [Оптимизация хотспота](../hotspot/HOTSPOT_OPTIMIZATION.md)

View File

@@ -0,0 +1,83 @@
#!/bin/bash
# Быстрое развертывание WireGuard на 149.154.64.19
# Использование: ./docs/vpn/deploy-now.sh
set -e
SERVER="ahau@149.154.64.19"
PASSWORD="w99z2fBSkO4gU"
echo "🚀 Развертывание WireGuard на ru.hunab.app (149.154.64.19)"
echo "📝 Пароль: $PASSWORD"
echo ""
echo "Выполняю команду на сервере..."
echo "Пожалуйста, введите пароль когда потребуется: $PASSWORD"
echo ""
ssh $SERVER << 'EOF'
set -e
echo "1. Создание директорий..."
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
echo "2. Остановка старых контейнеров..."
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
echo "3. Запуск 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
echo "4. Ожидание создания конфигурации (45 секунд)..."
sleep 45
echo "5. Настройка Firewall..."
sudo ufw allow 51820/udp comment 'WireGuard VPN RU' 2>/dev/null || true
sudo ufw reload 2>/dev/null || true
echo ""
echo "✅ Развертывание завершено!"
echo ""
echo "=== КОНФИГУРАЦИЯ КЛИЕНТА ==="
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
echo "==========================="
EOF
echo ""
echo "📥 Теперь получаю конфигурацию..."
scp $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 "📱 Импортируйте файл RuVPN.conf в WireGuard на телефоне!"
echo ""
cat docs/vpn/RuVPN.conf
else
echo ""
echo "⚠️ Не удалось скопировать конфигурацию автоматически"
echo "Выполните вручную:"
echo " scp $SERVER:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/RuVPN.conf"
fi

View File

@@ -0,0 +1,64 @@
#!/bin/bash
echo "=== СТАТУС ПРОКСИ ==="
echo ""
# Проверка Shadowsocks
echo "1. Shadowsocks сервис:"
if launchctl list | grep -q shadowsocks; then
echo " ✅ Запущен"
else
echo " ❌ Не запущен"
fi
# Проверка порта
echo ""
echo "2. Порт 1080:"
if lsof -i :1080 | grep -q LISTEN; then
echo " ✅ Слушает"
else
echo " ❌ Не слушает"
fi
# Проверка системного прокси
echo ""
echo "3. Системный прокси:"
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
PROXY_STATUS=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Enabled:" | awk '{print $2}')
if [ "$PROXY_STATUS" = "Yes" ]; then
SERVER=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Server:" | awk '{print $2}')
PORT=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Port:" | awk '{print $2}')
echo " ✅ Включен: $SERVER:$PORT"
else
echo " ❌ Выключен"
fi
# Проверка через curl
echo ""
echo "4. Тест подключения:"
SS_IP=$(curl -s --socks5 127.0.0.1:1080 --max-time 5 ifconfig.me 2>/dev/null)
DIRECT_IP=$(curl -s --max-time 5 ifconfig.me 2>/dev/null)
if [ -n "$SS_IP" ]; then
echo " Через Shadowsocks: $SS_IP"
if [ "$SS_IP" = "209.38.32.21" ]; then
echo " ✅ Правильный IP"
else
echo " ⚠️ Неправильный IP"
fi
else
echo " ❌ Shadowsocks не отвечает"
fi
if [ -n "$DIRECT_IP" ]; then
echo " Прямое подключение: $DIRECT_IP"
fi
echo ""
echo "=== РЕКОМЕНДАЦИИ ==="
if [ "$PROXY_STATUS" != "Yes" ]; then
echo "❌ Включите системный прокси: toggle-shadowsocks-proxy.sh"
fi
if [ -z "$SS_IP" ] || [ "$SS_IP" != "209.38.32.21" ]; then
echo "❌ Shadowsocks не работает, проверьте: launchctl list | grep shadowsocks"
fi

View File

@@ -0,0 +1,61 @@
#!/bin/bash
# Простые команды для развертывания WireGuard на ru.hunab.app
# Выполните эти команды в SSH сеансе на сервере
echo "=== Шаг 1: Создание директорий ==="
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
echo "✅ Готово"
echo ""
echo "=== Шаг 2: Остановка старых контейнеров ==="
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
echo "✅ Готово"
echo ""
echo "=== Шаг 3: Запуск 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
echo "✅ Контейнер запущен"
echo ""
echo "=== Шаг 4: Ожидание создания конфигурации (45 секунд) ==="
sleep 45
echo ""
echo "=== Шаг 5: Настройка Firewall ==="
sudo ufw allow 51820/udp comment 'WireGuard VPN RU'
sudo ufw reload
echo "✅ Готово"
echo ""
echo "=== Шаг 6: Проверка статуса ==="
docker ps | grep wireguard
echo ""
echo "=== Шаг 7: Конфигурация клиента ==="
echo "---"
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
echo "---"
echo ""
echo "✅ Готово! Скопируйте конфигурацию выше в файл wg-ru.conf"

View File

@@ -0,0 +1,65 @@
#!/bin/bash
# Инструкция для ручного развертывания WireGuard на ru.hunab.app
# Скопируйте и выполните эти команды на российском сервере
echo "=== Команды для развертывания WireGuard на ru.hunab.app ==="
echo ""
echo "1. Подключитесь к серверу:"
echo " ssh ahau@149.154.64.19"
echo " Пароль: w99z2fBSkO4gU"
echo ""
echo "2. Выполните следующие команды на сервере:"
echo ""
cat << 'COMMANDS'
# Создание директорий
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
# Остановка и удаление существующего контейнера (если есть)
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
# Запуск 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
# Ожидание создания конфигурации
echo "Ожидание 30 секунд..."
sleep 30
# Настройка Firewall
sudo ufw allow 51820/udp comment 'WireGuard VPN RU'
sudo ufw reload
# Проверка статуса
docker ps | grep wireguard
# Просмотр конфигурации клиента
echo "=== Конфигурация клиента ==="
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
COMMANDS
echo ""
echo "3. После выполнения команд на сервере, скопируйте конфигурацию:"
echo " scp ahau@149.154.64.19:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/wg-ru.conf"
echo ""
echo " Или просмотрите и скопируйте вручную:"
echo " ssh ahau@149.154.64.19 'cat /opt/app/vpn/wireguard/config/peer1/peer1.conf'"

View File

@@ -0,0 +1,89 @@
#!/bin/bash
# Скрипт развертывания WireGuard на российском сервере ru.hunab.app
set -e
echo "=== Развертывание WireGuard на ru.hunab.app ==="
echo ""
# Параметры подключения
RU_SERVER="ahau@149.154.64.19"
RU_IP="149.154.64.19"
echo "1. Подключение к серверу $RU_SERVER..."
echo " (Введите пароль: w99z2fBSkO4gU)"
echo ""
# Создание директорий
ssh $RU_SERVER << 'EOF'
set -e
echo "2. Создание директорий..."
sudo mkdir -p /opt/app/vpn/wireguard/config
sudo chown -R ahau:ahau /opt/app/vpn
echo " ✅ Директории созданы"
echo ""
echo "3. Проверка существующих контейнеров..."
if docker ps -a | grep -q hunab-vpn-wireguard-ru; then
echo " ⚠️ Контейнер уже существует, останавливаем..."
docker stop hunab-vpn-wireguard-ru 2>/dev/null || true
docker rm hunab-vpn-wireguard-ru 2>/dev/null || true
fi
echo ""
echo "4. Запуск 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
echo " ✅ Контейнер запущен"
echo ""
echo "5. Ожидание создания конфигурации (30 секунд)..."
sleep 30
echo ""
echo "6. Настройка Firewall..."
sudo ufw allow 51820/udp comment 'WireGuard VPN RU' 2>/dev/null || true
sudo ufw reload 2>/dev/null || true
echo " ✅ Firewall настроен"
echo ""
echo "7. Проверка статуса..."
docker ps | grep wireguard || echo " ⚠️ Контейнер не найден в списке"
echo ""
echo "8. Конфигурация клиента:"
echo "---"
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf 2>/dev/null || echo " ⚠️ Конфигурация еще не создана, подождите еще 30 секунд"
echo "---"
EOF
echo ""
echo "✅ Развертывание завершено!"
echo ""
echo "Следующие шаги:"
echo "1. Скопируйте конфигурацию:"
echo " scp $RU_SERVER:/opt/app/vpn/wireguard/config/peer1/peer1.conf docs/vpn/wg-ru.conf"
echo ""
echo "2. Или просмотрите конфигурацию:"
echo " ssh $RU_SERVER 'cat /opt/app/vpn/wireguard/config/peer1/peer1.conf'"

View File

@@ -0,0 +1,71 @@
#!/bin/bash
echo "=== ВКЛЮЧЕНИЕ SHADOWSOCKS ДЛЯ ВСЕГО ТРАФИКА ==="
echo ""
# 1. Убедиться, что Shadowsocks запущен
echo "1. Проверка Shadowsocks..."
if ! launchctl list | grep -q shadowsocks; then
echo " Запуск Shadowsocks..."
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
sleep 3
fi
if launchctl list | grep -q shadowsocks; then
echo " ✅ Shadowsocks запущен"
else
echo " ❌ Ошибка: Shadowsocks не запускается"
exit 1
fi
# 2. Проверка работы
echo ""
echo "2. Проверка подключения..."
SS_IP=$(curl -s --socks5 127.0.0.1:1080 --max-time 5 ifconfig.me 2>/dev/null)
if [ "$SS_IP" = "209.38.32.21" ]; then
echo " ✅ Shadowsocks работает: IP = $SS_IP"
else
echo " ❌ Shadowsocks не работает правильно"
echo " Проверьте логи: tail -f /tmp/shadowsocks.error.log"
exit 1
fi
# 3. Настройка системного прокси
echo ""
echo "3. Настройка системного прокси..."
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
echo " Интерфейс: $INTERFACE"
# Установить прокси
networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
sleep 1
# Включить прокси
networksetup -setsocksfirewallproxystate "$INTERFACE" on
sleep 1
# Проверка
PROXY_STATUS=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Enabled:" | awk '{print $2}')
if [ "$PROXY_STATUS" = "Yes" ]; then
SERVER=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Server:" | awk '{print $2}')
PORT=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Port:" | awk '{print $2}')
echo " ✅ Системный прокси включен: $SERVER:$PORT"
else
echo " ❌ Ошибка: Системный прокси не включен"
echo " Попробуйте вручную: System Settings → Network → Proxies"
exit 1
fi
echo ""
echo "✅ SHADOWSOCKS ВКЛЮЧЕН ДЛЯ ВСЕГО ТРАФИКА!"
echo ""
echo "📋 ВАЖНО:"
echo "1. ОТКЛЮЧИТЕ Chrome VPN расширение (если активно)"
echo "2. ПОЛНОСТЬЮ закройте Chrome (Cmd+Q, не просто закрыть окно)"
echo "3. Откройте Chrome заново"
echo "4. Проверьте IP: https://whatismyipaddress.com/"
echo " Должен показать: 209.38.32.21"
echo ""
echo "💡 Если не работает, проверьте:"
echo " - Chrome Settings → System → Use system proxy settings"
echo " - Отключите все VPN расширения в Chrome"

View File

@@ -0,0 +1,54 @@
#!/bin/bash
echo "=== ИСПРАВЛЕНИЕ SHADOWSOCKS ==="
echo ""
# 1. Проверка и перезапуск Shadowsocks
echo "1. Перезапуск Shadowsocks..."
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist 2>/dev/null
sleep 1
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
sleep 2
if launchctl list | grep -q shadowsocks; then
echo " ✅ Shadowsocks запущен"
else
echo " ❌ Ошибка запуска Shadowsocks"
exit 1
fi
# 2. Настройка системного прокси
echo ""
echo "2. Настройка системного прокси..."
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
networksetup -setsocksfirewallproxystate "$INTERFACE" on
PROXY_STATUS=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Enabled:" | awk '{print $2}')
if [ "$PROXY_STATUS" = "Yes" ]; then
echo " ✅ Системный прокси включен"
else
echo " ❌ Ошибка настройки прокси"
exit 1
fi
# 3. Проверка
echo ""
echo "3. Проверка подключения..."
sleep 2
SS_IP=$(curl -s --socks5 127.0.0.1:1080 --max-time 5 ifconfig.me 2>/dev/null)
if [ -n "$SS_IP" ] && [ "$SS_IP" = "209.38.32.21" ]; then
echo " ✅ Shadowsocks работает: IP = $SS_IP"
echo ""
echo "✅ ВСЕ ИСПРАВЛЕНО!"
echo ""
echo "📋 Следующие шаги:"
echo "1. Полностью закройте Chrome (Cmd+Q)"
echo "2. Откройте Chrome заново"
echo "3. Проверьте IP: https://whatismyipaddress.com/"
echo " Должен показать: 209.38.32.21"
else
echo " ⚠️ Shadowsocks не отвечает правильно"
echo " Проверьте логи: tail -f /tmp/shadowsocks.error.log"
fi

View File

@@ -0,0 +1,21 @@
#!/bin/bash
# Скрипт для получения конфигурации WireGuard с ru.hunab.app
# Использование: ./get-wg-ru-config.sh
SERVER="ahau@149.154.64.19"
CONFIG_PATH="/opt/app/vpn/wireguard/config/peer1/peer1.conf"
OUTPUT_FILE="docs/vpn/wg-ru.conf"
echo "Получение конфигурации WireGuard с $SERVER..."
scp "$SERVER:$CONFIG_PATH" "$OUTPUT_FILE" 2>/dev/null
if [ -f "$OUTPUT_FILE" ] && [ -s "$OUTPUT_FILE" ]; then
echo "✅ Конфигурация получена: $OUTPUT_FILE"
echo ""
echo "=== Содержимое конфигурации ==="
cat "$OUTPUT_FILE"
else
echo "⚠️ Конфигурация не найдена на сервере"
echo "Сначала выполните развертывание на сервере:"
echo " cat docs/vpn/ONE_LINE_DEPLOY.txt | ssh $SERVER"
fi

View File

@@ -0,0 +1,23 @@
#!/bin/bash
# Скрипт для переключения системного прокси Shadowsocks
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
CURRENT_STATE=$(networksetup -getsocksfirewallproxy "$INTERFACE" | grep "Enabled:" | awk '{print $2}')
if [ "$CURRENT_STATE" = "Yes" ]; then
# Выключить прокси
networksetup -setsocksfirewallproxystate "$INTERFACE" off
echo "❌ Shadowsocks прокси ВЫКЛЮЧЕН"
echo " Теперь можно использовать Chrome VPN"
else
# Включить прокси
networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
networksetup -setsocksfirewallproxystate "$INTERFACE" on
echo "✅ Shadowsocks прокси ВКЛЮЧЕН"
echo " IP: 209.38.32.21"
fi
echo ""
echo "Текущий статус:"
networksetup -getsocksfirewallproxy "$INTERFACE"

View File

@@ -0,0 +1,16 @@
#!/bin/bash
# Скопируйте и выполните эту команду в SSH сеансе на ru.hunab.app
sudo mkdir -p /opt/app/vpn/wireguard/config && sudo chown -R ahau:ahau /opt/app/vpn && \
docker stop hunab-vpn-wireguard-ru 2>/dev/null; docker rm hunab-vpn-wireguard-ru 2>/dev/null; \
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 && \
echo "Ожидание 45 секунд..." && sleep 45 && \
sudo ufw allow 51820/udp comment 'WireGuard VPN RU' && sudo ufw reload && \
echo "=== КОНФИГУРАЦИЯ ===" && \
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf

View 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