Сервер у меня успешно завёлся и работает. Теперь надо разобраться с клиентами. Прежде всего я захотел наладить работу туннеля в Windows так, чтобы он сам при загрузке поднимался и показывал своё присутствие только наличием сетевого адаптера и службы. Никаких окон и никаких иконок в области уведомлений.
Я скачал и поставил официальный клиент со страницы загрузки. При установке в систему добавился новый драйвер, а в недрах "Program files\WireGuard" появился огромный файл "wireguard.exe", который тут отвечает вообще за всё. Он рисует пользовательский интерфейс, он же работает службой. Похоже, что и драйверы на сетевой адаптер он тоже из себя извергает, потому что внутри msi-пакета никакого намёка на файлы драйвера я не нашёл.
Сначала я пошёл путём, который для настройки проложили разработчики, т.е. задал все необходимые настройки туннеля через графический интерфейс. Туннель поднимался, трафик циркулировал, но каждый раз запускать всё руками мне не очень удобно. Я начал искать способ установки службы, которая всё будет делать в фоне при включении. Оказалось, что служба в системе уже есть и даже работает. Я обрадовался, закрыл графическое приложение, но вместе с ним из системы пропала и обе службы (управление и сам туннель). Так дела не делаются, если служба есть, то её кто-то ставит. Погуглив ещё, я нашёл команду для установки службы вручную. А потом узнал, что по команде "wireguard.exe /?" выводится справка по ключам в виде окошка:
Usage: C:\Program Files\WireGuard\wireguard.exe [ (no argument): elevate and install manager service /installmanagerservice /installtunnelservice CONFIG_PATH /uninstallmanagerservice /uninstalltunnelservice TUNNEL_NAME /managerservice /tunnelservice CONFIG_PATH /ui CMD_READ_HANDLE CMD_WRITE_HANDLE CMD_EVENT_HANDLE LOG_MAPPING_HANDLE /dumplog OUTPUT_PATH ]
Отсюда нам нужен ключ "/installtunnelservice"
Конфигурационные файлы хранятся в системном профиле в зашифрованном виде по пути "C:\Windows\Sysnative\config\systemprofile\AppData\Local\WireGuard\Configurations\", поэтому писать конфигурацию придётся заново. Теоретически можно взять и готовые файлы, но тогда редактировать их будет довольно сложно.
Конфигурационный файл имеет точно такой же формат, что файл для wg-quick. Описывать его здесь второй раз я не буду.
Готовый файл или файлы, если туннелей несколько можно сложить в каталог "C:\WireGuard", например. Теперь необходимо установить службы командой:
C:\Program Files\WireGuard\wireguard.exe /installtunnelservice C:\WireGuard\wg0.confВ списке должна появиться запись с именем "WireGuardTunnel$wg0" и отображаемым именем "WireGuard Tunnel: wg0", которая тут же запустится.