Можно добавлять новых клиентов, создавая новые секции [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
Пояснения:
/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
Пояснения:
На сервере:
wg genkey | tee server_private.key | wg pubkey > server_public.key
На клиенте:
wg genkey | tee client_private.key | wg pubkey > client_public.key
Сервер:
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 # Проверить связь с сервером