====== Конфигурация WireGuard ======
Можно добавлять новых клиентов, создавая новые секции [Peer] на сервере и генерируя для них ключи.
===== Конфигурация сервера =====
''/etc/wireguard/wg0.conf''
[Interface]
# Имя сетевого интерфейса (можно изменить)
Name = wg0
# IP-адрес сервера в VPN-сети и маска подсети
Address = 10.0.0.1/24
# Порт, на котором WireGuard будет принимать подключения (обычно 51820)
ListenPort = 51820
# Приватный ключ сервера (генерируется командой `wg genkey`)
PrivateKey =
# Опционально: включить NAT для клиентов (если сервер раздаёт интернет)
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
[Peer]
# Настройки клиента 1
# Публичный ключ клиента (генерируется на клиенте)
PublicKey =
# Разрешить подключение только с этого IP (опционально)
AllowedIPs = 10.0.0.2/32
# Опционально: клиент может подключаться из любого места (Endpoint не фиксируется)
# (если нужно фиксировать IP клиента, укажите его здесь)
# Endpoint = 1.2.3.4:12345
Пояснения:
* [Interface] — настройки серверного интерфейса.
* Address — IP-адрес сервера в VPN (клиенты будут подключаться к нему).
* ListenPort — порт, который слушает WireGuard.
* PrivateKey — секретный ключ сервера (никогда не передаётся клиентам!).
* PostUp/PostDown — правила iptables для проброса интернета клиентам (если нужно).
* SaveConfig — сохранять изменения при перезапуске (wg-quick down wg0).
* [Peer] — настройки клиента.
* PublicKey — публичный ключ клиента (должен совпадать с его конфигом).
* AllowedIPs — какие IP разрешены для этого клиента (10.0.0.2/32 — только один IP).
===== Конфигурация клиента =====
''/etc/wireguard/wg0-client.conf''
[Interface]
# Имя интерфейса (можно изменить)
Name = wg0-client
# Приватный ключ клиента (генерируется на клиенте)
PrivateKey =
# IP клиента в VPN-сети (должен быть уникальным)
Address = 10.0.0.2/24
# Опционально: DNS-сервер (если сервер его раздаёт)
DNS = 8.8.8.8, 1.1.1.1
[Peer]
# Настройки сервера
# Публичный ключ сервера (берётся из серверного конфига)
PublicKey =
# IP и порт сервера (его публичный IP или домен)
Endpoint = server.example.com:51820
# Какие IP-адреса маршрутизировать через VPN
# (0.0.0.0/0 — весь трафик, 10.0.0.0/24 — только локальная сеть VPN)
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
# Опционально: включать постоянное соединение (переподключаться, если связь пропала)
PersistentKeepalive = 25
Пояснения:
* [Interface] — настройки клиента.
* PrivateKey — секретный ключ клиента (никому не передавать!).
* Address — IP клиента в VPN (должен быть уникальным).
* DNS — DNS-серверы, если сервер их раздаёт.
* [Peer] — настройки сервера.
* PublicKey — публичный ключ сервера (из его конфига).
* Endpoint — публичный IP или домен сервера + порт.
* AllowedIPs:
* 10.0.0.0/24 — трафик к другим VPN-клиентам.
* 192.168.1.0/24 — доступ к локальной сети сервера.
* 0.0.0.0/0 — весь интернет через VPN (анонимизация).
* PersistentKeepalive — если клиент за NAT, помогает поддерживать соединение.
===== Генерация ключей =====
На сервере:
wg genkey | tee server_private.key | wg pubkey > server_public.key
* server_private.key — вставляем в PrivateKey сервера.
* server_public.key — вставляем в PublicKey клиента.
На клиенте:
wg genkey | tee client_private.key | wg pubkey > client_public.key
* client_private.key — вставляем в PrivateKey клиента.
* client_public.key — вставляем в PublicKey сервера.
===== Запуск и управление =====
Сервер:
sudo wg-quick up wg0 # Запустить VPN
sudo wg-quick down wg0 # Остановить VPN
sudo wg show # Показать статус подключений
Клиент:
sudo wg-quick up wg0-client
sudo wg-quick down wg0-client
===== Проверка соединения =====
На сервере:
ping 10.0.0.2 # Проверить связь с клиентом
На клиенте:
ping 10.0.0.1 # Проверить связь с сервером