¿Cómo definir el servidor DNS en openvpn?


17

Configuré un servidor openvpn con clave estática (el modo de certificado no se puede usar debido a DPI en la puerta de enlace nacional), pero no puedo cambiar con éxito el DNS automáticamente después de la conexión. Busqué en Internet y SE, y cada uno sugiere el uso dhcp-option.

Traté de agregar esta línea a client.ovpn

dhcp-option DNS 8.8.8.8

No hay efecto Traté de agregar esta línea en la configuración del servidor

push "dhcp-option DNS 8.8.8.8"

Ninguno tiene ningún efecto.

De hecho, de acuerdo con el manual,

--dhcp-option type [parm]

Establecer propiedades TCP / IP TAP-Win32 extendidas, debe usarse con --ip-win32 dynamic o --ip-win32 adaptive.

Pero mi cliente es una máquina Mac, un servidor Linux. ¿Alguna solución al problema?


1
Debe mencionar qué cliente está utilizando en la máquina OSX.
FloHelf

2
@FloHimself: la utilidad de línea de comandos estándar openvpn.
Siyuan Ren

Respuestas:


7

En un sistema Linux, debe ejecutar un script externo .

Aquí está la documentación: https://wiki.archlinux.org/index.php/OpenVPN#DNS

Las secuencias de comandos se encuentran aquí o en una versión más reciente de Linux aquí y puede llamarlas agregando esto en la configuración del cliente openvpn:

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

1
Si su sabor de Linux usa NetworkManager, vea las modificaciones para trabajarnmcli .
palswim

5

No soy un experto, pero al leer la manpágina debajo de su cita:

--dhcp-option type [parm]

...

Tenga en cuenta que si se empuja --dhcp-option a través de --push a un cliente que no sea Windows , la opción se guardará en el entorno del cliente antes de que se invoque la secuencia de comandos, bajo el nombre "foreign_option_ {n}".

y bajo opción_extranjera {n} :

opción_extranjera {n}

Una opción enviada a través de --push a un cliente que no lo admite de forma nativa, como --dhcp-option en un sistema que no sea Windows , se grabará en esta secuencia de variables ambientales antes de la ejecución de la secuencia de comandos --up .

Entonces, el openvpncliente de línea de comando no modifica automáticamente la configuración de DNS en su máquina OSX después de establecer la conexión. Pero dado que las opciones de DNS se guardan en el entorno del cliente, puede especificar un script para agregar los servidores empujados a la configuración de DNS actual del sistema con la --upopción:

--up cmd

Ejecute el comando cmd después de abrir con éxito el dispositivo TUN / TAP (cambio de UID previo al usuario).

cmd consiste en una ruta al script (o programa ejecutable), opcionalmente seguido de argumentos. La ruta y los argumentos pueden estar entre comillas simples o dobles y / o escapar usando una barra invertida, y deben estar separados por uno o más espacios.

Por ejemplo, Tunnelblick también hace esto utilizando este script .

Otra solución podría ser un script que se publicó en la lista de correo de openvpn en DNS para clientes OS X: la Guía definitiva .


¿Qué hay del iPhone? Sin jailbreak, me imagino que no hay bash ni ningún comando para cambiar el DNS automáticamente.
Siyuan Ren

@SiyuanRen Sin jailbraking, probablemente no uses la línea de comandos del cliente openvpn en un iPhone ...
FloHimself

La aplicación oficial openvpn simplemente carga un archivo de configuración de texto y lo ejecuta. No hay más funcionalidad.
Siyuan Ren,

@SiyuanRen Bueno, la aplicación oficial openvpn no es la aplicación de línea de comando que se discute aquí.
FloHelf

Esto se siente como un truco. Cuando me conecto con PPTP o L2TP, hay una interfaz dedicada disponible en las preferencias de Red, con su única IP y DNS. ¿OpenVPN me exige que cambie la configuración de DNS de otras interfaces?
Siyuan Ren,

4

Tuve el mismo problema con el sistema operativo Linux (servidor y cliente), y resolví la instalación de dnsmasq en el servidor que faltaba

entonces mis pasos:

apt-get install dnsmasq

en server.conf

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

Y podría conectar y explorar dominios a través de la IP del servidor, conectando con NetWorkManager con conjuntos de DNS a automático


-1

Agregue este comando a su archivo conf del lado del cliente.

# put actual dns name here
dhcp-option DNS 10.11.12.13 

Definitivamente funcionará ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.