Настройка клиентов WireGuard на Windows, iOS, Android и роутере
Сервер WireGuard подняли — осталось подключить к нему устройства. Телефон удобнее настраивать по QR-коду, ПК — через приложение, а роутер прячет под VPN всю домашнюю сеть сразу. Разберём каждый случай отдельно, с готовыми конфигами.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Логика: один сервер — много клиентов
У сервера один конфиг wg0.conf. Каждое устройство — это отдельная секция [Peer] на сервере плюс свой конфиг на самом устройстве. Никогда не используйте одну пару ключей на два устройства: если оба подключатся с одним AllowedIPs, соединение будет рваться.
Схема адресов: сервер 10.8.0.1, ПК 10.8.0.2, телефон 10.8.0.3, планшет 10.8.0.4 и так далее. Заведите себе табличку соответствия «устройство — адрес — файл ключа»: когда клиентов станет пять-шесть, без неё легко запутаться, чей это [Peer].
Приятная деталь WireGuard: добавление клиента не требует перезапуска сервера и не рвёт уже поднятые туннели. Вы дописываете секцию и применяете конфиг на лету — остальные пользователи ничего не замечают.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для WireGuardГенерация ключей для нового клиента
Под каждое устройство создаём пару на сервере:
cd /etc/wireguard
umask 077
wg genkey | tee phone_private.key | wg pubkey > phone_public.key
Добавляем клиента в wg0.conf сервера и применяем без перезапуска туннеля:
[Peer]
PublicKey = PHONE_PUBLIC_KEY
AllowedIPs = 10.8.0.3/32
wg syncconf wg0 <(wg-quick strip wg0)
Windows и macOS
Ставите официальное приложение WireGuard, «Добавить пустой туннель» и вставляете конфиг. PrivateKey клиента, PublicKey сервера, Endpoint — IP:порт вашего VPS.
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Галочка «Активировать» — и весь трафик ПК идёт через сервер.
iOS и Android по QR-коду
На телефоне неудобно вставлять длинные ключи руками. Сгенерируйте QR прямо на сервере: положите конфиг телефона в файл и покажите его как код.
apt install qrencode -y
qrencode -t ansiutf8 < phone.conf
В приложении WireGuard на телефоне: «+» → «Создать из QR-кода» → наводите камеру на терминал. Конфиг phone.conf при этом такой же, как для ПК, только Address = 10.8.0.3/24.
- iOS: App Store → WireGuard.
- Android: Google Play или F-Droid → WireGuard.
Роутер: OpenWrt и Keenetic
Настроив VPN на роутере, вы автоматически прячете под туннель все устройства дома — телевизор, приставку, ноутбуки — без установки клиентов на каждое.
На OpenWrt WireGuard ставится пакетами:
opkg update
opkg install wireguard-tools luci-proto-wireguard
/etc/init.d/network restart
Дальше в LuCI (веб-интерфейс) создаёте интерфейс типа WireGuard, вписываете приватный ключ роутера, а в Peer — публичный ключ сервера и Endpoint. У Keenetic WireGuard настраивается через веб-панель: «Интернет» → «WireGuard» → импорт конфига.
Важный нюанс роутерного клиента: роутер получает свой адрес в туннеле (например 10.8.0.10), а на сервере в его [Peer] стоит именно этот /32. Если хотите пускать через VPN весь дом, в firewall роутера включите маршрутизацию LAN в WireGuard-интерфейс — иначе устройства за роутером будут выходить мимо туннеля. MikroTik (RouterOS 7+) тоже умеет WireGuard нативно, логика та же.
Split-tunnel: через VPN только часть трафика
Иногда нужно гнать через сервер не всё, а только определённые адреса (например, банк или рабочий сервис). Тогда в клиенте вместо 0.0.0.0/0 указываете конкретные подсети в AllowedIPs.
AllowedIPs = 10.8.0.0/24, 203.0.113.0/24
Остальной трафик пойдёт напрямую — быстрее и без лишней нагрузки на канал. Это удобно для рабочих задач: доступ к серверу или закрытому сервису идёт через VPN, а тяжёлые видео и загрузки — мимо, не съедая ширину туннеля.
Обратная ситуация — гнать через сервер всё, кроме локальной сети (чтобы не терять доступ к домашнему принтеру или NAS): тогда исключаете свою подсеть, например добавляя её маршрут в обход в настройках клиента. WireGuard гибок, и одну и ту же серверную установку можно использовать в обоих режимах, меняя только клиентский AllowedIPs.
Частые ошибки
- Телефон подключился, интернета нет — на сервере не включён ip_forward или у клиента забыт DNS.
- Два устройства выбивают друг друга — вы дали им одинаковый AllowedIPs. Каждому — свой /32 адрес.
- QR не считывается — терминал слишком узкий, разверните окно на весь экран.
- Роутер не держит туннель — проверьте PersistentKeepalive = 25, он нужен за NAT.
Стабильный Endpoint важнее всего: если сервер прыгает по IP, конфиги придётся переписывать. У MAATRIX IP фиксированный на весь срок аренды, так что настроили один раз — и забыли.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для WireGuardОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Сколько устройств потянет один сервер?
Даже младший VPS спокойно держит всю семью — 5-10 устройств. WireGuard очень лёгкий, упор будет в ширину канала, а не в число пиров.
Можно ли один конфиг на телефон и ноут?
Нет. Одинаковые ключи и адрес приводят к постоянным разрывам. Каждому устройству — своя пара ключей и свой IP из подсети 10.8.0.0/24.
Нужен ли статический IP сервера?
Крайне желателен. Endpoint в клиентах указывает на конкретный адрес. MAATRIX выдаёт фиксированный IP, поэтому конфиги не приходится переделывать.