Инструменты пользователя

Инструменты сайта


flip:wireguard:configuration

Конфигурация WireGuard

Можно добавлять новых клиентов, создавая новые секции [Peer] на сервере и генерируя для них ключи.

Конфигурация сервера

/etc/wireguard/wg0.conf

[Interface]
# Имя сетевого интерфейса (можно изменить)
Name = wg0

# IP-адрес сервера в VPN-сети и маска подсети
Address = 10.0.0.1/24

# Порт, на котором WireGuard будет принимать подключения (обычно 51820)
ListenPort = 51820

# Приватный ключ сервера (генерируется командой `wg genkey`)
PrivateKey = <SERVER_PRIVATE_KEY>

# Опционально: включить 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 = <CLIENT1_PUBLIC_KEY>

# Разрешить подключение только с этого 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 = <CLIENT_PRIVATE_KEY>

# IP клиента в VPN-сети (должен быть уникальным)
Address = 10.0.0.2/24

# Опционально: DNS-сервер (если сервер его раздаёт)
DNS = 8.8.8.8, 1.1.1.1

[Peer]
# Настройки сервера

# Публичный ключ сервера (берётся из серверного конфига)
PublicKey = <SERVER_PUBLIC_KEY>

# 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 (должен быть уникальным).
    • DNSDNS-серверы, если сервер их раздаёт.
  • [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  # Проверить связь с сервером
flip/wireguard/configuration.txt · Последнее изменение: 2025/03/30 10:27 — flip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki