Вики / Сеть
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
См. также
- sysctl (параметры ядра) — Загрузка
- ip (адреса и маршруты) — Сеть
- Файрвол (nftables / ufw) — Сеть