No creo que haya una manera de evitar que suceda, además de asignar estáticamente los servidores DNS en la conexión VPN.
Para cambiar el orden en que se consultan los servidores DNS, se supone que uno puede cambiar el orden de enlace de la interfaz según /superuser//a/314379/120267 , pero eso no parece afectar las conexiones VPN en mis pruebas personales en Windows 7; He confirmado que mi conexión VPN se agrega constantemente a la parte superior de la HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bind
lista, independientemente de la configuración del orden de enlace de la interfaz.
Sin embargo, puede restablecer los cambios de DNS después de establecer la conexión VPN.
Recabando información
Abra un símbolo del sistema ( Start
-> Run...
-> cmd
) y luego ejecútelo netsh interface ipv4 show dnsservers
. Verá una salida similar a la siguiente:
Configuration for interface "My VPN"
Statically Configured DNS Servers: 11.22.33.44
55.66.77.88
...
Configuration for interface "Local Network Connection"
DNS servers configured through DHCP: 192.168.0.1
192.168.0.2
...
Necesita el nombre de la interfaz para la VPN y, opcionalmente, el primer servidor DNS de su conexión no VPN . En este ejemplo, son My VPN y 192.168.0.1 , respectivamente.
Configurando todo
Opción 1: deshabilitar VPN DNS
Suponiendo que no necesita los servidores DNS de su VPN, simplemente puede ejecutar lo siguiente en el símbolo del sistema:
netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no
Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no
Si netsh interface ipv4 show dnsservers
vuelve a ejecutar , verá que los servidores DNS asociados con la VPN se han eliminado; los servidores DNS de su conexión que no sea VPN se utilizarán para resolver nombres de host.
Opción 2: Suplemento VPN DNS
Si necesita los servidores DNS de su VPN para resolver los nombres de host de la intranet, puede ejecutar lo siguiente en el símbolo del sistema:
netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no
Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no
En este caso, netsh interface ipv4 show dnsservers
mostrará que el primer servidor DNS de su conexión que no es VPN se ha agregado a la parte superior de la lista de servidores DNS de su VPN. Primero se usará para resolver nombres de host y, si no tiene éxito, recurrirá al uso de los servidores DNS regulares de su VPN.
Tuve un problema similar; conectarse a un servidor VPN anularía el DNS de mi estación de trabajo (cliente VPN remoto) para que el DNS local de la LAN quedara oculto. Describí el problema más detalladamente en el lado de Stackoverflow antes de señalar que debería haberlo publicado aquí.
Después de leer este hilo, es evidente que no se puede evitar la anulación utilizando la configuración del cliente OpenVPN. Mi solución fue agregar un archivo por lotes en el directorio de configuración de OpenVPN que se ejecuta cuando se forma la conexión OpenVPN. Si el archivo OVPN se llama company.ovpn, el archivo que se ejecuta en connect debe llamarse company_up.bat.
He aumentado un poco el archivo desde la versión que publiqué en mi pregunta en StackOverflow esta noche. Ahora se ve así:
1: Un truco para esperar un par de segundos antes de continuar. La última versión (2.3) del cliente OpenVPN ignoraría el DNS y los cambios de ruta si se ejecutaran sin demora.
2: Configure el DNS de la conexión VPN para que apunte al host local. Tengo un resolutor (uso SimpleDNS Plus ) que se ejecuta en el host local que reenvía las consultas al dominio de la compañía al servidor DNS de la compañía a través de la VPN, y todo lo demás al servidor DNS LAN local. Tenga en cuenta que no podría usar un solucionador de LAN local para reenviar las consultas del dominio de la empresa al DNS de la empresa a través de la VPN, ya que el punto final de VPN está en el host local. El nombre de la conexión ("Conexión de área local 4") se determinó en el símbolo del sistema a través de "ipconfig / all".
3: El servidor VPN de la compañía está configurado para enrutar todo el tráfico saliente a través de la VPN y al mismo tiempo restringir las conexiones SSH salientes (a Internet). Esto entró en conflicto con mi flujo de trabajo, y primero estoy eliminando la ruta "0.0.0.0 netmask 0.0.0.0" ...
4: ... y luego vuelvo a agregar la ruta 0.0.0.0/0 para que apunte a la puerta de enlace LAN local, y establezco su métrica (peso) en 1000 como un todo para todo el tráfico que de otro modo no se enrutará.
5: Sin "salir 0" OpenVPN escupe una advertencia de error del script fallido (con un estado de salida 1).
Espero que esto sea útil para alguien ... funciona razonablemente bien para mí (no es necesario hacer ajustes de ruta o DNS manualmente cada vez que abro una conexión).
fuente
Al menos no hay una manera fácil de hacerlo.
Puede agregar entradas al archivo de hosts (
C:\Windows\System32\drivers\etc\hosts
). Este archivo contiene asignaciones de nombres de host a direcciones IP y se prefiere a las solicitudes de DNS.fuente
¿Puede verificar el estado de la casilla de verificación 'Usar puerta de enlace predeterminada en la red remota'? Esto se encuentra abriendo las propiedades de su conexión VPN y vaya a la pestaña Redes y seleccione TCP / IP v4 o TCP / IP V6 y luego seleccione propiedades y luego avanzado. Esto puede estar habilitado, lo que podría significar que todo el tráfico de Internet se enruta a través de la conexión VPN. No siempre es posible deshabilitar esto y seguir haciendo lo que desea con la VPN, pero se puede deshabilitar, puede acelerar el acceso a Internet.
Si eso no ayuda, hay una pestaña DNS allí y puede intentar agregar sus servidores DNS allí. He intentado esto, pero espero que estas configuraciones anulen las configuraciones automáticas.
fuente
Desafortunadamente, netsh no puede eliminar los servidores dns asignados por dhcp. Pero esto se puede hacer borrando el parámetro DhcpNameServer en
clave de registro.
fuente
A partir de 2017, esto ahora es posible si se basa en OpenVPN
Agregue una línea al archivo de configuración de su cliente de
e ignorará todas las líneas de configuración empujadas que comienzan con el texto citado.
Las tres palabras clave de acción son
accept
ignore
reject
. No he descubierto un caso de uso para rechazar.fuente
Simplemente elimino esta opción de la configuración de VPN del cliente
setenv opt block-outside-dns
Se resolvió el problema.
fuente