Настройка WireGuard на Ubuntu 22.04: пошаговое руководство
Пошаговая инструкция по развертыванию WireGuard на Ubuntu 22.04: от установки пакетов до запуска туннеля и диагностики.
Содержание
Установка WireGuard на Ubuntu 22.04
WireGuard — это современный VPN-протокол, который работает на уровне ядра, обеспечивая высокую скорость и низкую задержку. В Ubuntu 22.04 он доступен в официальных репозиториях, поэтому установка проста. Откройте терминал и выполните:
sudo apt update
sudo apt install wireguardПосле установки проверьте, загружается ли модуль ядра:
sudo modprobe wireguardЕсли модуль не загружается, обновите ядро и установите заголовки:
sudo apt upgrade
sudo apt install linux-headers-$(uname -r)Также рекомендуется установить resolvconf для управления DNS:
sudo apt install resolvconfНастройка сервера WireGuard
Генерация ключей
Создайте директорию для конфигураций и сгенерируйте пару ключей:
sudo mkdir -p /etc/wireguard
cd /etc/wireguard
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key
sudo chmod 600 server_private.keyПриватный ключ должен быть доступен только root. Публичный ключ можно распространять клиентам.
Создание конфигурации сервера
Создайте файл /etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.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
[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32Замените eth0 на ваш внешний интерфейс (узнать можно командой ip route show default). PostUp/PostDown включают маршрутизацию и NAT. Если используете сетевой файервол ufw, откройте порт: sudo ufw allow 51820/udp.
Настройка клиента WireGuard
На клиентской машине (также Ubuntu 22.04 или другом дистрибутиве) повторите установку WireGuard. Сгенерируйте ключи аналогично серверу. Создайте конфигурацию /etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <приватный ключ клиента>
DNS = 1.1.1.1
[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = <IP-адрес сервера>:51820
AllowedIPs = 0.0.0.0/0, ::/0AllowedIPs = 0.0.0.0/0 направляет весь трафик через VPN. Если нужен только доступ к локальной сети сервера, укажите подсеть, например 10.0.0.0/24.
Запуск и проверка подключения
На сервере и клиенте запустите интерфейс:
sudo wg-quick up wg0Добавьте в автозагрузку: sudo systemctl enable wg-quick@wg0. Проверьте статус: sudo wg show. Должен отображаться обмен данными (transfer). Выполните пинг клиента с сервера: ping 10.0.0.2. Если пинг проходит, настройка корректна. Для отключения: sudo wg-quick down wg0.
Типичные ошибки и их решение
Модуль ядра не загружается
Убедитесь, что ядро обновлено (sudo apt upgrade). Если ошибка persist, проверьте dmesg | grep wireguard. Возможно, нужно установить заголовки ядра: sudo apt install linux-headers-$(uname -r).
Нет соединения после настройки
Проверьте, открыт ли порт на сервере (sudo netstat -tulpn | grep 51820). Также убедитесь, что IP-форвардинг включен: sudo sysctl net.ipv4.ip_forward=1. Для постоянного включения раскомментируйте строку в /etc/sysctl.conf.
Проблемы с DNS
Если после подключения не резолвятся имена, установите resolvconf и перезапустите интерфейс. В конфигурации клиента укажите корректный DNS-сервер.
Дополнительные советы
Для повышения безопасности используйте wg set wg0 peer <pubkey> allowed-ips 10.0.0.2/32 для ограничения доступа. Также можно настроить kill switch, чтобы блокировать трафик при обрыве VPN. Для этого добавьте в конфигурацию клиента PostUp = iptables -I OUTPUT ! -o wg0 -j DROP и PostDown = iptables -D OUTPUT ! -o wg0 -j DROP.
Если вы используете другие дистрибутивы, например Linux Mint или MX Linux, процесс установки аналогичен, но могут отличаться команды управления пакетами. Подробнее о настройке VPN на других системах читайте в наших статьях: VPN для Linux Mint, VPN на планшет Huawei, VPN для Mac.
Мини-чеклист
- Установите пакет wireguard
- Проверьте загрузку модуля ядра
- Сгенерируйте ключи на сервере и клиенте
- Создайте конфигурационные файлы
- Настройте маршрутизацию и NAT
- Откройте порт в файерволе
- Запустите интерфейс и проверьте подключение
- Добавьте автозагрузку
- Проверьте логи при ошибках
Частые ошибки
- Забывают включить IP-форвардинг
- Не открывают порт UDP 51820
- Неправильно указывают AllowedIPs
- Используют eth0 вместо фактического интерфейса
- Не устанавливают resolvconf, что приводит к проблемам с DNS
Источники и документация
FAQ
Как установить WireGuard на Ubuntu 22.04?
Выполните sudo apt update && sudo apt install wireguard. Затем проверьте модуль ядра командой sudo modprobe wireguard.
Как настроить сервер WireGuard на Ubuntu 22.04?
Сгенерируйте ключи, создайте конфигурацию /etc/wireguard/wg0.conf с параметрами интерфейса и пиров, включите IP-форвардинг и запустите wg-quick up wg0.
Как настроить клиент WireGuard на Ubuntu 22.04?
Установите WireGuard, сгенерируйте ключи, создайте конфигурацию с адресом, приватным ключом, DNS и пиром (публичный ключ сервера, endpoint, AllowedIPs). Запустите wg-quick up wg0.
Почему не работает WireGuard на Ubuntu 22.04?
Проверьте, открыт ли порт, включен ли IP-форвардинг, правильно ли указаны ключи и AllowedIPs. Также проверьте логи: journalctl -u wg-quick@wg0.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ