Як визначити 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.