Маскот-полярный медведь NordBastion в Nordic-каменной мастерской со светящимся cyan-зашифрованным туннелем, изгибающимся между стилизованным ноутбуком и серверной башней, глифами ключа и замка на орбите туннеля
Руководство · Self-hosting·11 мин. чтения · 15 мин. практики

Запустите WireGuard VPN на VPS.
Пятнадцать минут до собственного личного VPN.

Пять шагов от «нет сервера» до «мой личный VPN» — без KYC при регистрации, оплата криптовалютой, никакого стороннего VPN-провайдера в цепочке доверия. Протестировано на Debian 12 с WireGuard 1.0+ в mainline-ядре.

Пять шагов
  1. 01

    Провизионирование

    Nordic VPS

  2. 02

    Установить

    apt install wireguard

  3. 03

    Настроить

    Ключи + wg0.conf

  4. 04

    Файрвол

    UDP 51820 + перенаправление

  5. 05

    Подключиться

    wg-quick up wg0

Шаг 01 · Настройка

Выберите Nordic-бастион близко к вашему местоположению.

В панели: Заказать → VPS → Sentinel ($5.90/мес, 2 vCPU / 4 GB / 120 GB NVMe). Sentinel имеет неограниченную пропускную способность и канал 1 Gbps — достаточно для личного VPN даже при полном стриминге. Выберите бастион, ближайший к вашему физическому местоположению, поскольку каждый байт проходит через VPS перед достижением пункта назначения. Европейский клиент выбирает Stockholm или Helsinki; клиент из Америки / Азии — Reykjavík (минимальная трансатлантическая задержка) или Oslo.

Образ ОС: Debian 12 — рекомендуемый. Ubuntu 22.04+ работает идентично. Alpine работает, но использует другие имена пакетов (apk add wireguard-tools). FreeBSD тоже работает, но синтаксис конфигурации расходится. Сервер загружается примерно за 90 секунд; root-учётные данные показываются один раз в панели.

Шаг 02 · Установка

Один пакет — уже в ядре.

Войдите по SSH как root. Затем:

apt update
apt install -y wireguard qrencode

Всё готово. WireGuard встроен в основное ядро Linux с версии 5.6 (март 2020), поэтому apt устанавливает только инструменты пространства пользователя (wg, wg-quick) — никакой компиляции модулей, DKMS, пересборки ядра. Пакет qrencode пригодится на шаге 5 для передачи клиентской конфигурации на телефон в виде QR-кода.

Включите переадресацию IP сейчас, чтобы не забыть на шаге 4:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p
Шаг 03 · Конфигурация

Сгенерируйте ключи, запишите wg0.conf. Две минуты.

Сгенерировать серверную пару ключей:

cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

Теперь сгенерируйте одну клиентскую пару ключей для каждого устройства:

wg genkey | tee laptop_private.key | wg pubkey > laptop_public.key
wg genkey | tee phone_private.key  | wg pubkey > phone_public.key

Создайте /etc/wireguard/wg0.conf с настройками сервера + один блок [Peer] для каждого клиента:

[Interface]
PrivateKey = <contents of server_private.key>
Address    = 10.66.66.1/24, fd00:66::1/64
ListenPort = 51820
PostUp     = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown   = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# laptop
PublicKey  = <contents of laptop_public.key>
AllowedIPs = 10.66.66.2/32

[Peer]
# phone
PublicKey  = <contents of phone_public.key>
AllowedIPs = 10.66.66.3/32
Шаг 04 · Брандмауэр

Откройте UDP 51820. Заблокируйте остальное.

Если вы используете UFW (по умолчанию в Ubuntu):

ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp        # SSH (consider port-knocking or VPN-only in production)
ufw allow 51820/udp     # WireGuard
ufw enable

Бастионы NordBastion также имеют вышестоящий файрвол, управляемый из панели — вы можете реплицировать там те же правила для глубокоэшелонированной защиты. Файрвол уровня бастиона блокирует до того, как пакет достигает VPS, что экономит CPU при объёмном сканировании.

Рекомендация по конфиденциальности, которой стоит следовать: измените WireGuard ListenPort с 51820 (значение по умолчанию, которое ищут сканеры) на случайный порт от 1024 до 65535. Это не улучшает безопасность против целенаправленного злоумышленника, но снижает шум от случайных сканеров.

Шаг 05 · Подключение

Поднимите туннель. Первый клиент подключится за секунды.

На сервере:

systemctl enable --now wg-quick@wg0
wg                          # status: should show interface up

Создайте конфигурацию клиента (laptop.conf) на сервере, затем скопируйте её на ноутбук:

[Interface]
PrivateKey = <contents of laptop_private.key>
Address    = 10.66.66.2/24, fd00:66::2/64
DNS        = 1.1.1.1, 9.9.9.9       # or your favourite privacy resolver

[Peer]
PublicKey         = <contents of server_public.key>
Endpoint          = <server-ip>:51820
AllowedIPs        = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Для мобильных устройств передайте конфигурацию через qrencode и отсканируйте приложением WireGuard:

qrencode -t ansiutf8 < phone.conf

Всё готово. Клиент подключается, туннель поднимается, и ноутбук / телефон теперь выходит в интернет через Nordic-бастион. Проверьте: curl https://api.ipify.org — возвращённый IP является публичным IP VPS, а не вашим домашним.

FAQ · WireGuard

Вопросы, и ответы на них.

Восемь вопросов, которые начинающий клиент self-hosted-VPN задаёт.

Почему самостоятельно хостить WireGuard VPN вместо использования NordVPN / Mullvad / ProtonVPN?

Три реальные причины. (1) Цепочка доверия укорачивается. Коммерческий VPN — это «доверяйте этой компании, что она не будет вас логировать»; самохостируемый — «доверяйте этому VPS-провайдеру, что он не будет вас логировать» — на одну сторону меньше. (2) VPN-эндпоинт принадлежит только вам. Выходные IP коммерческих VPN разделяются тысячами пользователей и блокируются многими сервисами; ваш самохостируемый эндпоинт — свежий чистый IP, который никто не помечал. (3) Цена. NordBastion Sentinel стоит $5.90/мес. и работает как VPN с неограниченной пропускной способностью; коммерческие VPN стоят $5–$15/мес. за общую инфраструктуру.

Почему WireGuard, а не OpenVPN?

WireGuard меньше (4000 строк кода ядра против ~100 000 у OpenVPN), быстрее (часто в 3–5 раз выше пропускная способность на том же железе), проще в настройке (один файл конфигурации вместо сантехники CA/cert/dhparam) и удобен для аудита. Он включён в основное ядро Linux с версии 5.6 (2020), поэтому нет шага компиляции. OpenVPN остаётся полезным для совместимости с устаревшими системами и TCP-трафика; для всего остального WireGuard является современным стандартом.

Знает ли мой ISP, что я запускаю VPN?

Ваш ISP видит зашифрованный UDP-трафик на порту 51820, идущий на IP NordBastion. Этот паттерн распознаётся как VPN-трафик; то, что находится на другой стороне, — нет. Если «вообще использовать VPN» является чувствительным в вашем контексте, запустите WireGuard на порту 443 (он использует UDP, а не TCP, но порт такой же, как у HTTPS), и рассмотрите обёртку для обфускации вроде udp2raw, если ISP активно блокирует рукопожатия WireGuard.

Могу ли я использовать VPS как VPN И сервер для других задач?

Да, распространённый шаблон. VPS запускает WireGuard плюс всё, что вам нужно — личный сайт, Bitcoin-узел, инстанс Mastodon. Правила брандмауэра держат VPN-трафик и публично доступные сервисы изолированными; iptables/nft может маршрутизировать VPN-клиентов к конкретным локальным сервисам, а не к другим.

А как насчёт геолокации по IP — сайты будут думать, что я в Швеции?

Да — ваш выходной IP является бастионом NordBastion, который вы выбрали. Стриминговые сервисы с геоблокировкой по IP будут воспринимать вас как шведа (бастион Stockholm), финна (Helsinki), норвежца (Oslo) или исландца (Reykjavík). Банковские сайты, помечающие «вход из новой страны», активируют свои правила о мошенничестве; это нормальное поведение, а не проблема VPN.

Сколько клиентов может обслуживать один WireGuard-сервер?

Практически неограниченно для личного использования. Каждый пир добавляет несколько KB памяти. Ограничение — пропускная способность и канал бастиона, а не сам демон WireGuard. Уровень Sentinel с неограниченной пропускной способностью и каналом 1 Gbps насытится задолго до того, как процесс WireGuard это заметит.

Запустить на выделенном VPS или разделить с другими задачами?

Выделенный VPS — более чистый вариант с точки зрения OPSEC: единственное, с чем ассоциируется IP, — это «мой личный VPN». Если вы смешиваете нагрузки, трафик VPN и трафик другой нагрузки используют один исходящий IP, и любая репутационная проблема одного из них перетекает на другой. За $5.90/месяц разумно держать их раздельно.

Поддерживает ли self-hosted WireGuard kill-switch?

Да, на стороне клиента. Конфигурации WireGuard поддерживают блок PostUp / PostDown, где вы добавляете правила iptables, отбрасывающие не-VPN трафик при активном туннеле; можно также настроить клиентскую ОС на отказ от не-VPN подключений по умолчанию. Несколько приложений-менеджеров с открытым исходным кодом (wg-easy, WireGuard-UI, Pi-VPN) делают это за вас.

Готово

Закажите Sentinel и запустите собственный VPN.

Последняя проверка · 2026-05-20 · Протестировано · Debian 12 · WireGuard 1.0.20210914