По умолчанию для всех VPN подключений в Windows используется режим Force Tunnel (в настройках VPN включена опция ‘ Use default gateway on remote network ‘/’ Использовать основной шлюз в удаленной сети ‘). В этом режиме для разрешения имен будут использоваться DNS сервера, которые назначены вашему подключению сервером VPN, и вы не сможете разрешать имена устройств в вашей локальной сети.
Для VPN подключения в Windows доступно два режима:
Windows 10/11 отправляет DNS запросы с сетевого интерфейса с наивысшим приоритетом (у которого самое маленькое значение метрики интерфейса). Чтобы вывести значения метрик сетевых интерфейсов компьютера, выполните PowerShell команду:
Get-NetIPInterface | Sort-Object Interfacemetric
На данном компьютере есть два подключение:
Это значит, что ваши DNS запросы отправляются через интерфейс с меньшей метрикой (Ethernet) на ваши локальные DNS сервера, а не на DNS сервера VPN подключения. В такой конфигурации вы не можете резолвить адреса во внешней VPN сети.
Windows 10/11 задают метрики IPv4 сетевым интерфейсам автоматически в зависимости от их скорости и типа:
| Скорость и тип подключения | Метрика |
| Ethernet 1 Гб | 25 |
| Ethernet 100 Мб | 35 |
| Wi-Fi интерфейс со скоростью 50-80 Мб | 50 |
(см. таблицу https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes ).
Например, вы хотите, чтобы DNS запросы отправлялись через VPN подключение. В нашем примере это означает, что нужно увеличить метрику локального Ethernet адаптера и сделать его больше 100.
Вы можете изменить метрики сетевых интерфейсов из графического интерфейса или из командной строки.
ncpa.cpl ), откройте свойства вашего Ethernet подключения, выберите свойства протокола TCP/IPv4, перейдите на вкладку “ Дополнительные параметры TCP/IP ”. Снимите галку “ Автоматическое назначение метрики ” и измените метрику интерфейса на 120 . Get-NetIPInterface ): Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120 netsh int ip set interface interface="Ethernet 3" metric=120 Аналогично вы можете уменьшить значение метрики в свойствах VPN подключения.
В такой конфигурации DNS запросы будут выполняться через VPN подключение.
Также вы можете изменить настройки вашего VPN подключения , изменив режим на SplitTunneling (трафик DNS по умочалнию идет в вашу LAN) и указать DNS суффикс для подключения c помощью PowerShell:
Get-VpnConnection
Set-VpnConnection -Name "VPN" -SplitTunneling $True
Set-VpnConnection -Name "VPN" -DnsSuffix yourdomain.com
Также можете указать трафик каких подсетей нужно всегда отправлять в VPN туннель:
Add-VpnConnectionRoute -ConnectionName $VpnName -DestinationPrefix 172.16.10.0/24
Add-VpnConnectionRoute -ConnectionName $VpnName -DestinationPrefix 10.24.2.0/24
Если вы используете OpenVPN сервер , вы можете назначить клиентам дополнительные маршруты и DNS сервера с помощью опций:
push "route 10.24.1.0 255.255.255.0"_x000D_push "dhcp-option DNS 192.168.100.11"
В версиях с Windows 8.1 до Windows 1703 по умолчанию включена опция Smart Multi-Homed Name Resolution (SMHNR). При активной SMHNR Windows отправляет DNS запросы на все известные системе DNS сервера параллельно и использует тот ответ, который пришел быстрее. Это не безопасно, т.к. потенциально внешние DNS сервера (которые указаны в вашем VPN подключении) могут видеть ваши DNS запросы (утечка ваших DNS запросов вовне). Чтобы предотвратить утечку DNS запросов, желательно отключить SMHNR с помощью групповой политики:
Или можно внести аналогичное изменение в реестр с помощью команд PowerShell :
Set-ItemProperty -Path "HKLM:SoftwarePoliciesMicrosoftWindows NTDNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesDnscacheParameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord
Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…
Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…
Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…