Настройка WireGuard: Сервер и Клиент (Linux)

WireGuard — это быстрый, современный и безопасный VPN-протокол с минимальной настройкой. В этой статье мы разберём, как настроить WireGuard на сервере (Linux) и подключиться к нему с клиента (также Linux).


1. Настройка сервера WireGuard

1.1. Установка WireGuard

На сервере (например, VPS с Ubuntu/Debian) выполните:

sudo apt update
sudo apt install wireguard resolvconf

1.2. Генерация ключей

sudo su
cd /etc/wireguard/
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

1.3. Создание конфигурации сервера

Создайте файл /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = <СЕРВЕРНЫЙ_ПРИВАТНЫЙ_КЛЮЧ>  # из server_private.key
Address = 10.0.0.1/24  # Внутренний IP сервера
ListenPort = 51820  # Порт для подключения
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true

1.4. Включение IP-форвардинга

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

1.5. Запуск сервера

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

1.6. Проверка статуса

sudo wg show

2. Настройка клиента WireGuard (Linux)

2.1. Установка WireGuard

На клиенте (Ubuntu/Debian):

sudo apt update
sudo apt install wireguard resolvconf

2.2. Генерация ключей

sudo su
cd /etc/wireguard/
umask 077
wg genkey | tee client_private.key | wg pubkey > client_public.key

2.3. Создание конфигурации клиента

Создайте /etc/wireguard/wg0-client.conf:

[Interface]
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА>  # из client_private.key
Address = 10.0.0.2/24  # Внутренний IP клиента
DNS = 8.8.8.8  # Опционально

[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА>  # из server_public.key
AllowedIPs = 0.0.0.0/0  # Весь трафик через VPN (или только нужные подсети)
Endpoint = <IP_СЕРВЕРА>:51820  # Пример: 123.123.123.123:51820
PersistentKeepalive = 25  # Для NAT

2.4. Добавление клиента на сервер

На сервере выполните:

sudo wg set wg0 peer <ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА> allowed-ips 10.0.0.2

2.5. Запуск клиента

sudo wg-quick up wg0-client

2.6. Проверка подключения

ping 10.0.0.1  # Проверка связи с сервером
curl ifconfig.me  # Проверка внешнего IP (должен быть IP сервера)
sudo wg show  # Статус подключения

3. Автозагрузка и управление

На сервере:

sudo systemctl enable wg-quick@wg0
sudo systemctl restart wg-quick@wg0

На клиенте:

sudo systemctl enable wg-quick@wg0-client
sudo systemctl restart wg-quick@wg0-client

4. Дополнительные настройки

Добавление новых клиентов

  1. Сгенерируйте ключи на новом клиенте.
  2. Добавьте его публичный ключ на сервер: bash sudo wg set wg0 peer <НОВЫЙ_ПУБЛИЧНЫЙ_КЛЮЧ> allowed-ips 10.0.0.3

Firewall (UFW)

Если используется UFW, разрешите порт WireGuard:

sudo ufw allow 51820/udp

Заключение

Теперь у вас настроен VPN-сервер WireGuard и клиентское подключение. WireGuard работает быстро и безопасно, а его настройка занимает минимум времени.

🔹 Полезные команды:
- sudo wg show — статус подключения
- sudo wg-quick down wg0 — отключить VPN
- journalctl -u wg-quick@wg0 -f — логи сервера

Если у вас есть вопросы, пишите в комментарии! 🚀