Запретить VPN от изменения DNS на Windows 7/8 developer preview

У меня есть клиент, который использует VPN-соединение, однако он автоматически настраивает Мои настройки DNS на несуществующий DNS-сервер, что означает, что время ожидания каждого разрешения DNS до тех пор, пока альтернатива не будет опробована, что действительно замедляет весь интернет-трафик.

есть ли способ предотвратить переопределение параметров DNS приложением (без включения контроля учетных записей)?

в качестве альтернативы, есть ли способ, которым я могу настроить какую-то локальную маршрутизацию, которая говорит: "когда DNS запрос IP-адреса a приходит, на самом деле использовать IP-адрес B'?

Я использую Windows 8 Developer preview (но я подозреваю, что он должен работать так же, как Windows 7).

спасибо

6
задан Wiebe Tijsma
03.04.2023 0:48 Количество просмотров материала 2558
Распечатать страницу

6 ответов

Я не верю, что есть способ запретить это не происходит, кроме статического назначения DNS-серверов на VPN-соединении.

изменить порядок, в котором DNS-серверы опрашиваются, один должен быть в состоянии изменить привязку интерфейса того, как в https://superuser.com/a/314379/120267, но это не сильно повлияло на VPN-подключения в моем личном тестировании на Windows 7; я подтвердил, что моя VPN-подключение последовательно добавляется в начало HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bind список, независимо от настроек порядка привязки интерфейса.

тем не менее, вы можете сбросить изменения DNS после установки VPN-подключения.

Сбор Информации

Откройте командную строку (Start ->Run... ->cmd), а затем запустить netsh interface ipv4 show dnsservers. Вы увидите примерно следующее:

Configuration for interface "My VPN"
    Statically Configured DNS Servers:    11.22.33.44
                                          55.66.77.88
   ...

Configuration for interface "Local Network Connection"
    DNS servers configured through DHCP:  192.168.0.1
                                          192.168.0.2
    ...

вам нужно интерфейс для VPN и дополнительно первое подключение без VPN DNS-сервера. В данном примере это мой VPN и 192.168.0.1, соответственно.


Настройка Все Это

Вариант 1: отключить VPN DNS

предполагая, что вам не нужны DNS-серверы вашего VPN на всех, вы можете просто запустить следующее в командной строке:

netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no

Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no

если запустить netsh interface ipv4 show dnsservers опять же, вы увидите, что DNS-серверы, связанные с VPN были удалены; DNS-серверы вашего не VPN-подключения будут использоваться для разрешения имен хостов.


Вариант 2: Дополнение VPN DNS

Если вам нужны DNS-серверы VPN для разрешения имен узлов интрасети, вы можете запустить следующее в командной строке:

netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no

Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no

в этом случае netsh interface ipv4 show dnsservers покажет, что первый DNS-сервер вашего не-VPN-подключения был добавлен в верхнюю часть списка DNS-серверов вашего VPN. Он будет использоваться для сначала разрешите имена хостов, и в случае неудачи вернитесь к использованию обычных DNS-серверов VPN.

18
отвечен Ashley Ross 2023-04-04 08:36

У меня была аналогичная проблема; подключение к VPN-серверу переопределит DNS моей рабочей станции (удаленный VPN-клиент), так что DNS локальной сети будет скрыт. Более подробно описал проблему на Stackoverflow сторона прежде чем мне указали, что я должен был разместить его здесь.

прочитав этот поток, очевидно, что переопределение нельзя предотвратить с помощью конфигурации клиента OpenVPN. Моим решением было добавить пакетный файл в OpenVPN каталог конфигурации, который выполняется при формировании соединения OpenVPN. Если файл OVPN называется company.ovpn, файл, который запускается при подключении должен быть назван company_up.летучая мышь.

Я добавил файл с той версии, которую я опубликовал на свой вопрос в StackOverflow ранее сегодня вечером. Теперь это выглядит так:

1: ping 127.0.0.1 -n 2 > nul
2: netsh interface ip set dns "Local Area Connection 4" static 127.0.0.1
3: route delete 0.0.0.0
4: route add -p 0.0.0.0/0 172.20.20.1 metric 1000
5: exit 0

1: Хак ждать пару секунд, прежде чем продолжить. Последняя версия (2.3) клиента OpenVPN игнорирует DNS и маршрут изменяется, если выполняется без задержки.

2: установите DNS VPN-подключения, чтобы указать localhost. У меня есть решатель (я использую SimpleDNS Плюс) работает на локальном хосте, который пересылает запросы к домену компании на DNS-сервер компании через VPN, а все остальное на DNS-сервер локальной сети. Обратите внимание, что я не мог использовать локальный сопоставитель LAN для пересылки запросов для домена компании к DNS компании по VPN, так как Конечной точки VPN-это на localhost. Имя соединения ("Local Area Connection 4") было определено в командной строке через "ipconfig /all".

3: VPN-сервер компании настроен на маршрутизацию все исходящий трафик через VPN и в то же время Ограничение исходящих (в интернет) SSH-соединений. Это противоречило моему рабочему процессу, и я сначала удаляю маршрут "0.0.0.0 netmask 0.0.0.0"...

4: .. и затем я повторно добавляю маршрут 0.0.0.0 / 0, чтобы указать на локальный шлюз локальной сети, и устанавливаю его метрику (вес) в 1000 как универсальный для всего трафика, который не маршрутизируется иначе.

5: без "exit 0" OpenVPN выдает предупреждение об ошибке сценария failed (со статусом выхода 1).

надеюсь, что это полезно для кого-то.. это работает достаточно хорошо для меня (нет необходимости вносить изменения маршрута или DNS вручную каждый раз, когда я открываю соединение).

1
отвечен Ville 2023-04-04 10:53

есть ли способ предотвратить переопределение параметров DNS приложением (без включения контроля учетных записей)?

по крайней мере, нет простого способа сделать это.

в качестве альтернативы, есть ли способ, которым я могу настроить какую-то локальную маршрутизацию, которая говорит: "когда DNS-запрос на IP-адрес a приходит, на самом деле использовать IP-адрес B"?

Вы можете добавить записи в файл hosts (C:\Windows\System32\drivers\etc\hosts). Этот файл содержит сопоставления с узла имена для IP-адресов и предпочтительнее DNS-запросов.

0
отвечен Michael 2023-04-04 13:10

можете ли вы проверить состояние флажка "использовать шлюз по умолчанию в удаленной сети". Это можно найти, открыв свойства VPN-подключения и перейдите на вкладку Сеть и выберите TCP / IP v4 или TCP/IP V6, а затем выберите Свойства, а затем дополнительно. Это может быть включено, что может означать, что весь интернет-трафик маршрутизируется через VPN-соединение.это не всегда возможно отключить это и по-прежнему делать то, что вы хотите с VPN, но он может быть отключен, это может ускорить интернет доступ.

Если это не поможет, есть вкладка DNS там, и вы можете попробовать добавить свои DNS-серверы там. Я пробовал это, но я ожидал бы, что эти настройки переопределят автоматические настройки.

0
отвечен sgmoore 2023-04-04 15:27

к сожалению netsh не может удалить dns-серверы, назначенные dhcp. Но это можно сделать, очистив параметр DhcpNameServer в

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{id}

ключ реестра.

0
отвечен a1nt 2023-04-04 17:44

по состоянию на 2017 это теперь возможно, если его на основе OpenVPN

добавьте строку в конфигурационный файл клиента

pull-filter игнорировать "dhcp-option DNS"

и он будет игнорировать все строки конфигурации, которые начинаются с заключенного в кавычки текста.

три ключевых слова действий accept ignore reject. Я не обнаружил прецедента отказа.

0
отвечен Criggie 2023-04-04 20:01

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх