Дозвіл DNS для Windows 10 через підключення VPN не працює


49

У Windows 10 під час підключення до VPN з включеним розділенням Tunneling (шлюз відключений) роздільною здатністю DNS завжди використовуються сервери DNS локальної мережі, ігноруючи DNS-сервери та суфікс DNS, встановлені на з'єднанні VPN.

Очікувана поведінка полягає у використанні DNS-серверів VPN, інакше неможливо вирішити записи DNS у віддаленій мережі (наприклад, доменні комп'ютери).

Це працювало належним чином у попередній версії Windows.

Про це широко обговорювалося в цьому потоці відповідей Microsoft .


З вашого питання незрозуміло, у чому полягає ваша проблема (чи хочете, щоб він використовував DNS-сервер, вказаний VPN?), Відредагуйте його.
Máté Juhász

Відредаговано як запропоновано.
ECC-Dan

tbh: Тоді з вашими серверами щось не так. Перший запит DNS повинен ЗАВЖДИ потрапити на локальні сервери. Тільки якщо хост є нерозв’язним, система повинна спробувати здійснити запит на віддалений DNS. Ваша проблема може полягати в тому, що локальні та віддалені мережі працюють в одній підмережі, таким чином локальна заявляє, що "може вирішити запит", але доставляє "хост не знайдено"? (Якщо сервер, налаштований на сервер підмережі abcd, не може вирішити хост, подальший dns-сервер для цієї підмережі не запитується, за винятком випадків, коли основний не працює в автономному режимі, оскільки вони
ОБОВ'ЯЗКОВО

Відповіді:


55

Я вирішив цю проблему назавжди, встановивши показник мого підключення до локальної мережі вручну (15), ніж той, який призначає вікно моєму VPN (11).

Це можна зробити двома способами:

  • Через графічний інтерфейс: мережеві з'єднання, властивості, властивості TCP / IP v4, розширені, встановити метрику на 15;
  • Командний рядок: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

Ефект негайний (принаймні, при використанні командного рядка) і пошук DNS зараз проходить через мій VPN, як очікувалося.

Це працює зі розділеним тунелем і є постійним виправленням через повторні з'єднання та перезавантаження.

Зауважте, що ви також можете змінити метрику VPN замість підключення до локальної мережі, але це не буде постійним, оскільки Windows скидає метрику, коли з'єднання встановлено.

Залежно від вашого оточення, у вас може бути інший показник за замовчуванням для локальної мережі та VPN-з'єднання. Просто налаштуйте відповідним чином так, щоб ваш VPN мав меншу метрику, ніж ваше підключення до локальної мережі.

Крім того, якщо ви виявите, що не можете редагувати властивості TCP / IP свого VPN, оскільки це також було порушено в Windows 10 , ви можете встановити більшість властивостей за допомогою Powershell :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local

2
Для мене це не працює ... У мене дві машини з Windows 10, одна працює все добре, інша проблематична з VPN. Я в змозі вирішити шлюз за замовчуванням, що дозволяє SplitTunneling, але DNS VPN все ще не розпізнає, коли я
змінюю

3
Це вирішило цю проблему для нас (і ми боролися з нею вже деякий час) з одним важливим додатковим кроком - відключенням IPv6. Наш VPN не робить IPv6, але, наскільки я розумію, будь-який роздільник IPv6 матиме перевагу над IPv4. Як тільки ми відключили IPv6 на адаптерах, потім відкоригували показники розділеного тунелю, DNS відновив свою роботу. Якщо ваш VPN підтримує IPv6, це, ймовірно, не потрібно, і якщо корекція метрики сама по собі виправить DNS, ви можете підтримувати IPv6 на адаптері.
Адам Строль

Факт забави: для мене проблема була "навпаки" - підключившись до VPN, Windows не змогла вирішити локальні FQDN ... Вона встановлювала метрику за замовчуванням для "VPN-з'єднання" до 1 - тому я дав локальну підключіть менший номер, який вирішив мою проблему. (Мої локальні сервери налаштовані правильно, тому будь-яке нерозв’язуване ім'я буде запитуватися під час підключення "другого уподобання" - що змушує і локальні, і віддалені dns працювати так, як очікувалося, поки буде встановлено VPN.)
прогнозуйте

Будь-яка ідея, чому ця корекція потрібна мені лише під час підключення через один провайдер, але не через інший (обидва коаксіальні кабелі підключені)?
Гая

Я якось отримав зворотну проблему в першу чергу: мій локальний ноутбук Win10 автоматично використовує лише DNS у VPN (більшу частину часу), і тому, що DNS у цій внутрішній VPN не (ще) налаштований для надання послуги DNS, я можу не переглядати будь-який веб-сайт в період мого ввімкнення VPN. Таким чином, я використовую це рішення зворотним способом, тобто встановлюючи локальне підключення до локальної мережі таким чином, як таке число 1, яке, здавалося б, вирішує проблему на даний момент. FWIW, я не знаю значення метрики для мого VPN-з'єднання, оскільки у спливаючому вікні властивостей VPN немає кнопки "Попереднє".
RayLuo

11

Я запустив нову інсталяцію Windows 10 в VM, щоб перевірити, побачивши цю проблему на кожній фізичній машині Win10. Я перевірив усі відповіді в цій темі, і жодна з них не працювала. Я виявив, що рішення полягає в поєднанні відповідей, розміщених тут "Кінанами" та "ECC-Dan":

http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/win-10-dns-resolution-of-remote-network-via-vpn/513bdeea-0d18-462e-9ec3-a41129eec736? сторінка = 1

Панель управління> Центр мережі та спільного доступу> Змінення налаштувань адаптера> Клацніть правою кнопкою миші адаптер Ethernet або Wifi> Властивості> двічі клацніть IPv4> Додатково> Зніміть прапорець Автоматичний показник> Введіть 15 для метрики інтерфейсу> ОК> ОК.

На цій самій сторінці Властивості двічі клацніть IPv6> Додатково> Зніміть прапорець Автоматичний показник> Введіть 15 для метрики інтерфейсу> ОК> ОК.

Тільки після зміни обох цих налаштувань проблема вирішується. Я перевірив зміну будь-якої спини, і вона знову ламається. Після зміни обох я запустив nslookup з командного рядка, і він повернув DNS-сервер у віддалену мережу, до якої підключений VPN, інакше він би повернув локальний DNS-сервер. Тоді я використовував Wireshark, захоплюючи інтерфейс Ethernet, робив кілька пінгів на випадкових веб-сайтах і перевіряв, що не було захоплених пакетів DNS. Це доводить, що після внесення змін запити DNS надсилаються ТІЛЬКИ через VPN-з'єднання, а не одночасно по всіх з'єднаннях (що відоме як витік DNS Win10). Тож це також є частиною рішення для витоку DNS Win10:

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

Зауважте, щоб виправити витік DNS, спочатку потрібно виконати описані вище дії. Потім потрібно встановити два значення реєстру. У зв'язаних статтях наведено лише одну, яка сама по собі не виправляє проблему в новіших збірках Win10. Встановіть ці значення реєстру:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

Тільки виконавши все це, ваша поведінка клієнта DNS повернеться до такої, якою вона була в Win7. Ви повинні задатися питанням, як це сталося через QA у Microsoft.


1

Це не працює, навіть я змінив показники як на IPv4, так і на IPv6 і використав реєстр DisableSmartNameResolution і DisableParallelAandAAAA з поточною Windows 10 Edu (станом на грудень 2018 року), коли клієнт підключений кабелем UTP, а протокол IPv6 підтримується в локальній локальній мережі (тобто. клієнт має публічну / глобальну адресу IPv6).

Достатньо вимкнути протокол IPv6 в інтерфейсі UTP / LAN, який використовується для VPN, щоб він працював (для видалення / not_use глобальної адреси IPv6 на клієнті).

Він працює без проблем, коли клієнт підключений до Інтернету через Wi-Fi та доступний IPv6 (клієнт має глобальну IPv6 адресу та не має підключення до UTP / LAN).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.