WireGuard — современный VPN-протокол с высокой производительностью, низким потреблением ресурсов и простой настройкой. В данной инструкции показан процесс установки WireGuard на VPS под управлением Ubuntu 22.04 или Ubuntu 24.04.
Перед началом работы убедитесь, что у вас есть:
- VPS с Ubuntu 22.04 или новее;
- Root-доступ к серверу;
- Публичный IPv4-адрес;
- SSH-клиент для подключения к серверу.
Шаг 1. Подключение к серверу
Подключитесь к VPS по SSH:
ssh root@SERVER_IP
Замените SERVER_IP на IP-адрес вашего сервера.
Шаг 2. Обновление системы
Выполните обновление пакетов:
apt update && apt upgrade -y
Шаг 3. Установка WireGuard
Установите WireGuard и необходимые утилиты:
apt install wireguard qrencode -y
Проверьте установку:
wg --version
Шаг 4. Генерация ключей сервера
Создайте каталог для хранения ключей:
mkdir -p /etc/wireguard
cd /etc/wireguard
chmod 700 /etc/wireguard
Сгенерируйте приватный и публичный ключ сервера:
wg genkey | tee server_private.key | wg pubkey > server_public.key
Просмотрите созданные ключи:
cat server_private.key
cat server_public.key
Шаг 5. Настройка WireGuard
Создайте конфигурационный файл:
nano /etc/wireguard/wg0.conf
Добавьте содержимое:
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -A FORWARD -o wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -o wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Замените:
SERVER_PRIVATE_KEY
на содержимое файла server_private.key.
Если сетевой интерфейс сервера называется не eth0, уточните его командой:
ip route
Шаг 6. Включение IP Forwarding
Откройте системный конфигурационный файл:
nano /etc/sysctl.conf
Найдите строку:
#net.ipv4.ip_forward=1
и замените на:
net.ipv4.ip_forward=1
Примените настройки:
sysctl -p
Шаг 7. Запуск WireGuard
Запустите VPN-сервер:
wg-quick up wg0
Проверьте состояние:
wg show
Добавьте автозапуск:
systemctl enable wg-quick@wg0
Проверьте статус службы:
systemctl status wg-quick@wg0
Шаг 8. Настройка Firewall
Если используется UFW:
ufw allow 51820/udp
Проверьте список правил:
ufw status
Шаг 9. Создание клиента
Перейдите в каталог WireGuard:
cd /etc/wireguard
Создайте ключи клиента:
wg genkey | tee client_private.key | wg pubkey > client_public.key
Просмотрите публичный ключ клиента:
cat client_public.key
Шаг 10. Добавление клиента на сервер
Откройте конфигурацию сервера:
nano /etc/wireguard/wg0.conf
Добавьте в конец файла:
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.10.10.2/32
Сохраните изменения.
Перезапустите WireGuard:
systemctl restart wg-quick@wg0
Шаг 11. Создание конфигурации клиента
Создайте файл:
nano client.conf
Добавьте:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.10.10.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Замените:
CLIENT_PRIVATE_KEYна приватный ключ клиента;SERVER_PUBLIC_KEYна публичный ключ сервера;SERVER_IPна IP-адрес VPS.
Шаг 12. Генерация QR-кода для смартфона
Для Android и iPhone можно создать QR-код:
qrencode -t ansiutf8 < client.conf
Или:
qrencode -o wireguard-client.png < client.conf
После этого импортируйте конфигурацию через приложение WireGuard.
Подключение Windows
- Скачайте клиент WireGuard.
- Установите приложение.
- Нажмите Add Tunnel → Import from File.
- Выберите файл
client.conf. - Нажмите Activate.
Подключение Android
- Установите приложение WireGuard из Google Play.
- Нажмите +.
- Выберите Scan QR Code.
- Отсканируйте QR-код.
- Активируйте туннель.
Подключение iPhone
- Установите WireGuard из App Store.
- Нажмите Add Tunnel.
- Выберите Create from QR Code.
- Отсканируйте QR-код.
- Подключитесь к VPN.
Проверка работы VPN
Подключитесь к VPN и откройте сайт:
https://whatismyipaddress.com
IP-адрес должен соответствовать адресу вашего VPS.
Добавление дополнительных устройств
Для каждого нового устройства необходимо:
- Сгенерировать отдельную пару ключей.
- Добавить новый блок
[Peer]вwg0.conf. - Назначить уникальный IP-адрес из сети VPN.
- Перезапустить WireGuard.
Частые ошибки
Клиент подключается, но интернет не работает
Проверьте, включен ли IP Forwarding:
sysctl net.ipv4.ip_forward
Результат должен быть:
net.ipv4.ip_forward = 1
Клиент не подключается
Убедитесь, что порт UDP 51820 открыт в Firewall и у провайдера VPS.
Handshake отсутствует
Проверьте правильность публичных и приватных ключей сервера и клиента.
Не открываются сайты
Проверьте настройки DNS в клиентском файле конфигурации.
После перезагрузки VPN не запускается
Убедитесь, что служба добавлена в автозагрузку:
systemctl enable wg-quick@wg0