Установка WireGuard VPN на VPS. Свой VPN без панелей за 3 минуты
Почему WireGuard
WireGuard это самый быстрый и простой VPN-протокол. Сравнение с альтернативами:
| Параметр | WireGuard | OpenVPN | IPSec |
|---|---|---|---|
| Скорость | Максимальная | Средняя | Средняя |
| Код | ~4 000 строк | ~100 000 строк | ~400 000 строк |
| Шифрование | ChaCha20, Curve25519 | OpenSSL | Разное |
| Настройка | Простая | Сложная | Сложная |
| Встроен в ядро Linux | Да | Нет | Частично |
WireGuard работает на уровне ядра Linux, поэтому показывает скорость, близкую к максимальной пропускной способности канала.
Быстрая установка через скрипт (рекомендуется)
Самый простой способ: интерактивный скрипт, который всё настроит за вас:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh
Скрипт спросит:
- IPv4-адрес сервера, подтвердите автоматически определённый
- Порт, можно оставить стандартный
51820или указать свой - DNS, рекомендуется
1.1.1.1(Cloudflare) или8.8.8.8(Google) - Имя клиента, название для первого подключения
После завершения скрипт сгенерирует QR-код для подключения с телефона и конфигурационный файл.
Добавление новых клиентов
Запустите скрипт повторно:
./wireguard-install.sh
Выберите Add a new client и введите имя.
Ручная установка WireGuard
Установка пакетов
apt update
apt install wireguard -y
Генерация ключей сервера
cd /etc/wireguard
wg genkey | tee server_private.key | wg pubkey > server_public.key
chmod 600 server_private.key
Конфигурация сервера
Создайте /etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <содержимое server_private.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32
Включение IP-форвардинга
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Запуск WireGuard
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Открытие порта
ufw allow 51820/udp
Конфигурация клиента
Генерация ключей клиента
wg genkey | tee client_private.key | wg pubkey > client_public.key
Файл конфигурации клиента
[Interface]
Address = 10.0.0.2/24
PrivateKey = <содержимое client_private.key>
DNS = 1.1.1.1
[Peer]
PublicKey = <содержимое server_public.key>
Endpoint = <IP_сервера>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Клиенты для подключения
| Платформа | Приложение |
|---|---|
| Windows | WireGuard (официальный) |
| macOS | WireGuard (App Store) |
| Linux | apt install wireguard |
| Android | WireGuard (Google Play) |
| iOS | WireGuard (App Store) |
Для подключения импортируйте конфигурационный файл или отсканируйте QR-код.
Полезные команды
# Статус WireGuard
wg show
# Перезапуск
systemctl restart wg-quick@wg0
# Остановка
systemctl stop wg-quick@wg0
# Показать QR-код конфигурации клиента
qrencode -t ansiutf8 < /etc/wireguard/client.conf
WireGuard vs 3X-UI. Что выбрать
| WireGuard | 3X-UI (VLESS/VMess) | |
|---|---|---|
| Скорость | Максимальная | Чуть ниже |
| Обход DPI | Нет | Да (Reality) |
| Управление через веб | Нет | Да |
| Простота | Очень просто | Просто |
| Маскировка трафика | Нет | Да |
Итого: WireGuard берите, если нужна максимальная скорость и DPI не блокирует VPN. 3X-UI с VLESS+Reality, если нужен обход блокировок.
WireGuard использует фиксированный UDP-порт, который легко обнаруживается DPI. Для обхода блокировок в странах с жёсткой цензурой лучше использовать VLESS + Reality через 3X-UI.