linux-labs

Вики / Сеть

WireGuard (VPN)

Концепция Ubuntu 24.04 · WireGuard СетьVPNБезопасность

Современный быстрый VPN — ключи, пиры, поднятие туннеля, диагностика.

WireGuard — простой и быстрый VPN на ключах (как SSH: пара приватный/публичный). Создаёт интерфейс wg0 с шифрованным туннелем между пирами. Управление — wg/wg-quick.

sudo apt install wireguard
wg genkey | tee privatekey | wg pubkey > publickey   # пара ключей

/etc/wireguard/wg0.conf:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <свой приватный>

[Peer]
PublicKey = <публичный пира>
AllowedIPs = 10.8.0.2/32        # какие адреса маршрутизировать в туннель
# Endpoint = host:51820         # для клиента — адрес сервера
sudo wg-quick up wg0             # поднять туннель
sudo wg-quick down wg0           # опустить
sudo systemctl enable wg-quick@wg0   # автозапуск

Для роутинга/выхода через VPN включи форвардинг (sysctl net.ipv4.ip_forward=1) и NAT в firewall.

Туннель поднят, но нет связи

sudo wg show — есть ли «latest handshake». Нет рукопожатия → не сошлись ключи, неверный Endpoint, или порт 51820/udp закрыт файрволом на сервере.

Handshake есть, но пинг не идёт

AllowedIPs не включает нужные адреса (для каждого пира это «какие IP за ним»). Для маршрутизации наружу — ip_forward + NAT.

Не зайти после reboot

systemctl enable wg-quick@wg0. Проверь wg-quick up вручную на ошибки.

Asymmetric/одна сторона видит, другая нет

AllowedIPs настраивается на обеих сторонах согласованно. Публичный ключ одного = в [Peer] другого.

wg genkey | tee priv | wg pubkey > pub     # ключи
sudo wg-quick up wg0 / down wg0            # поднять/опустить
sudo wg show                               # пиры, handshake, трафик
sudo systemctl enable wg-quick@wg0         # автозапуск
# conf: [Interface] Address/PrivateKey/ListenPort ; [Peer] PublicKey/AllowedIPs/Endpoint