Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Установка и настройка VPN WireGuard на Ubuntu Linux: простое руководство для начинающих

Обновлено: 27.08.2026 · Официальная документация ↗

Зачем компании нужен собственный VPN-сервер

При переходе сотрудников на удаленную работу открывать прямой доступ к корпоративным базам данных, CRM-системам и RDP-серверам через публичный интернет смертельно опасно. Злоумышленники непрерывно сканируют открытые порты. Развертывание защищенного VPN-туннеля решает эту проблему:

  • Все коммуникации между ноутбуком сотрудника и офисом надежно шифруются современным протоколом ChaCha20-Poly1305.
  • Внутренние ресурсы компании остаются полностью невидимыми для внешней сети.
  • WireGuard работает быстрее и потребляет значительно меньше ресурсов процессора по сравнению с тяжеловесным OpenVPN.

Пошаговое развертывание WireGuard на Ubuntu

Настройка выполняется на чистом виртуальном сервере (VPS) с установленной ОС Ubuntu 22.04 или 24.04 LTS.

  1. Шаг 1. Установка пакетов WireGuard:
    sudo apt update
    sudo apt install wireguard iptables qrencode -y
  2. Шаг 2. Включение пересылки пакетов (IP Forwarding):

    Разрешите ядру Linux перенаправлять сетевой трафик между клиентами и интернетом:

    echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
  3. Шаг 3. Генерация ключей сервера:
    cd /etc/wireguard
    umask 077
    wg genkey | tee server_private.key | wg pubkey > server_public.key
  4. Шаг 4. Создание файла конфигурации сервера wg0.conf:

    Узнайте имя вашего внешнего сетевого адаптера через ip route show default | awk '{print $5}' (например, eth0 или ens3) и создайте конфиг:

    sudo nano /etc/wireguard/wg0.conf

    Вставьте следующую конфигурацию (подставив ваш приватный ключ из server_private.key):

    [Interface]
    Address = 10.8.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
  5. Шаг 5. Запуск службы и добавление в автозагрузку:
    sudo systemctl enable wg-quick@wg0
    sudo systemctl start wg-quick@wg0
    sudo ufw allow 51820/udp
  6. Шаг 6. Создание конфигурации для клиента:

    Сгенерируйте клиентские ключи и добавьте публичный ключ клиента в секцию [Peer] на сервере:

    # Добавление клиента на сервере:
    sudo wg set wg0 peer ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА allowed-ips 10.8.0.2/32

Совет для мобильных клиентов: Утилита qrencode -t ansiutf8 < client.conf генерирует QR-код прямо в терминале. Сотруднику достаточно отсканировать его через официальное мобильное приложение WireGuard для мгновенного подключения.

💡 Практика специалистов: Для защиты WireGuard от блокировок и DPI-фильтрации провайдеров мы настраиваем обфускацию трафика с помощью Shadowsocks/AmneziaWG или маскируем туннелирование через порт 443.

Частые вопросы (FAQ)

Почему WireGuard предпочтительнее OpenVPN?

WireGuard работает непосредственно внутри ядра Linux, что обеспечивает передачу данных на максимальной скорости гигабитного канала с минимальной задержкой (ping) и практически мгновенным переподключением при смене Wi-Fi на 4G.

Какой протокол использует WireGuard: TCP или UDP?

WireGuard работает исключительно по протоколу UDP (по умолчанию порт 51820), что исключает проблему TCP-over-TCP meltdown.

Как проверить, сколько клиентов подключено прямо сейчас?

Выполните команду sudo wg. Она выведет список всех пиров, их публичные IP-адреса, объем переданного трафика и время последнего рукопожатия (handshake).

Что делать, если туннель подключается, но сайты не открываются?

Проверьте включение опции net.ipv4.ip_forward = 1 в sysctl и корректность правил MASQUERADE в PostUp конфигурационного файла wg0.conf.

Полезные материалы
Рекомендуем