====== Конфигурация 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 # Проверить связь с сервером