
WS4W - это настольное приложение, которое позволяет работать и управлять конечной точкой сервера Wireguard в Windows.
Вдохновленный постом Генри Чанга, как настроить VPN -сервер Wireguard в Windows, моя цель состояла в том, чтобы создать приложение, которое автоматизировало и упростило многие из сложных этапов. Несмотря на то, что идея все еще не совсем не совсем подготовлена, заключается в том, чтобы иметь возможность выполнять каждый из необходимых шагов, один за другим, без каких-либо сценариев, изменяя реестр или не входя в панель управления.
Последний релиз доступен здесь. Загрузите установщик и запустите.
Примечание . Заявление будет запрашивать работу в качестве администратора. Благодаря вспышению реестра, служб Windows, вызовов WG.Exe и т. Д., Легче запустить все повышенное приложение.
Перед введением установщика WS4W был распространен в качестве портативного приложения. Портативные версии (1.5.2 и ранее) не имеют автоматического пути обновления до версии установщика. Чтобы обновить, просто удалите загруженную портативную версию и загрузите установщик. Настройки конфигурации не будут потеряны.
Ниже приведены задачи, которые можно выполнить автоматически с помощью этого приложения.

Этот шаг загружает и запускает последнюю версию Wireguard для Windows с https://download.wireguard.com/windows-client/wireguard-installer.exe. После установки он также может быть удален непосредственно от WS4W.

Здесь вы можете настроить конечную точку сервера. См. Документацию Wireguard для значения каждой из этих полей. Частный ключ и открытый ключ генерируются путем вызова wg genkey и wg pubkey [private key] соответственно. (Вы можете предоставить свой собственный личный ключ.)
Примечание . Важно, чтобы сетевой диапазон сервера не конфликтул с IP -адресом системы хост -системы или диапазоном сети LAN.
В дополнение к созданию/UDPating файл конфигурации для конечной точки сервера, редактирование конфигурации сервера также обновит значение реестра ScopeAddress (под HKLMSYSTEMCurrentControlSetServicesSharedAccessParameters ). Это IP -адрес, который используется для адаптера Wireguard при использовании функции обмена интернетом (объясняется здесь). Таким образом, свойство адреса конфигурации сервера служит для определения допустимых адресов для клиентов, а также IP, который Windows назначит адаптеру Wireguard при выполнении обмена интернетом. Примечание. IP -адрес захвачен с ScopeAddress в то время, когда обмен интернетом впервые выполняется. Это означает, что если IP -адрес сервера изменяется в конфигурации (и, таким образом, обновляется значение реестра ScopeAddress ), интерфейс Wireguard больше не будет точно отражать желаемый IP -сервер. Таким образом, WS4W будет подсказывать переосмысление Интернета. В случае отмены обмен интернетом будет отключен и придется быть вручную вручную.
Важно : вы должны настроить пересылку портов на своем маршрутизаторе. Переместите весь трафик UDP, который предназначен для вашего порта конечной точки вашего сервера (по умолчанию
51820) в IP LAN на вашем сервере. Каждый маршрутизатор отличается, поэтому здесь трудно дать конкретное руководство. Например, вот как будет выглядеть правило пересылки порта на маршрутизаторе Verizon Quantum Gateway.
Вы должны установить свойство Endpoint на ваш общедоступный IPv4, IPv6 или доменное адрес, за которым следует любой порт, который вы переправили. Кнопка Detect Public IP Address попытается автоматически обнаружить ваш общедоступный адрес с помощью API ipify.org. Однако, если возможно, рекомендуется использовать доменное имя с DDN. Таким образом, если ваш публичный IP -адрес изменится, ваши клиенты смогут найти конечную точку вашего сервера без реконфигурации.

Здесь вы можете настроить клиент (ы). Адрес может быть введен вручную или рассчитан на основе сетевого диапазона сервера. Например, если сеть сервера составляет 10.253.0.0/24 , клиентская конфигурация может определить, что 10.253.0.2 является действительным адресом. Обратите внимание, что первый адрес в диапазоне (в этом примере 10.253.0.1 ) зарезервирован для сервера. DNS является необязательным, но рекомендуется. Вы можете добавить домены поиска DNS (также известные как суффиксы DNS, читать дальше). Наконец, личный ключ, открытый ключ и Preshared генерируются с использованием wg genkey , wg pubkey [private key] и wg genpsk . (Вы можете указать свой собственный закрытый ключ. Предварительные ключи являются необязательными, сгенерированными уникально для клиента и совместно используются с конфигурацией сервера. См. #34 для получения дополнительной информации.)
Из -за немного причуды в Wireghard, если бы вы удалили клиентский ключ Preshared и синхронизируйте конфигурацию сервера, Wireguard все равно ожидает, что клиент подключится к PSK. Поэтому WS4W не позволяет вам очистить поле Preshared Key от клиентов. Вместо этого удалите и воссоздайте клиента для удаления PSK.
После настройки легко импортировать конфигурацию в приложение для клиента по QR -коду или путем экспорта файла .conf .

Для безопасности вы можете не захотеть сохранять личные ключи клиентов на сервере. В этом случае вы можете очистить поле «Приватный ключ» перед сохранением конфигурации клиента. Тем не менее, есть две вещи, которые следует помнить.
Как только сервер и клиент (ы) настроены, вы можете установить службу туннеля, которая создает новый сетевой интерфейс для Wireguard, используя команду wireguard /installtunnelservice . После установки туннель также может быть удален непосредственно в WS4W. Это использует команду wireguard /uninstalltunnelservice .
После завершения этого шага клиенты Wireguard должны иметь возможность добраться до успешного рукопожатия с сервером.
Примечание. Если конфигурация сервера отредактирована после установки службы туннеля, служба туннеля будет автоматически обновляться с помощью команды
wg syncconf(если вновь сохраненная конфигурация сервера действительна). Это также относится к конфигурациям клиента, обновлениям, в которые часто приводят к обновлению конфигурации сервера (например, если добавляется новый клиент, конфигурация сервера должна знать об этом новом узле).
Даже после установки туннельной службы некоторые протоколы могут быть заблокированы. Рекомендуется изменить сетевой профиль на Private , что облегчает ограничения Windows в сети.
Этот шаг также создает задачу Windows, чтобы автоматически сделать сеть приватной на загрузке. Вы можете отключить задачу через выпадающий.
ПРИМЕЧАНИЕ . В системе, где общее подключение к Интернету происходит из сети доменов, этот шаг не является необходимым, поскольку интерфейсы Wireguard поднимают профиль сети общих доменов.
Последний шаг - разрешить промежуточные запросы через интерфейс Wireguard быть направлены в вашу частную сеть или в Интернет. Для этого подключение «реального» сетевого адаптера на машине Windows должно быть передано с виртуальным адаптером проволоки. Это можно сделать одним из двух способов.
Первый вариант доступен только в некоторых системах (см. Подробнее ниже). Вторые варианты могут использоваться по мере необходимости, но имеют некоторые предостережения (например, если подключение к Интернету передано с адаптером проволоки, оно не может быть передано с любым другим адаптером; см. #18). Также было зарегистрировано несколько проблем с обменом интернетом, поэтому маршрутизация NAT следует использовать, если она доступна.
Эти варианты взаимоисключают.
Здесь вы можете создать правило маршрутизации NAT на интерфейсе Wireguard, чтобы позволить ему взаимодействовать с вашей частной/публичной сетью. В частности, следующие команды вызываются.
New-NetIPAddress вызывается на адаптере Wireguard, чтобы назначить статический IP в диапазоне адреса адреса конфигурации сервера.New-NetNat призван создать новое правило NAT на адаптере проволоки.New-NetIPAddress на загрузке.На маршрутизации NAT требуется как минимум Windows 10, и опция для того, чтобы она позволила ему даже не отображаться в приложении на старых версиях Windows. Однако даже с Windows 10 маршрутизация NAT не всегда работает. Иногда требуется, чтобы Hyper-V был включен, что приложение будет предпринять, но это также требует Pro или выше (т.е., а не дома) версии Windows. В конечном счете, если приложение не может включить маршрутизацию NAT, оно рекомендует вместо этого использовать обмен подключением к Интернету (ниже). См. #30 для полной дискуссии о поддержке маршрутизации NAT.

Если маршрутизация NAT не доступна, вы можете использовать обмен интернетом для обеспечения сетевого соединения с интерфейсом Wireguard. При настройке этой опции вы можете выбрать любой из ваших сетевых адаптеров для обмена. Обратите внимание, что он, вероятно, будет работать только для адаптеров, статус которого Connected , и он будет полезен только для адаптеров, которые обеспечивают доступ в Интернет или LAN. При выборе адаптера поделиться, наведите товар меню, чтобы получить более подробную информацию, включая назначенный адаптер IP -адрес, чтобы определить, является ли это тот, которым вы хотите поделиться.
ПРИМЕЧАНИЕ. При выполнении обмена интернетом адаптеру Wireguard назначается IP из значения реестра
ScopeAddress(подHKLMSYSTEMCurrentControlSetServicesSharedAccessParameters). Это значение автоматически устанавливается при обновлении свойства адреса конфигурации сервера. Смотрите больше здесь.
В окнах возникают проблемы, которые заставляют обмен интернетом стать инвалидом после перезагрузки. Если сервер Wireguard предназначен для оставления без присмотра, рекомендуется обеспечить постоянный обмен интернетом, чтобы после перезагрузки не требовалось взаимодействие.
При включении этой функции два действия выполняются в Windows:
Internet Connection Sharing изменяется с Manual на Automatic .EnableRebootPersistConnection Regstry в HKLMSoftwareMicrosoftWindowsCurrentVersionSharedAccess устанавливается на 1 (он создан, если не найден).Даже с этими обходными путями обмен интернетом может стать инвалидом после перезагрузки. Поэтому выполняется еще одно действие. Создана запланированная задача, которая отключает и переосмысливает обмен интернетом, используя WS4W CLI при загрузке системы. Этого должно быть достаточно, чтобы гарантировать, что совместное использование остается включенным.

После установки туннеля можно просмотреть состояние интерфейса Wireguard. Это достигается с помощью команды wg show . Он будет постоянно обновляться, пока Update Live проверено.
Установить задержку задачи загрузки
Эта настройка позволяет настроить задержку для задач загрузки. Это может быть полезно для задач, которые зависят от адаптеров, которые медленно загружаются. Обратите внимание, что задачи должны быть отключены и повторно включены после изменения этого значения.

Также в портативной загрузке также есть CLI с под названием ws4w.exe , который можно вызвать из терминала или вызвать из сценария. В дополнение к сообщениям, записанным в стандартном уровне, CLI также установит код выхода на основе успеха выполнения данной команды. Например, в PowerShell код выхода может быть напечатан с помощью echo $lastexitcode .
Примечание . CLI также должен быть запущен в качестве администратора по тем же причинам, что и выше.
CLI использует глаголы или команды верхнего уровня, каждый из которых имеет свой собственный набор параметров. Вы можете запустить ws4w.exe --help для списка всех глаголов или ws4w.exe verb --help чтобы увидеть список параметров для определенного глагола.
ws4w.exe restartinternetsharing [--network <NETWORK_TO_SHARE>]--network может быть передана, чтобы указать, какая сеть WS4W должна делиться.--network ).--network должна быть передана для указания.--network должна быть передана, в противном случае невозможно узнать, какую сеть делиться.Эта команда используется запланированной задачей, которая создается при включении постоянного обмена интернетом.
ws4w.exe setpathPATH системы.Эта команда используется установщиком при выборе опции «Добавить CLI в путь».
ws4w.exe setnetipaddress --serverdatapath <PATH_TO_SERVER_CONFIG>Set-NetIPAddress на интерфейсе WireGuard, используя сетевой адрес, как определено в данном файле конфигурации сервера WireGuard.Эта команда используется запланированной задачей, которая создается при включении маршрутизации NAT.
ws4w.exe privatenetworkЭта команда используется задачей Windows, которая создается при включении частной сети.
Во -первых, рекомендуется использовать маршрутизацию NAT, если доступно.
Однако, если вы испытаете следующее сообщение об ошибке при включении обмена интернетом, выполните следующие ручные шаги.

wg_server .Примечание. Эта проблема часто запускается после создания нового виртуального коммутатора для виртуальной машины. Ручной обходной путь должен понадобиться только один раз после этого и не влияет на виртуальный переключатель.
WS4W был протестирован и, как известно, работает на Windows Server (2012 R2 и Newer) и Windows Desktop (10 и более новый).
Wireguard является зарегистрированным товарным знаком Джейсона А. Доненфельда.
Значок, сделанный Freepik от www.flaticon.com.