Налаштування DNS-серверів за допомогою конфігураційного файлу клієнта OpenVPN


16

Як можна встановити сервери DNS на клієнті, використовуючи лише конфігурацію клієнта. Мій клієнт - це машина Windows, і я хочу змінити DNS-сервери, коли клієнт підключиться і повернеться до початкової конфігурації, коли я відключаюсь від VPN.

Уся інформація, яку я знайшов до цього часу, стосується передачі конфігурації DNS клієнту за допомогою конфігурації сервера, але в цьому випадку я не можу змінити конфігурацію сервера і в даний час це роблю вручну кожен раз, коли я підключаюся до VPN. Опція конфігурації openvpn для встановлення DNS-серверів локальних машин на час з'єднання була б чудовою.

Відповіді:


3

Ви можете використовувати пакетний сценарій для цього, наприклад, наступного. Він передбачає, що ваші домашні сервери DNS - це 1.1.1.1 та 2.2.2.2, а ваші VPN-сервери VPN - 8.8.8.8 9.9.9.9:

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

Я збирався включити в ці сценарії способи підключення та відключення, проте в OpenVPN не бачу можливості відключатися через командний рядок. Якщо ви хочете автоматизувати з'єднання, це має працювати:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn


15

До файлу конфігурації клієнта можна додати наступне.

dhcp-option DNS <dns_server_ip_address>

На стороні сервера це було б:

push "dhcp-option DNS <dns_server_ip_address>"

Здається, це використовується dhcp-optionз обох сторін. Ви можете зробити те ж саме і з route.


4
Це не спрацювало для мене, хоча, здається, так і повинно. Параметр не був у створеному client.ovpn. Коли я додаю його, він все ще не працює. Запуск від Asus RT-N66U з біржовим програмним забезпеченням 3.0.0.4.376_3861
Shea

2
Я додав це до свого файлу .ovpn перед тегом <ca>, і він працював чудово! Дякую! Я перевірив це на своїй машині Windows з OpenVPN 2.4.4 Windows версії 6.2
Майкл Каргл

6

Мабуть, існує проблема з несправним замовленням прив’язки в Windows, принаймні, включаючи Windows 2000 / XP / 7. Це призведе до того, що клієнти Windows OpenVPN використовуватимуть настройки DNS мережевого адаптера за замовчуванням, а не настройки адаптера VPN.

Щоб виправити це, вам потрібно розмістити пристрій VPN TUN або TAP над адаптером локальної мережі у порядку прив’язки:

  1. Визначте свій VPN-пристрій, поглянувши на вихід ipconfig. Для мене це було "Місцеве з'єднання 2". Запам’ятайте свою IP-адресу цього адаптера.
  2. Відкрийте regedit.exe і знайдіть ключ, під HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesяким відповідає IP-адресі адаптера VPN. Запам’ятайте GUID цього адаптера.
  3. Перейдіть до HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkageта двічі клацніть на Bind. Він міститиме список GUID для адаптерів. Виріжте та вставте рядок, що відповідає GUID вашого пристрою VPN, у верхній частині списку та збережіть його.

Це призведе до використання записів DNS для вашого VPN-пристрою (і лише тоді, коли активне з'єднання VPN). Ви можете встановити їх відповідно до відповіді від @brunoqc. Поки ви перебуваєте на цьому, вам, ймовірно, слід також додати параметр openvpn block-outside-dns, щоб переконатися, що запити DNS не протікають.

Ця відповідь ґрунтується на цій дуже корисній публікації в блозі .


Це спрацювало досить добре! Дякую, сер, що написали цей посібник
SeriousM

3

На додаток до будь-якого з двох нижче:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

або

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

Додайте їх також до конфігурації клієнта, щоб змусити Windows використовувати налаштований DNS:

register-dns
block-outside-dns

1-я змушує Windows віддавати перевагу налаштованому серверу DNS перед будь-яким іншим, який він може отримати від DHCP. Другий запобігає витоку DNS на будь-який DNS-сервер, крім налаштованого.

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