WireGuard: собственный VPN за 10 минут вместо платных подписок
Как развернуть быстрый и простой VPN на своём сервере для удалённого доступа к офису, обхода блокировок и защиты трафика — без ежемесячных платежей и логов провайдеров.
Коммерческие VPN-сервисы обещают анонимность, но в действительности ведут логи, ограничивают скорость и требуют ежемесячной платы. Для малого бизнеса есть более чистое решение: собственный VPN на сервере, который вы контролируете. WireGuard — самый простой способ это сделать.
Почему WireGuard, а не OpenVPN
WireGuard встроен в ядро Linux, состоит из 4000 строк кода (против 600 000 у OpenVPN) и работает быстрее на слабом железе. Для сервера с 2 ГБ RAM и парой клиентов он практически незаметен.
Главные преимущества:
- Простота настройки. Один конфиг-файл на сервере, один на клиенте. Не нужно возиться с сертификатами X.509.
- Высокая производительность. Современная криптография (Curve25519, ChaCha20, Poly1305) работает быстрее старых AES-решений на процессорах без AES-NI.
- Роуминг. Клиент автоматически переподключается при смене сети (Wi-Fi → мобильный интернет) за доли секунды.
- Отсутствие логов. Вы владеете сервером — никто не записывает, куда вы ходили.
Когда собственный VPN нужен бизнесу
- Удалённый доступ к 1С, CRM или файловому серверу. Сотрудники подключаются к офисной сети из дома так, будто сидят за рабочим столом.
- Защита трафика в кафе и аэропортах. Весь интернет-трафик телефона и ноутбука идёт через защищённый туннель на ваш сервер.
- Объединение филиалов. Офис в Москве и склад в регионе работают в одной локальной сети.
- Доступ к сервисам, ограниченным по IP. Например, если банк или госпортал доступен только с российского адреса, а вы в командировке за границей.
Настройка сервера
1. Установка
Debian/Ubuntu:
sudo apt install wireguard
Alpine:
sudo apk add wireguard-tools
2. Генерация ключей
wg genkey | tee privatekey | wg pubkey > publickey
Сохраните privatekey в надёжное место. Он не восстанавливается.
3. Конфигурация сервера
Создайте /etc/wireguard/wg0.conf:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <содержимое файла privatekey>
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.200.200.2/32
[Peer]
# Телефон бухгалтера
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.200.200.3/32
Замените eth0 на имя вашего сетевого интерфейса (узнать: ip link).
4. Включение форвардинга и запуск
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
5. Открытие порта в фаерволе
sudo ufw allow 51820/udp
Или если используете iptables напрямую:
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
Настройка клиента
Linux / macOS
Установите WireGuard, создайте конфиг /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = <приватный ключ клиента>
Address = 10.200.200.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = ваш_сервер.ru:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
sudo wg-quick up wg0
Windows / Android / iOS
Скачайте приложение WireGuard, отсканируйте QR-код или импортируйте конфиг-файл. Для генерации QR-кода на сервере:
qrencode -t ansiutf8 < /etc/wireguard/client-phone.conf
Проверка работы
На сервере:
sudo wg
Вы увидите список подключённых клиентов, время последнего рукопожатия и объём переданных данных.
На клиенте проверьте IP:
curl ifconfig.me
Должен вернуться IP вашего сервера.
Типичные ошибки
- Не работает интернет после подключения. Проверьте
PostUp/PostDownправила и включён лиip_forward. - Клиент не соединяется. Убедитесь, что UDP-порт 51820 открыт на хостинге (некоторые провайдеры блокируют порты в панели управления).
- DNS не резолвится. Добавьте
DNS = 1.1.1.1или IP вашего DNS-сервера в секцию[Interface]клиента.
Безопасность
- Не используйте один и тот же ключ на нескольких устройствах. Генерируйте пару ключей для каждого клиента.
- Ограничивайте
AllowedIPs. Если клиенту нужен только доступ к офисной сети, укажитеAllowedIPs = 10.200.200.0/24, 192.168.1.0/24вместо0.0.0.0/0. - Обновляйте сервер. WireGuard — часть ядра, обновления безопасности приходят вместе с системой.
Сколько это стоит
Если у вас уже есть VPS — ничего. WireGuard не требует лицензий и не ест ресурсы. Для сравнения: коммерческий VPN для команды из 5 человек обойдётся в 30–50 $/мес. Собственный сервер за 400 ₽/мес покроет эту задачу с запасом.
Итог
WireGuard превращает настройку VPN из инженерной задачи на полдня в 10-минутную процедуру. Вы получаете быстрый, защищённый туннель без посредников, логов и абонентской платы.
Похожие материалы
- Инфраструктура на вашем сервере — VPN, фаервол и защищённый удалённый доступ входят в базовую настройку сервера.
- Кейс: инфраструктура «под ключ» для юридической фирмы — среди прочего, защищённый удалённый доступ сотрудников к внутренним системам.
Если нужно настроить VPN для офиса или удалённой команды — напишите, подберу оптимальную схему под вашу инфраструктуру.