Conseguir VPN a volver a conectar automáticamente en la caída de la conexión -- macos campo con vpn camp apple Relacionados El problema

Getting VPN to auto-reconnect on connection drop


14
vote

problema

Español

Utilizo la VPN incorporada en Mac OS X 10.7.3. Es IPsec, FWIW. De vez en cuando, se desconecta (probablemente un problema con mi servidor corporativo). ¿Hay alguna manera de conseguir que se vuelva a conectarse automáticamente? A veces no me doy cuenta por un tiempo, lo cual es un poco molesto.

Original en ingles

I use the built-in VPN on Mac OS X 10.7.3. It's IPSec, FWIW. From time to time, it disconnects (probably an issue with my corporate server). Is there a way to get it to automatically reconnect? Sometimes I don't notice for a while, which is kinda annoying.

     

Lista de respuestas

10
 
vote
vote
La mejor respuesta
 

Puede usar el siguiente AppleScript , guárdelo como una aplicación y configúrelo para ser un agente (sin icono de Dock).

Este script configurará una conexión VPN cuando no haya ninguna. Por lo tanto, también debe volver a conectarse poco después de que se caiga su conexión. Puede cambiar el intervalo para verificar su conexión VPN, son 120 segundos en el script.

  on idle     tell application "System Events"         tell current location of network preferences             set myConnection to the service "VPN University"             if myConnection is not null then                 if current configuration of myConnection is not connected then                     connect myConnection                 end if             end if         end tell         return 120     end tell end idle   

He explicado cómo configurar esto en esta respuesta .

 

You could use the following AppleScript, save it as an application and set it to be a agent (no dock icon).

This script will setup a VPN connection when there is none. Therefore, it should also reconnect shortly after your connection drops. You can change the interval to check your VPN connection, it's 120 seconds in the script.

on idle     tell application "System Events"         tell current location of network preferences             set myConnection to the service "VPN University"             if myConnection is not null then                 if current configuration of myConnection is not connected then                     connect myConnection                 end if             end if         end tell         return 120     end tell end idle 

I've explained how to set this up in this answer.

 
 
 
 
9
 
vote

Hice algunos cambios en la respuesta proporcionada, porque si vale la pena hacer algo, vale la pena hacerlo en el suelo. Quería volver a conectar si se eliminó la VPN, pero no se vuelve a conectar si la VPN se desconectó intencionalmente. La solución con la que acumulé fue tanto efectiva como inelegante.

Primero agregué ganchos a la puesta en marcha y apagado PPPD para realizar un seguimiento del estado VPN deseado. Estos archivos deben ser propiedad de la raíz, y tienen permisos de lectura / ejecución mundial ( sudo chmod 755 /etc/ppp/ip-* ).

/ etc / ppp / ip-up:

  #!/bin/sh echo true > /var/run/reconnect_vpn chmod 644 /var/run/reconnect_vpn   

/ etc / ppp / ip-down: para OS X 10.9.5 y abajo

  #!/bin/sh tail /var/log/ppp.log | grep '[DISCONNECT]' if [ $? == 0 ] ; then echo false > /var/run/reconnect_vpn fi   

/ etc / ppp / ip-down: para OS X 10.10 y superior

  #!/bin/sh tail /var/log/ppp.log | grep '[TERMINATE]' if [ $? == 0 ] ; then echo false > /var/run/reconnect_vpn fi   

Luego modificando el AppleScript arriba, pude verificar la variable '/ var / run / reconnect_vpn' para determinar si desea llevar la VPN de nuevo:

  on idle     tell application "System Events"         tell current location of network preferences             set myConnection to the service "VPN"             set startOnLogin to true             local doReconnect             try                 set doReconnect to (do shell script "cat /var/run/reconnect_vpn")             on error errMsg                 set doReconnect to startOnLogin             end try             if myConnection is not null and doReconnect then                 if current configuration of myConnection is not connected then                     connect myConnection                 end if             end if         end tell         return 120     end tell end idle   

Como antes, cambie la línea set myConnection to the service "VPN" a lo que sea llamado su VPN. Además, en la puesta en marcha, el archivo 'reconect_vpn' no existe, así que agregué un booleano (StarTonLogin) para servir como predeterminado cuando no se pudo encontrar el archivo. Me gusta comenzar de inmediato, pero si no lo cambias a FALSO.

Tengo la sensación de que si usted es el tipo de persona es este particular sobre el comportamiento de VPN, también es el tipo de persona a la que le gusta hacer hueco hasta que encuentre una solución y, por lo tanto, esta respuesta no tiene audiencia. Pero por si acaso, aquí está. Espero que ayude a alguien.

 

I made some changes to the provided answer, because if something is worth doing it's worth doing into the ground. I wanted to reconnect if the VPN was dropped, but NOT reconnect if the VPN was intentionally disconnected. The solution I came up with was both effective and inelegant.

First I added hooks to the pppd startup and shutdown to keep track of the desired VPN state. These files should be owned by root, and have world read/execute permissions (sudo chmod 755 /etc/ppp/ip-*).

/etc/ppp/ip-up:

#!/bin/sh echo true > /var/run/reconnect_vpn chmod 644 /var/run/reconnect_vpn 

/etc/ppp/ip-down: for OS X 10.9.5 and below

#!/bin/sh tail /var/log/ppp.log | grep '\[DISCONNECT\]' if [ $? == 0 ] ; then echo false > /var/run/reconnect_vpn fi 

/etc/ppp/ip-down: for OS X 10.10 and above

#!/bin/sh tail /var/log/ppp.log | grep '\[TERMINATE\]' if [ $? == 0 ] ; then echo false > /var/run/reconnect_vpn fi 

Then by modifying the AppleScript above, I was able to check the '/var/run/reconnect_vpn' status variable to determine whether to bring the VPN back up:

on idle     tell application "System Events"         tell current location of network preferences             set myConnection to the service "VPN"             set startOnLogin to true             local doReconnect             try                 set doReconnect to (do shell script "cat /var/run/reconnect_vpn")             on error errMsg                 set doReconnect to startOnLogin             end try             if myConnection is not null and doReconnect then                 if current configuration of myConnection is not connected then                     connect myConnection                 end if             end if         end tell         return 120     end tell end idle 

As before, change the line set myConnection to the service "VPN" to whatever your VPN is called. Also, on startup the 'reconnect_vpn' file doesn't exist, so I added a boolean (startOnLogin) to serve as the default when the file could not be found. I like to start immediately, but if you don't then change it to false.

I have a feeling that if you're the kind of person is this particular about VPN behavior, then you're also the kind of person who likes fumbling around until you find a solution and therefore this answer has no audience. But just in case, here it is. Hope it helps somebody.

 
 
 
 
4
 
vote
¿Quieres mejorar esta publicación? Proporcionar respuestas detalladas a esta pregunta, incluidas las citas y una explicación de por qué su respuesta es correcta. Las respuestas sin suficiente detalle pueden ser editadas o eliminadas.

Hay una aplicación que se llama VPN Auto-Conect (Mac App Store Link). Es $ 0.99.

Una vez iniciado, vive en su barra de menú; Cuando lo use para encender VPN "ON", supervisará un perfil de conexión VPN que configuró en el panel Preferencias de la red de OS X y asegúrese de que siempre permanezca conectado a él. El icono de la barra de menú de VPN Auto-Connect proporciona una lista de todas las conexiones VPN que ha definido y le permite elegir cuál se conecte siempre a.

 

There's an app that does it called VPN Auto-Connect (Mac App Store link). It's $0.99.

Once started, it lives in your menu bar; when you use it to turn VPN "on", it will monitor a VPN connection profile you set up in OS X's Network preference pane and ensure you always remain connected to it. VPN Auto-Connect's menu-bar icon provides a list of all the VPN connections you've defined and lets you choose which one to always connect to.

 
 
   
   
0
 
vote

Una nueva opción es monitor VPN disponible en la tienda de AppStore. Permite una mayor personalización, como inicio de sesión automático, ciclismo a través de conexiones VPN, etc. Al menos OS X 10.9 Mavericks requeridos.

 

A new option is VPN Monitor available on the AppStore. It allows for more customization, like auto-login, cycling through VPN connections, etc. At least OS X 10.9 Mavericks required.

 
 
0
 
vote

Script Auto-vuelva a conectar CUALQUIER Dropped VPN Service.

He estado usando rjarvis2010 's solución pero no estaba del todo feliz con eso.

Tengo muchos servicios de VPN diferentes con los que me conecto, así que quería un script que reconecte automáticamente cualquier VPN en la que me conecté.

  on idle     tell application "System Events"         tell location "Uni" of network preferences             -- keep checking for VPN name until a VPN is connected             set empty to true             repeat until empty is false                 try                     -- set variable "myVPN" to the name of the service that is connected and is a VPN                     set myVPN to get name of first service whose (kind is greater than 11 and kind is less than 17) and connected of current configuration is true                     set empty to false                 on error                     set empty to true                     delay 15                 end try             end repeat                          -- doReconnect is a file that reads from the ppp.log and contains "true" by default, "false" if the vpn service was manually disconnected recently             local doReconnect             set doReconnect to (do shell script "cat /var/run/reconnect_vpn")                          repeat while doReconnect contains "true"                 set ConfProp to get current configuration of service myVPN                 if connected of ConfProp is false then                     delay 1                     set doReconnect to (do shell script "cat /var/run/reconnect_vpn")                     if doReconnect contains "true" then                         try                             connect service myVPN                         on error errorMessage                         end try                     else                         exit repeat                     end if                 end if                 delay 5             end repeat         end tell     end tell     return 1 end idle   

Para que funcione para usted, debe reemplazar

  • Uni con lo que sea el nombre de su ubicación

Una vez que haya terminado, guárdelo como una aplicación y colóquelo en sus elementos de inicio de sesión y está listo.

, y esto es importante, debe configurar los ganchos PPP como se describe en rjarvis2010 's SOLUCIÓN

Además, le recomendaría que no intentes esto conectando múltiples VPNS simultáneamente. Para detener este script, es posible que deba forzar que lo abandonen a través del monitor de actividad (ya que los bucles de repetición no permiten recibir una entrada externa a veces).

 

Script auto-reconnect any dropped VPN service.

I had been using rjarvis2010's solution but I wasn't quite happy with it.

I have many different VPN services I connect to, so I wanted a script that would automatically reconnect any VPN I was connected to.

on idle     tell application "System Events"         tell location "Uni" of network preferences             -- keep checking for VPN name until a VPN is connected             set empty to true             repeat until empty is false                 try                     -- set variable "myVPN" to the name of the service that is connected and is a VPN                     set myVPN to get name of first service whose (kind is greater than 11 and kind is less than 17) and connected of current configuration is true                     set empty to false                 on error                     set empty to true                     delay 15                 end try             end repeat                          -- doReconnect is a file that reads from the ppp.log and contains "true" by default, "false" if the vpn service was manually disconnected recently             local doReconnect             set doReconnect to (do shell script "cat /var/run/reconnect_vpn")                          repeat while doReconnect contains "true"                 set ConfProp to get current configuration of service myVPN                 if connected of ConfProp is false then                     delay 1                     set doReconnect to (do shell script "cat /var/run/reconnect_vpn")                     if doReconnect contains "true" then                         try                             connect service myVPN                         on error errorMessage                         end try                     else                         exit repeat                     end if                 end if                 delay 5             end repeat         end tell     end tell     return 1 end idle 

To make it work for you, you need to replace

  • Uni with whatever your location's name is

Once you're done, save it as an application and place it in your Login Items and you're good to go.

Also, and this is important, you need to set up the PPP hooks as described in rjarvis2010's solution

Also, I would recommend you don't try this connecting multiple VPNs simultaneously. To stop this script you might need to force quit it through the activity monitor (as the repeat loops don't allow it to receive external input at times).

 
 
0
 
vote

Estoy usando un enfoque diferente para mantener vivo mi conexión VPN. Esto implica obtener un "código> abcdefghijklmnlaunchd Daemon que permite mantener la conexión VPN sin que ningún usuario ha iniciado sesión (esto también evite las ventanas emergentes de desconexión VPN cuando se reanuda desde el modo de suspensión).

Crear un archivo de plist de de sudo nano /Library/LaunchDaemons/my.vpn.connector.plist

e ingrese el siguiente contenido:

  ABCDEFGHIJKLMNABCDEFGHIJKLMN5   

Puede usar el siguiente comando para iniciar su demonio y prueba:

  launchctl load /Library/LaunchDaemons/my.vpn.connector.plist   

De esta manera, tiene un demonio que se ejecuta para todos los usuarios, la conexión intentó solo cuando la conexión a Internet está disponible. Además, VPN se reconecta automáticamente cuando la conexión a Internet está de vuelta. |

Editar:

Encuentro este método el más robusto, ya que permite que se realice una conexión VPN automáticamente, antes de que un usuario inicie sesión (útil para servidores).

Actualizaciones para Yosemite (OSX 10.10)

      <key>KeepAlive</key>     <dict>         <key>NetworkState</key>         <true/>     </dict>   

se deprecia en Yosemite. Puede usar lo siguiente en lugar

  ABCDEFGHIJKLMNABCDEFGHIJKLMN8   

también

  ABCDEFGHIJKLMNABCDEFGHIJKLMN9   

ya no funciona en Yosemite. Puedes usar esto en lugar

  Uni0  

 

I'm using different approach to keep my VPN connection alive. This involves getting a very simple launchd daemon running which allows maintaining VPN connection without any user logged in (this also avoid VPN disconnection popups when resuming from sleep mode).

create a launchd plist file from terminal :

sudo nano /Library/LaunchDaemons/my.vpn.connector.plist 

and enter following content :

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>RunAtLoad</key>     <true/>     <key>KeepAlive</key>     <dict>         <key>NetworkState</key>         <true/>     </dict>     <key>Label</key>     <string>my.vpn.connector</string>     <key>ProgramArguments</key>     <array>         <string>bash</string>         <string>-c</string>         <string>(test $(networksetup -showpppoestatus MyVPN) = 'disconnected' &&  ping -o my.vpn.server.url && networksetup -connectpppoeservice MyVPN) ; sleep 10</string>     </array> </dict> </plist> 

You can use following command to start your daemon and test:

launchctl load /Library/LaunchDaemons/my.vpn.connector.plist 

This way, you have a daemon running for all users, connection attempted only when internet connection is available. Also, VPN is reconnected automatically when internet connection is backxe2x80xa6

Edit:

I find this method the most robust as it allows a vpn connect to be made automatically, before a user logs in (useful for servers).

Updates for Yosemite (OSX 10.10)

    <key>KeepAlive</key>     <dict>         <key>NetworkState</key>         <true/>     </dict> 

Is depreciated in Yosemite. You can use the following instead

    <key>KeepAlive</key>     <true/> 

Also

networksetup -connectpppoeservice MyVPN 

No longer works in Yosemite. You can use this instead

scutil --nc start MyVPN 
 
 
 
 
0
 
vote

Vi que hay algunas respuestas aquí que usan los ganchos de inicio de sesión, los están en desuso en versiones más recientes de OS X a favor del agente de lanzamiento y lanzan demonios.

He creado un agente de guión y lanzamiento. El agente llama un script de shell cada 30 segundos y intenta ping una dirección IP que es estática en la red VPN. Si no puede hacer ping esa IP, habilita su conexión VPN.

Si lo hiciste a través de una aplicación Apple Script, el icono de la aplicación siempre estará en su muelle. Prefiero tener esto corriendo automáticamente en el fondo.

clonar el proyecto a continuación y sigue las instrucciones en el Readme. El resultado final es un paquete de instalación que colocará un archivo de Agente de lanzamiento en / Library / Lanzagents / y un script shell en / Library / Soporte de aplicaciones / MelonSmasher /.

Asegúrese de editar el script shell (Auto-VPN) con su nombre de conexión VPN y una dirección IP que está en la red VPN. Puede cambiar el intervalo de ejecución en el archivo de plist (com.melonsmasher.autovpn.plist).

https://github.com/melonsmasher/osx-autovpn

 

I saw that there are a few answers on here that use login hooks, those are deprecated in newer versions of OS X in favor of Launch Agent and Launch Daemons.

I created a script and launch agent. The agent calls a shell script every 30 seconds and tries to ping an IP address that is static on the vpn network. If it cannot ping that IP it enables your vpn connection.

If you did this through an Apple Script App, the app icon will always be in your dock. I prefer to have this running automatically in the background.

Clone the project below and follow the directions in the readme. The end result is an installer package that will place a launch agent plist file in /Library/LaunchAgents/ and a shell script in /Library/Application Support/melonsmasher/.

Be sure to edit the shell script(auto-vpn) with your VPN connection name and an IP address that is on the VPN network. You can change the run interval in the plist file(com.melonsmasher.autovpn.plist).

https://github.com/MelonSmasher/OSX-AutoVPN

 
 
-2
 
vote

La belleza de Appleescripts es que puede hacer casi cualquier cosa con ella y es gratuita, el inconveniente es que generalmente no son muy receptivos (sondeo en un intervalo de tiempo fijo) y carecen de características, solo las aplicaciones nativas de Mac OS X pueden tener. Una aplicación de reconexión automática de VPN agradable y nueva es "VPN Monitor" en la tienda de aplicaciones, se vuelve a conectar instantáneamente en el momento en que se cae una conexión VPN, es capaz de volver a conectarse a un servicio VPN diferente si el servicio preferido está abajo, se conecta al inicio. Mantiene un seguimiento de su tiempo de inactividad y utiliza un mínimo de recursos del sistema para ejecutarse en el fondo como una aplicación de la barra de estado. monitor vpn

 

The beauty of AppleScripts is that you can do almost anything with it and it's free, the downside is that they are usually not very responsive (polling at a fixed time interval) and lack features only native MAC OS X apps can have. A nice and new VPN auto reconnect app is "VPN Monitor" in the app store, it reconnects instantly the moment a VPN connection drops, is able to reconnect to a different VPN service if the preferred service is down, connects at start-up, keeps track of your downtime and uses a minimum of system resources to run in the background as a statusbar application. VPN Monitor

 
 
 
 

Relacionados problema

44  ¿Cómo hago el juego de video de iTunes más lento o más rápido?  ( How do i make itunes video play slower or faster ) 
Quiero reproducir videos en iTunes más rápido (1x, 2x, doble velocidad, etc.) o tal vez más lento. ¿Cómo hago eso? ...

0  León Caracteres especiales Entrada en Snow Leopard  ( Lion special characters input at snow leopard ) 
¿Hay alguna aplicación de terceros para habilitar la entrada de caracteres especial en la llave de sujeción para el leopardo de la nieve es lo mismo que está ...

4  ¿Podría ICLOUD ser reemplazado por un servidor webDAV personal?  ( Could icloud be replaced by a personal webdav server ) 
Me gusta ejecutar todos mis propios servicios de datos (por seguridad y confidencialidad). Me pregunto si alguien ha intentado reemplazar iCloud con un servid...

87  ¿Por qué no se encuentra GIT después de instalar OS X LEON?  ( Why is git not found after installing os x lion ) 
Acabo de actualizar a OS X LEON y ahora no puede inicializar Git donde solía funcionar bien: $ git add . -bash: git: command not found Soy nuevo en gi...

0  Preguntos de montaña Lion-contraseña  ( Mountain lion password prompts ) 
¿Cómo dejo de pedirle a Mountain Lion pidiéndome que ponga en mi contraseña cada vez que quiero mover / cambiar las carpetas / archivos, etc.? Un ejemplo es...

1  MacBook Pro HDMI sin sonido  ( Macbook pro hdmi no sound ) 
Compré un MacBook Pro en marzo de 2011. Coberté un cable mini a HDMI desde mi computadora portátil a mi receptor de Sony. No tengo una foto, pero no tengo son...

2  ¿Alguna buena buena MAC / iPhone Combo IM aplicaciones por ahí?  ( Any real good mac iphone combo im applications out there ) 
Estoy buscando un combo de dos aplicaciones IM, una para la Mac y la otra para el iPhone . Las características principales que estoy buscando son las sigui...

52  ¿Cómo recuperar la herramienta de mano en Preview.App en 10.8?  ( How to get the hand tool back in preview app in 10 8 ) 
en la vista previa de la Mountain Lion.App La barra de herramientas se cambió con bastante drásticamente. Mientras puedo ver por qué lo hicieron, descubrí q...

16  Cómo cambiar la puerta de enlace predeterminada de una máquina Mac OSX  ( How to change the default gateway of a mac osx machine ) 
Estoy familiarizado con la ruta Agregar comando de GW predeterminado en Linux para agregar una puerta de enlace predeterminada, pero esto no funciona en Mac O...

2  Miniaturas para las fotos antiguas están equivocadas en la aplicación de fotos  ( Thumbnails for old photos are wrong in photos app ) 
Importé un gran número de fotos antiguas en iPhoto, y luego actualizé a la nueva aplicación de fotos recientemente. Después de la actualización, las miniatura...

0  ¿Por qué necesito usar sudo purga para liberar la memoria y no hacerlo automáticamente?  ( Why do i need to use sudo purge to free up memory and not doing it automatically ) 
Compré un MacBook recientemente con 16 GB de RAM y sin ninguna razón. A veces está usando más de memoria normal y ejecuto su purga para liberar la memoria. ¿H...

3  Nombre: error al formatear NTFS en OS X 10.8.4 utilizando "diskutil" (terminal)  ( Name error when formatting ntfs on os x 10 8 4 using diskutil terminal ) 
Tengo una MacBook Pro 13 pulgadas - OS X 10.8.4 (león de montaña), que actualicé con un SSD. Instalé el HDD original como segunda unidad en lugar de la óptica...

4  Cifrar copias de seguridad  ( Encrypt backups ) 
¿Es mejor cifrar el disco duro que usará para la copia de seguridad de la máquina de tiempo con la utilidad de disco o con la máquina del tiempo? Me he dado c...

1  Cambio de mi cable de pantalla desde HDMI para mostrar MINI LLEVE al número de resolución MAC  ( Changing my display cable from hdmi to display mini lead to resolution issue mac ) 
Después de tener un problema con el cable HDMI en Samsung Syncmaster 1600x900, Lo cambié a un displayport al adaptador VGA, pero ahora no está detectando el m...

11  Pantalla negra con cursor en lugar de la ventana de inicio de sesión  ( Black screen with cursor instead of login window ) 
anoche My Mid-2010 Mac Pro despertó y probablemente instaló algunas actualizaciones (Mavericks). Después de esto, cada vez que arranque, la pantalla negra con...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos


Licensed under cc by-sa 3.0 with attribution required.