Содержание

Предотвращение утечки DNS-запросов при использовании WireGuard в Windows

Построил VPN, а DNS-запросы идут через провайдера?

Для Windows воспользуемся PowerShell-скриптом.

Текущие настройки можно посмотреть так:

powershell

PS> Get-DnsClientServerAddress
InterfaceAlias               Interface Address ServerAddresses
                             Index     Family
--------------               --------- ------- ---------------
Ethernet1                            1 IPv4    {233.252.0.1}

При подключении к VPN установим немаршрутизируемый адрес:

powershell

Set-DnsClientServerAddress -InterfaceAlias "Ethernet1" -ServerAddresses ("0.0.0.0")

При отключении сбросим в стандартные настройки:

powershell

Set-DnsClientServerAddress -InterfaceAlias "Ethernet1" -ResetServerAddresses

Конфигурация с исполнением скриптов при подключении / отключении Wireguard:

ini

[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"
  1. How can I fix a DNS leak?
  2. PowerShell: Set-DnsClientServerAddress
  3. Powershell Cmdlet to remove a statically configured DNS addresses from a network adapter