Предотвращение утечки DNS-запросов при использовании WireGuard в Windows
Содержание
Построил VPN, а DNS-запросы идут через провайдера?
Исправление
Для Windows воспользуемся PowerShell-скриптом.
Текущие настройки можно посмотреть так:
PS> Get-DnsClientServerAddress
InterfaceAlias Interface Address ServerAddresses
Index Family
-------------- --------- ------- ---------------
Ethernet1 1 IPv4 {233.252.0.1}
При подключении к VPN установим немаршрутизируемый адрес:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet1" -ServerAddresses ("0.0.0.0")
При отключении сбросим в стандартные настройки:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet1" -ResetServerAddresses
Wireguard
Конфигурация с исполнением скриптов при подключении / отключении Wireguard:
[Interface]
PrivateKey = ...
Address = ...
DNS = ...
PostUp = powershell.exe -Command "Set-DnsClientServerAddress -InterfaceAlias 'Ethernet1' -ServerAddresses ('0.0.0.0')"
PostDown = powershell.exe -Command "Set-DnsClientServerAddress -InterfaceAlias 'Ethernet1' -ResetServerAddresses"