Вы можете использовать следующий AppleScript , сохранить его как приложение и установить его в качестве агента (без значка док-станции).
Этот скрипт установит VPN-соединение, когда его нет. Таким образом, он также должен восстановить соединение вскоре после того, как ваше соединение обрывается. Вы можете изменить интервал для проверки вашего VPN-соединения, это 120 секунд в сценарии.
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
Я объяснил, как настроить это в этом ответе .
Can’t get «class svce» "MyVPN" of «class locc» of «class netp» of application "System Events".
System Events got an error: Can’t get service "MyVPN" of current location of network preferences. (-1728)
Я внес некоторые изменения в предоставленный ответ, потому что если что-то стоит делать, это стоит делать в землю. Я хотел переподключиться, если VPN был сброшен, но НЕ переподключаться, если VPN был преднамеренно отключен. Решение, которое я придумал, было эффективным и не элегантным.
Сначала я добавил хуки для запуска и завершения работы pppd, чтобы отслеживать желаемое состояние VPN. Эти файлы должны принадлежать пользователю root и иметь мировые разрешения на чтение / выполнение (
sudo chmod 755 /etc/ppp/ip-*
)./ И т.д. / ррр / ф-до:
/ etc / ppp / ip-down: для OS X 10.9.5 и ниже
/ etc / ppp / ip-down: для OS X 10.10 и выше
Затем, изменив вышеприведенный AppleScript, я смог проверить переменную состояния '/ var / run / reconnect_vpn', чтобы определить, нужно ли восстановить VPN:
Как и прежде, измените линию
set myConnection to the service "VPN"
на имя вашей VPN. Кроме того, при запуске файл «connect_vpn» не существует, поэтому я добавил логическое значение (startOnLogin), которое будет использоваться по умолчанию, когда файл не может быть найден. Мне нравится начинать немедленно, но если вы этого не сделаете, измените его на false.У меня есть ощущение, что если вы относитесь именно к поведению VPN, то вы также относитесь к тому, кто любит возиться, пока не найдет решение, и поэтому у этого ответа нет аудитории. Но на всякий случай вот оно. Надеюсь, это кому-нибудь поможет.
источник
Есть приложение, которое называется VPN Auto-Connect (ссылка на Mac App Store). Это 0,99 $.
После запуска он живет в строке меню; когда вы используете его для включения VPN, он будет отслеживать профиль VPN-подключения, который вы настроили на панели сетевых настроек OS X, и следить за тем, чтобы вы всегда оставались подключенными к нему. Значок строки меню VPN Auto-Connect предоставляет список всех определенных вами VPN-подключений и позволяет выбрать, к какому из них всегда подключаться.
источник
Новая опция - VPN Monitor, доступный в AppStore. Это позволяет выполнять больше настроек, таких как автоматический вход в систему, циклическое подключение через VPN-соединения и т. Д. Требуется как минимум OS X 10.9 Mavericks.
источник
Сценарий автоматического переподключения любого сброшенного сервиса VPN.
Я использовал rjarvis2010 «s решение , но я был не совсем доволен.
У меня много разных VPN-сервисов, к которым я подключаюсь, поэтому я хотел скрипт, который бы автоматически переподключал любую VPN-сеть, к которой я был подключен.
Чтобы это работало на вас, вам нужно заменить
Uni
с любым именем вашего местоположенияКогда вы закончите, сохраните его как приложение и поместите его в элементы входа, и все готово.
Кроме того , и это очень важно, что вам нужно настроить крючки PPP , как описано в rjarvis2010 «s решение
Кроме того, я бы рекомендовал вам не пытаться подключать несколько VPN одновременно. Чтобы остановить этот сценарий, вам может потребоваться принудительно завершить его через монитор активности (поскольку повторяющиеся циклы не позволяют ему время от времени получать внешний ввод).
источник
Я использую другой подход, чтобы сохранить мое VPN-соединение живым. Это включает в себя
launchd
запуск очень простого демона, который позволяет поддерживать VPN-соединение без входа в систему любого пользователя (это также позволяет избежать всплывающих окон с отключением VPN при выходе из спящего режима).создайте
launchd
файл plist из терминала:и введите следующий контент:
Вы можете использовать следующую команду для запуска вашего демона и тестирования:
Таким образом, у вас работает демон для всех пользователей, подключение выполняется только при наличии подключения к Интернету. Кроме того, VPN переподключается автоматически, когда интернет-соединение возвращается…
Редактировать:
Я считаю этот метод наиболее надежным, поскольку он позволяет автоматически устанавливать соединение vpn перед входом пользователя (полезно для серверов).
Обновления для Yosemite (OSX 10.10)
Амортизируется в Йосемити. Вы можете использовать следующее вместо
Также
Больше не работает в Йосемити. Вы можете использовать это вместо
источник
scutil --nc list
не перечисляет мое VPN-соединение, которое видно и подключается через настройки сети.Я видел, что здесь есть несколько ответов, использующих хуки входа в систему, которые не рекомендуются в новых версиях OS X в пользу Launch Agent и Launch Daemons.
Я создал скрипт и запустил агент. Агент вызывает сценарий оболочки каждые 30 секунд и пытается пропинговать статический IP-адрес в сети vpn. Если это не может пропинговать тот IP, это включает Ваше соединение vpn.
Если вы сделали это через приложение Apple Script, значок приложения всегда будет в вашей док-станции. Я предпочитаю, чтобы это работало автоматически в фоновом режиме.
Клонируйте проект ниже и следуйте инструкциям в файле readme. Конечным результатом является установочный пакет, который поместит файл plist агента запуска в / Library / LaunchAgents / и скрипт оболочки в / Library / Application Support / melonsmasher /.
Обязательно отредактируйте сценарий оболочки (auto-vpn), указав имя VPN-подключения и IP-адрес в сети VPN. Вы можете изменить интервал выполнения в файле plist (com.melonsmasher.autovpn.plist).
https://github.com/MelonSmasher/OSX-AutoVPN
источник
Прелесть AppleScripts в том, что вы можете делать с ней практически все, и это бесплатно, недостатком является то, что они обычно не очень отзывчивы (опросы через фиксированный интервал времени) и не имеют функций, которые могут иметь только собственные приложения MAC OS X. Хорошее и новое приложение для автоматического переподключения VPN - это «Монитор VPN» в магазине приложений, оно мгновенно переподключается в момент разрыва VPN-соединения, может повторно подключиться к другой службе VPN, если предпочтительная служба не работает, подключается при запуске, отслеживает время простоя и использует минимум системных ресурсов для запуска в фоновом режиме в качестве приложения строки состояния. VPN-монитор
источник