¿Puedo ROUTE ADD xxxx automáticamente después de hacer una conexión VPN en Windows 7?

8

Después de hacer una conexión VPN a mi trabajo / lo que sea, actualmente tengo que ir al símbolo del sistema y agregar manualmente una ruta.

p.ej.

ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 METRIC 1 o cualquiera que sea el comando.

¿Es posible que esto suceda automáticamente después de realizar una conexión VPN?

Pure.Krome
fuente

Respuestas:

4

Si desea que sea un proceso de 1 paso, puede crear un archivo por lotes que se ejecute rasdial para automatizar su conexión VPN y luego haga un AGREGAR RUTA:

rasdial "connection name" username password ('*' to prompt for password)
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 

Esto supone que se está conectando a una VPN de Microsoft, pero puede ejecutar el script del cliente OpenVPN de la misma manera:

openvpn c:\path\to\config-file.ovpn
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 
nedm
fuente
El cliente OpenVPN debería agregar automáticamente las rutas apropiadas, suponiendo que esté configurado correctamente.
MDMarra
Verdadero para las rutas asignadas / enviadas desde el servidor, pero puede haber rutas adicionales que desee definir.
nedm 05 de
OOO! ahora eso es interesante :) Fue un error tipográfico en la línea ROUTE ADD ... pero además de eso .bat no funciona porque necesita ejecutarse en modo privilegiado :(
Pure.Krome
Sí, 'agregar ruta' requiere privilegios de administrador, pero debe poder hacer clic derecho en el icono de la barra de tareas del símbolo del sistema y elegir 'Ejecutar como usuario diferente' e ingresar las credenciales de administrador, luego ejecutar el archivo bat desde la línea de comando. Colocaría el archivo .bat en el directorio que lo haga dejando el símbolo del sistema de forma predeterminada, por lo que puede escribir 'vpnscript.bat' o lo que sea después de iniciar sesión sin cambiar de directorio. Alternativamente, control-shift-click también debería abrir el símbolo del sistema en modo privilegiado / administrador con UAC.
nedm
Con el consejo de PowerShell de @ErikvO, lo configura y lo olvida, utilizando la conexión VPN normalmente sin necesidad de privilegios de administrador.
Laurent
19

Si tiene varias VPN, puede encontrarse con el problema de que cuando se conectan en orden aleatorio, sus ID de interfaz cambian. En ese caso, lo normal ROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42no funciona. La próxima vez que la VPN se conecte, podría tener un número de interfaz diferente.

Powershell tiene un cmdlet disponible que agrega rutas en la conexión VPN y las elimina nuevamente cuando se desconecta la VPN: Add-VpnConnectionRoute . Funciona sin tener que especificar la ID de la interfaz.

La sintaxis básica es así:

Add-VpnConnectionRoute -ConnectionName "VPN Connection Name" -DestinationPrefix 10.0.0.0/16

Después de ingresar este comando, las rutas se crearán / eliminarán automáticamente en la conexión / desconexión de la VPN.

ErikvO
fuente
Debería ser la respuesta aceptada. Por cierto, no sabía sobre ese "PowerShell" antes de entonces ... No entiendo por qué esos comandos no están disponibles en CMD. Otra tontería de Microsoft ...
Laurent
+1 para el Poweshell. Me sorprende por qué MS no agrega otra pestaña en la configuración de IP, aparte del hecho de que todavía están construyendo paneles de control de reemplazo para la (actualmente) interfaz de usuario moderna / móvil.
Mayyit
1
¡Mi Windows 7 no tiene ese comando!
LatinSuD
3
netsh interface ipv4 add route [destination/prefixlength] "[interface/connection name]"

Lo estoy usando para lidiar con conexiones que tienen superposición de subred agregando rutas estáticas para hosts en la subred remota: servidores y similares.

Stuart Smith
fuente
Esto es exactamente lo que necesitaba, ya que estoy usando Windows Server 2008. La solución PoswerShell no funcionó.
Michael Coxon
Esto funcionó perfectamente para mi cliente de Windows 7. Gracias.
Vic
No es persistente y requiere que la VPN ya esté conectada, ¿verdad?
LatinSuD
Eso es correcto. El problema que tuve fue con la superposición de subred, por lo que tener rutas persistentes causaría problemas. Solo desea que tenga lugar después de que la conexión esté activa. Observé el uso de disparadores de eventos a través del programador de tareas, pero nunca lo hice funcionar de manera consistente. Debería ser posible crear un servicio que se suscriba a SENS para hacerlo (creo que la conexión y desconexión de la interfaz está cubierta por SENS), pero navegar por el contexto de seguridad para generar otro proceso con derechos de administrador es problemático debido a UAC. Me imagino que se puede hacer al permitir la interacción con el escritorio y las indicaciones de UAC, solo
Stuart Smith
1

Podría hacer que la ruta sea persistente (creo que con route -p) para que no necesite ingresarla cada vez. Si está utilizando openVPN, el servidor puede enviar una ruta al cliente: push "route 192.168.1.0 255.255.255.0"por ejemplo. Con otros servidores VPN no lo sé, pero supongo que también pueden tener una opción similar.

Laurent
fuente
así que no se puede hacer, del lado del cliente ... y bajo demanda?
Pure.Krome
No conozco ninguna forma de hacerlo (con openVPN) en el lado del cliente y no de forma permanente diferente de la respuesta de nedm, pero será necesario ejecutar el archivo bat con privilegios de administrador. Creo que una ruta persistente no es una mala solución si no puede modificar la configuración del servidor openVPN.
Laurent