Як визначити DNS-сервер у openvpn?


17

Я встановлюю сервер openvpn зі статичним ключем (режим сертифікатів не використовується через DPI на національному шлюзі), але я не можу успішно змінити DNS автоматично після з'єднання. Я шукав через Інтернет та SE, і кожен пропонує використання dhcp-option.

Я намагався додати цей рядок до client.ovpn

dhcp-option DNS 8.8.8.8

Ефекту немає. Я намагався додати цей рядок у конфіденційності сервера

push "dhcp-option DNS 8.8.8.8"

Жоден ефект не має.

Насправді, згідно з посібником,

--dhcp-тип опції [parm]

Встановити розширені властивості TAP-Win32 TCP / IP, необхідно використовувати з --ip-win32 динамічним або --ip-win32 адаптивним.

Але мій клієнт - машина Mac, сервер Linux. Будь-які рішення проблеми?


1
Ви повинні згадати, якого клієнта ви використовуєте на машині OSX.
FloHimself

2
@FloHimself: Стандартна утиліта командного рядка openvpn.
Сіюань Рен

Відповіді:


7

У системі Linux вам потрібно запустити зовнішній скрипт .

Ось документація: https://wiki.archlinux.org/index.php/OpenVPN#DNS

Скрипти можна знайти тут або в новій версії Linux тут, і ви можете викликати їх, додавши це в конфігурацію клієнта openvpn:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

1
Якщо ваш аромат Linux використовує NetworkManager, перегляньте зміни, з якими потрібно працюватиnmcli .
palswim

5

Я не експерт, але читаючи manсторінку нижче вашої цитати:

--dhcp-тип опції [parm]

...

Зауважте, що якщо --dhcp-опція буде натиснута через --push до клієнта , який не працює з Windows , опція буде збережена у середовищі клієнта до виклику сценарію up під назвою "Foreign_option_ {n}".

та під іноземною опцією_ {n} :

Foreign_option_ {n}

Опція, що передається через --push до клієнта, який не підтримує його, наприклад --dhcp-варіант у системі, яка не є Windows , буде записана в цю послідовність змінної середовища перед виконанням сценарію --up .

Таким чином, openvpnклієнт командного рядка не змінює автоматично налаштування DNS на вашій машині OSX після встановлення з'єднання. Але оскільки параметри DNS зберігаються в середовищі клієнта, ви можете вказати сценарій для додавання серверів, що передаються, до поточної конфігурації DNS системи з --upможливістю:

- до cmd

Запустіть команду cmd після успішного відкриття пристрою TUN / TAP (зміна UID попереднього використання).

cmd складається з шляху до скрипту (або виконуваної програми), необов'язково з аргументами. Шлях та аргументи можуть бути одно- або подвійними цитатами та / або уникати за допомогою зворотної косої риси, і вони повинні бути розділені одним або кількома пробілами.

Наприклад, Tunnelblick також робить це, використовуючи цей сценарій .

Іншим рішенням може бути скрипт, який був розміщений у списку розсилки openvpn в DNS для клієнтів OS X - Посібник із визначенням .


Що з iPhone? Без джейлбрейка, я думаю, що немає башів або будь-яких команд для автоматичної зміни DNS.
Сіюань Рен

@SiyuanRen Без джейлбрейкінгу ви, мабуть, не використовуєте командний рядок клієнта openvpn на iPhone ...
FloHimself

Офіційний додаток openvpn просто завантажує текстовий файл конфігурації та запускає його. Більше функціональності немає.
Сіюань Рен

@SiyuanRen Ну, офіційний додаток openvpn - це не командний рядок, про який йде мова.
FloHimself

Це відчувається як злом. Коли я підключаюсь до PPTP або L2TP, у налаштуваннях мережі є виділений спеціальний інтерфейс з їх єдиними IP та DNS. OpenVPN вимагає від мене змінити настройки DNS інших інтерфейсів?
Сіюань Рен

4

У мене була однакова проблема і з ОС Linux (сервер і клієнт), і я вирішив її, встановивши dnsmasq на сервері, якого бракувало

тому мої кроки:

apt-get install dnsmasq

в server.conf

push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"

І я міг підключати та переглядати домени через IP сервера, підключаючись до NetWorkManager з наборами DNS до автоматичного


-1

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

# put actual dns name here
dhcp-option DNS 10.11.12.13 

Це обов'язково спрацює ..

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