Files
wg-easy/WG.md
T
2026-04-11 20:31:42 +03:00

162 lines
5.5 KiB
Markdown

🚀 Быстрый старт
### 1️⃣ Установка Docker (если не установлен)
```bash
# Для Ubuntu/Debian
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER && newgrp docker
```
### 2️⃣ Создание рабочей директории
```bash
mkdir -p ~/wg-easy && cd ~/wg-easy
```
### 3️⃣ Запуск контейнера
```bash
docker run -d \
--name=wg-easy \
-e WG_HOST=ВАШ_ПУБЛИЧНЫЙ_IP \
-e PASSWORD_HASH='$(docker run --rm ghcr.io/wg-easy/wg-easy password-hash ВАШ_ПАРОЛЬ)' \
-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 вашего сервера.
---
## ⚙️ Настройка окружения
### 🔐 Генерация хеша пароля
```bash
docker run --rm ghcr.io/wg-easy/wg-easy password-hash ваш_надёжный_пароль
```
Скопируйте полученный хеш и подставьте в параметр `PASSWORD_HASH`.
### 🌐 Переменные окружения
| Переменная | Обязательная | Описание | Пример |
|------------|--------------|----------|--------|
| `WG_HOST` | ✅ | Публичный IP сервера | `193.124.57.125` |
| `PASSWORD_HASH` | ✅ | Bcrypt-хеш пароля для веб-интерфейса | `$2a$12$...` |
| `WG_DEFAULT_DNS` | ❌ | DNS-серверы для клиентов | `8.8.8.8,8.8.4.4` |
| `WG_MTU` | ❌ | MTU для WireGuard-интерфейса | `1420` |
| `WG_ALLOWED_IPS` | ❌ | Разрешённые подсети | `192.168.1.0/24` |
| `WG_PERSISTENT_KEEPALIVE` | ❌ | Интервал keepalive (сек) | `25` |
> 💡 Полный список переменных: [wg-easy Environment Variables](https://github.com/wg-easy/wg-easy#environment-variables)
---
## 🎛️ Управление контейнером
```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
# 🗑️ Удаление контейнера (данные в volume сохранятся)
docker rm -f wg-easy
# 🔄 Обновление образа
docker pull ghcr.io/wg-easy/wg-easy
docker stop wg-easy && docker rm wg-easy
# Затем повторите команду запуска из раздела "Быстрый старт"
```
### 📁 Расположение данных
```
~/wg-easy/data/
├── wg0.conf # Конфигурация сервера WireGuard
└── clients/ # Конфигурации клиентов (.conf файлы)
```
> 💾 Регулярно делайте бэкап этой директории!
---
## 📱 Подключение клиентов
### Через веб-интерфейс
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/Linux** | Установите `wireguard-tools`, скопируйте `.conf` в `~/.wireguard/`, запустите `wg-quick up wg0` |
---
## 🔒 Безопасность
### ✅ Рекомендации
- Используйте **надёжный пароль** для веб-интерфейса
- Настройте **Fail2Ban** для защиты от брутфорса:
```bash
sudo apt install fail2ban -y
```
- Ограничьте доступ к порту `51821` по IP (если возможно):
```bash
# Пример для UFW (разрешить только с доверенного IP)
sudo ufw allow from 203.0.113.10 to any port 51821 proto tcp
```
- Регулярно обновляйте Docker-образ:
```bash
watchtower или ручной docker pull + restart
```
### 🛡️ Настройка фаервола
```bash
# UFW (Ubuntu/Debian)
sudo ufw allow 51820/udp # WireGuard трафик
sudo ufw allow 51821/tcp # Веб-интерфейс (опционально ограничить по IP)
sudo ufw enable
# firewalld (CentOS/RHEL)
sudo firewall-cmd --add-port=51820/udp --permanent
sudo firewall-cmd --add-port=51821/tcp --permanent
sudo firewall-cmd --reload
```
---