Обновить README.md

This commit is contained in:
2026-04-12 00:13:08 +03:00
parent 45683348cf
commit b841416c7f
+213
View File
@@ -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` на хосте |
| Ошибка хеша пароля | Убедитесь, что хеш обёрнут в **одинарные** кавычки |