Как создать два конфигурационных файла для WireGuard?

У меня есть сервер с WireGuard и wg-easy, работающий в Docker. У меня установлен один конфигурационный файл для WireGuard, и я пытаюсь создать второй, но он не функционирует должным образом. Когда я добавляю новый конфиг, интернет соединение отключается, и, похоже, я ошибаюсь с маршрутизацией. Я не обладаю глубокими знаниями в Linux. <br/> Можете подсказать, что именно нужно настраивать? Я предполагаю, что изменения следует вносить в /etc/wireguard/***.conf, но не знаю, с чего начать. <br/> <br/> <pre><code>[Interface]
PrivateKey = PRIVATE_SERVER_KEY
Address = 10.8.0.1/24
ListenPort = 51820
PreUp =
PostUp =  iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; i&gt;
PreDown =
PostDown =  iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 51820 -j ACCEPT;&gt;
# Client: я (1d17c329-96f2-4e68-bbd2-fe9b75471ec5)
[Peer]
PublicKey = CLIENT_PRIVAT_KEY
PresharedKey = d3jjmKSLjVHCr9IdKWdL9EfV4QvaM3ipi8MUOrfRZw0=
AllowedIPs = 10.8.0.2/32</code></pre>
  • 18 октября 2024 г. 23:22
Ответы на вопрос 1
Чтобы создать два конфигурационных файла для WireGuard на сервере с использованием wg-easy, вам нужно уделить внимание различным аспектам настройки как серверной, так и клиентской конфигурации. Давайте рассмотрим, как правильно создать и настроить второй конфигурационный файл, чтобы избежать проблем с маршрутизацией и отключением интернет-соединения.

### Шаги для создания второго конфигурационного файла

#### 1. Создание второго конфигурационного файла для сервера

Первый файл конфигурации (например, `wg0.conf`) уже существует. Вам нужно создать второй файл (например, `wg1.conf`). В этом файле вы должны использовать разные IP-адреса, чтобы избежать конфликтов.

**Пример конфигурации для второго сервера:**
```ini
[Interface]
PrivateKey = PRIVATE_SERVER_KEY_2  # Сгенерируйте новый приватный ключ
Address = 10.8.1.1/24                # Используйте другую подсеть
ListenPort = 51821                    # Используйте другой порт для второго VPN
PreUp =
PostUp =  iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 51821 -j ACCEPT;
PreDown =
PostDown = iptables -t nat -D POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 51821 -j ACCEPT;

# Пример клиента
[Peer]
PublicKey = CLIENT_PUBLIC_KEY_2  # Публичный ключ второго клиента
PresharedKey = d3jjmKSLjVHCr9IdKWdL9EfV4QvaM3ipi8MUOrfRZw0= # Можно использовать тот же предшествующий ключ или другой
AllowedIPs = 10.8.1.2/32          # IP-адрес второго клиента
```

#### 2. Обновление конфигурации клиентов

Если вы добавляете нового клиента, убедитесь, что его конфигурация использует правильные IP-адреса и ключи. Пример конфигурации для второго клиента:
```ini
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY_2  # Сгенерируйте новый приватный ключ
Address = 10.8.1.2/32                # Соответствует IP-адресу из сервера

[Peer]
PublicKey = SERVER_PUBLIC_KEY        # Публичный ключ вашего сервера
Endpoint = ServerIP:51821            # IP-адрес вашего сервера и соответствующий порт
AllowedIPs = 0.0.0.0/0               # Позволяет маршрутизацию всего трафика через VPN
PersistentKeepalive = 25             # Поддерживает соединение активным
```

#### 3. Проверьте конфигурацию и перезапустите WireGuard

После того как вы создали и сохранили новый конфигурационный файл, убедитесь, что все ключи и адреса настроены правильно. Затем выполните команды для перезагрузки конфигурации WireGuard:

```bash
# Если используете systemctl
sudo wg-quick down wg0
sudo wg-quick down wg1 # Для второго интерфейса, если существует
sudo wg-quick up wg0
sudo wg-quick up wg1   # Поднимите первый и второй интерфейсы
```

#### 4. Убедитесь, что NAT работает корректно

Проверьте, что правила `iptables` правильно настроены и обрабатывают входящий и исходящий трафик для обеих подсетей (10.8.0.0/24 и 10.8.1.0/24). Можно использовать команды:

```bash
sudo iptables -t nat -L -v
sudo iptables -L -v
```

### Заключение

Если вы выполните все перечисленные шаги правильно и убедитесь, что каждая подсеть работает на своем IP-диапазоне, ваш сервер WireGuard должен корректно обрабатывать соединения от нескольких клиентов. Не забывайте проверять логи и статусы интерфейсов для диагностики, если что-то пойдет не так.
Похожие вопросы