Загрузить файлы в «/»
This commit is contained in:
+213
@@ -0,0 +1,213 @@
|
||||
# 🛡️ WireGuard Easy — Быстрый старт
|
||||
|
||||
> Простое развёртывание WireGuard VPN с веб-интерфейсом через Docker.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Требования
|
||||
|
||||
| Компонент | Минимум |
|
||||
|-----------|---------|
|
||||
| ОС | Ubuntu 20.04+ / Debian 11+ / CentOS 8+ |
|
||||
| CPU | 1 ядро |
|
||||
| RAM | 256 МБ |
|
||||
| Внешний IP | Статический (обязательно) |
|
||||
| Docker | 20.10+ |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### 1️⃣ Установка Docker
|
||||
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
apt update && apt upgrade -y
|
||||
apt install -y docker.io
|
||||
systemctl enable --now docker
|
||||
|
||||
# Проверка
|
||||
docker --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2️⃣ Создание рабочей директории
|
||||
|
||||
```bash
|
||||
mkdir -p ~/wg-easy && cd ~/wg-easy
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3️⃣ Генерация хеша пароля
|
||||
|
||||
> ⚠️ Сначала сгенерируйте хеш — он понадобится на следующем шаге.
|
||||
|
||||
```bash
|
||||
docker run --rm ghcr.io/wg-easy/wg-easy password-hash ВАШ_ПАРОЛЬ
|
||||
```
|
||||
|
||||
Скопируйте вывод (строку вида `$2b$12$...`) — это и есть `PASSWORD_HASH`.
|
||||
|
||||
---
|
||||
|
||||
### 4️⃣ Запуск контейнера
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name=wg-easy \
|
||||
-e WG_HOST=ВАШ_ПУБЛИЧНЫЙ_IP \
|
||||
-e PASSWORD_HASH='$2b$12$ВСТАВЬТЕ_ХЕШ_СЮДА' \
|
||||
-e WG_DEFAULT_DNS=8.8.8.8,8.8.4.4 \
|
||||
-v ~/wg-easy:/etc/wireguard \
|
||||
-p 51820:51820/udp \
|
||||
-p 51821:51821/tcp \
|
||||
--cap-add=NET_ADMIN \
|
||||
--cap-add=SYS_MODULE \
|
||||
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
|
||||
--sysctl="net.ipv4.ip_forward=1" \
|
||||
--restart unless-stopped \
|
||||
ghcr.io/wg-easy/wg-easy
|
||||
```
|
||||
|
||||
> **Замените:**
|
||||
> - `ВАШ_ПУБЛИЧНЫЙ_IP` — внешний IP вашего сервера
|
||||
> - `$2b$12$ВСТАВЬТЕ_ХЕШ_СЮДА` — хеш из шага 3
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Переменные окружения
|
||||
|
||||
| Переменная | Описание | По умолчанию |
|
||||
|------------|----------|--------------|
|
||||
| `WG_HOST` | Публичный IP или домен сервера | — |
|
||||
| `PASSWORD_HASH` | Bcrypt-хеш пароля для веб-интерфейса | — |
|
||||
| `WG_PORT` | UDP-порт WireGuard | `51820` |
|
||||
| `WG_DEFAULT_DNS` | DNS для клиентов | `1.1.1.1` |
|
||||
| `WG_DEFAULT_ADDRESS` | Подсеть клиентов | `10.8.0.x` |
|
||||
| `WG_ALLOWED_IPS` | Разрешённые IP для клиентов | `0.0.0.0/0` |
|
||||
| `UI_TRAFFIC_STATS` | Показывать статистику трафика | `false` |
|
||||
| `LANG` | Язык интерфейса (`ru`, `en` и др.) | `en` |
|
||||
|
||||
---
|
||||
|
||||
## 🎛️ Управление контейнером
|
||||
|
||||
```bash
|
||||
# Статус
|
||||
docker ps | grep wg-easy
|
||||
|
||||
# Логи
|
||||
docker logs wg-easy
|
||||
docker logs -f wg-easy # в реальном времени
|
||||
|
||||
# Перезапуск / Стоп / Старт
|
||||
docker restart wg-easy
|
||||
docker stop wg-easy
|
||||
docker start wg-easy
|
||||
|
||||
# Удаление контейнера (данные в ~/wg-easy/ сохранятся)
|
||||
docker rm -f wg-easy
|
||||
|
||||
# Обновление образа
|
||||
docker pull ghcr.io/wg-easy/wg-easy
|
||||
docker stop wg-easy && docker rm wg-easy
|
||||
# Затем повторите команду из шага 4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 Расположение данных
|
||||
|
||||
```
|
||||
~/wg-easy/
|
||||
├── wg0.conf # Конфигурация сервера WireGuard
|
||||
└── wg0.json # Данные клиентов (веб-интерфейс)
|
||||
```
|
||||
|
||||
> 💾 Регулярно делайте резервную копию этой директории!
|
||||
|
||||
```bash
|
||||
tar -czf wg-easy-backup-$(date +%F).tar.gz ~/wg-easy/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Подключение клиентов
|
||||
|
||||
### Через веб-интерфейс
|
||||
|
||||
1. Откройте в браузере: `http://ВАШ_IP:51821`
|
||||
2. Введите пароль, указанный при установке
|
||||
3. Нажмите **+ New Client**, задайте имя
|
||||
4. Получите конфиг:
|
||||
- 📥 **Download** — скачать файл `.conf`
|
||||
- 📷 **QR Code** — отсканировать камерой телефона
|
||||
|
||||
### Импорт в клиент WireGuard
|
||||
|
||||
| Платформа | Инструкция |
|
||||
|-----------|------------|
|
||||
| **Android** | [WireGuard](https://play.google.com/store/apps/details?id=com.wireguard.android) → «+» → «Импорт из файла / QR» |
|
||||
| **iOS** | [WireGuard](https://apps.apple.com/app/wireguard/id1441195209) → «+» → «Сканировать QR» или «Импортировать» |
|
||||
| **Windows** | [Скачать клиент](https://www.wireguard.com/install/) → «Import tunnel(s) from file» |
|
||||
| **macOS** | `brew install wireguard-tools` → скопировать `.conf`, запустить `wg-quick up wg0` |
|
||||
| **Linux** | `apt install wireguard` → скопировать `.conf` в `/etc/wireguard/`, запустить `wg-quick up wg0` |
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Безопасность
|
||||
|
||||
### ✅ Рекомендации
|
||||
|
||||
- Используйте **надёжный пароль** (12+ символов, буквы + цифры + спецсимволы)
|
||||
- Ограничьте доступ к веб-интерфейсу по IP
|
||||
- Регулярно обновляйте Docker-образ
|
||||
- Делайте резервные копии данных
|
||||
|
||||
### 🛡️ Настройка фаервола
|
||||
|
||||
```bash
|
||||
# UFW (Ubuntu/Debian)
|
||||
sudo ufw allow 51820/udp # WireGuard
|
||||
sudo ufw allow from 203.0.113.10 to any port 51821 proto tcp # Веб только с вашего IP
|
||||
sudo ufw enable
|
||||
sudo ufw status
|
||||
```
|
||||
|
||||
```bash
|
||||
# firewalld (CentOS/RHEL)
|
||||
sudo firewall-cmd --add-port=51820/udp --permanent
|
||||
sudo firewall-cmd --add-port=51821/tcp --permanent
|
||||
sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
### 🔐 Защита от брутфорса (Fail2Ban)
|
||||
|
||||
```bash
|
||||
sudo apt install fail2ban -y
|
||||
sudo systemctl enable --now fail2ban
|
||||
```
|
||||
|
||||
### 🔄 Автообновление образа (Watchtower)
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower \
|
||||
--cleanup --interval 86400 wg-easy
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❓ Частые проблемы
|
||||
|
||||
| Проблема | Решение |
|
||||
|----------|---------|
|
||||
| Контейнер не запускается | Проверьте `docker logs wg-easy` |
|
||||
| Клиенты не подключаются | Убедитесь, что порт `51820/udp` открыт в фаерволе |
|
||||
| Веб-интерфейс недоступен | Проверьте порт `51821/tcp` и правильность IP |
|
||||
| Нет интернета через VPN | Проверьте `net.ipv4.ip_forward=1` на хосте |
|
||||
| Ошибка хеша пароля | Убедитесь, что хеш обёрнут в **одинарные** кавычки |
|
||||
Reference in New Issue
Block a user