как запустить wireguard на linux
как запустить wireguard на linux
Как запустить WireGuard на Linux: без воды и с защитой от утечек
Подробный гайд: как запустить wireguard на linux за 10 минут. Настройка, проверка утечек, скрытые риски и сравнение с OpenVPN/IPsec.
как запустить wireguard на linux — задача, которая кажется сложной только до первого запуска. На деле всё сводится к трём командам, одному конфигу и паре проверок на утечки. Но именно эти проверки спасут вас от того, чтобы «думать, что вы в туннеле», когда ваш IP светится на торрент-трекере или в логах Ростелекома.
Почему WireGuard — не просто «ещё один протокол»
WireGuard появился в 2015 году как ответ на раздутость IPsec и медлительность OpenVPN. Его код — всего 4 000 строк против 400 000 у IPsec. Это значит меньше багов, меньше уязвимостей и проще аудит.
Основные особенности:
- Шифрование: ChaCha20 для данных, Poly1305 для аутентификации, Curve25519 для обмена ключами.
- Perfect Forward Secrecy — каждая сессия использует уникальные ключи. Даже если кто-то перехватил ваш трафик сегодня, расшифровать его через год невозможно.
- Нет состояния подключения — в отличие от OpenVPN, WireGuard не держит «сессию». Он шифрует каждый пакет независимо. Это ускоряет восстановление после потери связи (например, при переходе с Wi-Fi на мобильную сеть).
- Встроен в ядро Linux с версии 5.6 — работает на уровне ядра, а не в userspace. Это даёт минимум накладных расходов: +3–7 мс к пингу и 95–98% от исходной скорости канала.
Для сравнения: OpenVPN поверх UDP обычно «съедает» 10–15% пропускной способности даже на мощном железе. А IPsec — это кошмар администратора: IKEv1/IKEv2, сертификаты, политики безопасности.
Пошаговая настройка: от нуля до рабочего туннеля
Важно: инструкция ниже подходит для Ubuntu 22.04+, Debian 11+, Fedora 36+ и других дистрибутивов с поддержкой ядра ≥5.6. Для старых систем потребуется установка модуля из backports.
Шаг 1. Установка WireGuard
Ubuntu / Debian
sudo apt update && sudo apt install wireguard resolvconf -y
Fedora / RHEL
sudo dnf install wireguard-tools
Arch Linux
sudo pacman -S wireguard-tools
Пакет resolvconf нужен для корректной подстановки DNS-серверов (иначе возможны утечки через провайдерский DNS).
Шаг 2. Генерация ключей
WireGuard использует асимметричную криптографию. Вам нужны:
- Приватный ключ — хранится только у вас.
- Публичный ключ — передаётся серверу.
Создаём директорию (если её нет)
sudo mkdir -p /etc/wireguard
Генерируем ключи
cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
Команда umask 077 гарантирует, что файлы будут доступны только root’у. Любой другой пользователь не сможет прочитать приватный ключ.
Шаг 3. Создание конфига клиента
Создайте файл /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = ваш_приватный_ключ_из_/etc/wireguard/privatekey
Address = 10.8.0.2/24
DNS = 1.1.1.1, 8.8.8.8
[Peer]
PublicKey = публичный_ключ_сервера_WireGuard
Endpoint = 192.0.2.1:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Разберём параметры:
Address— внутренний IP в туннеле. Сервер обычно использует10.8.0.1/24.DNS— указывайте надёжные DNS (Cloudflare, Google). Без этого браузер может использовать DNS провайдера → утечка.AllowedIPs = 0.0.0.0/0— весь трафик идёт через VPN. Если нужно split tunneling (только определённые сайты), укажите их:AllowedIPs = 93.184.216.34/32.PersistentKeepalive = 25— отправляет keepalive-пакет каждые 25 секунд. Критично для NAT’ов (например, домашние роутеры МТС или Билайн).
Шаг 4. Запуск и автозагрузка
Применяем конфиг
sudo wg setconf wg0 /etc/wireguard/wg0.conf
Поднимаем интерфейс
sudo ip link set up dev wg0
Проверяем статус
wg show wg0
Если всё работает — добавьте автозагрузку:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Готово. Теперь весь трафик идёт через WireGuard.
Чего вам НЕ говорят в других гайдах
Большинство инструкций заканчиваются на systemctl start. Но реальные риски начинаются после запуска.
- «Бесплатные» WireGuard-сервисы — это сбор данных
Сервер WireGuard стоит от $5/мес в облаке (Hetzner, OVH). Если сервис «бесплатный» — он зарабатывает на вас. Как?
- Логирование IP и времени подключения (даже без «активности» — этого достаточно для идентификации).
- Подмена рекламы в HTTP-трафике.
- Продажа метаданных третьим лицам (например, аналитическим фирмам).
В 2023 году исследователи обнаружили, что Hola VPN (позиционировавшийся как «P2P-прокси») использовал пользователей как выходные узлы для корпоративных клиентов — без согласия.
- Kill switch может не работать
Многие думают: «раз туннель упал — интернет отключился». Но это не так, если не настроить правила iptables.
Без дополнительных правил при обрыве соединения трафик пойдёт напрямую через провайдера. Особенно опасно при торрент-загрузках.
Решение — блокировать весь исходящий трафик, кроме туннеля:
Блокируем всё, кроме loopback и wg0
sudo iptables -P OUTPUT DROP
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A OUTPUT -o wg0 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 51820 -j ACCEPT # для подключения к серверу
Это настоящий kill switch. Но будьте осторожны: ошибка в правилах = потеря интернета.
- DNS/WebRTC — главные источники утечек
Даже при работающем WireGuard:
- Браузер может использовать WebRTC для определения реального IP (проверьте на browserleaks.com/webrtc).
- Система может игнорировать DNS из конфига и использовать DHCP-сервер от роутера.
Как проверить:
- Откройте ipleak.net — должен показывать IP и DNS сервера WireGuard.
- В Firefox:
Настройки → Приватность → Отключить WebRTC. -
В Chrome — установите расширение uBlock Origin (в настройках есть опция блокировки WebRTC).
-
Юрисдикция имеет значение
Если сервер WireGuard находится в стране «14 Eyes» (США, Великобритания, Австралия и др.), владелец обязан выдавать данные по запросу спецслужб. Даже при «no-log policy».
В России действует закон о хранении данных. Поэтому размещение сервера внутри РФ — риск: провайдер обязан сохранять трафик 6 месяцев.
Идеальный вариант — юрисдикция вне 14 Eyes и без обязательного логирования (Швейцария, Исландия, Панама).
WireGuard против OpenVPN и IPsec: техническое сравнение
| Критерий | WireGuard | OpenVPN | IPsec (IKEv2) |
|---|---|---|---|
| Шифрование | ChaCha20/Poly1305 | AES-256-CBC/GCM | AES-256 + SHA2 |
| Размер кодовой базы | ~4 000 строк | ~100 000 строк | ~400 000 строк |
| Аудиты безопасности | Cure53 (2017, 2020) | Quarkslab (2021) | Нет независимых аудитов |
| Поддержка PFS | Да | Только с TLS 1.3 | Да |
| Скорость (на 1 Гбит/с) | 950–980 Мбит/с | 800–850 Мбит/с | 750–900 Мбит/с |
| Устойчивость к DPI | Высокая (UDP, минимум сигнатур) | Средняя (можно замаскировать под TLS) | Низкая (IKE легко детектируется) |
WireGuard побеждает по скорости, простоте и устойчивости к глубокой проверке пакетов (DPI). Российские провайдеры (например, Ростелеком) активно используют DPI для блокировки OpenVPN. WireGuard же выглядит как обычный UDP-трафик — его сложнее заблокировать без ложных срабатываний.
Сценарии использования: когда WireGuard действительно нужен
- Торренты в публичной сети
Если вы скачиваете торренты через Wi-Fi в кафе — ваш IP виден всем участникам раздачи. WireGuard скроет его. Но помните: торрент-клиент должен использовать DNS из туннеля, иначе возможна утечка через tracker’ы.
- Обход блокировок
Telegram, YouTube и некоторые новостные сайты периодически блокируются в РФ. WireGuard позволяет обойти такие ограничения, особенно если сервер находится за границей. Однако учтите: использование VPN для доступа к запрещённым ресурсам может нарушать местное законодательство.
- Защита в корпоративной среде
IT-специалисты часто подключаются к внутренним серверам из дома. WireGuard идеален для site-to-site туннелей: минимальная задержка, простая настройка, поддержка IPv6.
- Путешествия и роуминг
При подключении к публичному Wi-Fi в аэропорту ваш трафик может перехватываться. WireGuard шифрует всё — от почты до банковских приложений.
Split tunneling: как направить только часть трафика в туннель
Иногда не хочется гнать весь трафик через зарубежный сервер (например, для стриминга Netflix или онлайн-банка). Тогда используйте split tunneling.
Пример: пускать через VPN только трафик к example.com.
-
Узнайте IP-адрес сайта:
bash dig +short example.com # Допустим, получил 93.184.216.34 -
Измените
AllowedIPsв конфиге:
ini AllowedIPs = 93.184.216.34/32 -
Перезапустите интерфейс:
bash sudo wg setconf wg0 /etc/wireguard/wg0.conf
Теперь только запросы к этому IP пойдут через туннель. Остальное — напрямую.
Для продвинутых: можно использовать nftables или iptables для маршрутизации по доменам, но это требует DNS-прокси (например, dnsmasq).
Диагностика: как убедиться, что всё работает
-
Проверка интерфейса:
bash ip a show wg0 wg show -
Проверка маршрута:
bash ip route get 8.8.8.8 # Должен показать dev wg0 -
Проверка утечек:
- ipleak.net — IP, DNS, WebRTC.
-
dnsleaktest.com — тест DNS.
-
Тест скорости:
bash curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Сравните скорость с и без VPN. Потеря более 15% — сигнал: возможно, сервер перегружен или находится далеко.
VPN замедляет интернет на сколько реально?
WireGuard снижает скорость на 2–5% при хорошем сервере. OpenVPN — на 10–20%. Задержка (пинг) растёт на 5–15 мс в зависимости от географии сервера. Если потеря больше — проблема в провайдере или перегрузке сервера.
Меня найдёт спецслужба при использовании VPN?
Если вы используете легальный, проверенный сервис с no-log policy и сервером вне юрисдикции 14 Eyes — шансов почти нет. Но если вы скачиваете пиратский контент через торренты с включённым клиентом до подключения к VPN — ваш IP уже в логах трекера. Анонимность начинается до запуска туннеля.
WireGuard или OpenVPN — что безопаснее?
С точки зрения криптографии — оба используют современные алгоритмы. Но WireGuard проще, меньше кода = меньше уязвимостей. OpenVPN сложнее настроить правильно (особенно с TLS и сертификатами). WireGuard безопаснее по умолчанию.
Можно ли запустить WireGuard на роутере Keenetic или Asus?
Да, но не на всех моделях. Keenetic требует прошивку NDMS v2 с поддержкой Entware. Asus — только на моделях с Merlin-прошивкой. Лучше проверить совместимость на форумах 4pda.ru. Альтернатива — поставить Raspberry Pi с OpenWrt между роутером и сетью.
Что делать, если WireGuard не подключается?
Проверьте: 1) открыт ли порт 51820/UDP на сервере (ufw allow 51820/udp); 2) правильный ли PublicKey у Peer; 3) нет ли блокировки со стороны провайдера (попробуйте другой порт, например 53 — DNS). Используйте wg show и journalctl -u wg-quick@wg0 для диагностики.
Нужен ли мне статический IP для сервера WireGuard?
Желательно, но не обязательно. Можно использовать Dynamic DNS (например, DuckDNS) и включить PersistentKeepalive. Однако при частой смене IP возможны кратковременные разрывы.
Вывод
как запустить wireguard на linux — вопрос, на который вы теперь знаете ответ не только на уровне команд, но и на уровне рисков. Вы умеете генерировать ключи, настраивать split tunneling, блокировать утечки DNS и WebRTC, а главное — понимаете, почему бесплатные сервисы опасны и как работает настоящий kill switch. WireGuard — это не волшебная таблетка, а инструмент. Его эффективность зависит от того, как вы его используете. Проверяйте утечки, выбирайте серверы вне 14 Eyes, не доверяйте «no-log» без аудита — и тогда ваш трафик останется вашим.
This reads like a checklist, which is perfect for mobile app safety. The explanation is clear without overpromising anything.