Мне нужно развернуть пару удаленных компьютеров, и мне нужно, чтобы они всегда подключались к VPN, когда есть подключение к Интернету. Это возможно? Если так, то как?
1 ответ
Во-первых, вам нужно настроить locationchanger, скрипт, который запускается всякий раз, когда (возможно) меняются настройки сети.
Я использую сильно модифицированную версию (без определения местоположения, просто показывать уведомление Growl всякий раз, когда что-либо меняется, т.е. в разделе «делать что-то здесь, что должно произойти после каждого изменения сети») более года, и это довольно надежный Иногда он обнаруживает два изменения в быстрой последовательности, но это все. Поскольку ваши потребности больше соответствуют значениям по умолчанию, это, вероятно, будет работать еще лучше для вас.
Откройте редактор AppleScript и вставьте следующий код:
tell application "System Events"
tell current location of network preferences
if exists service "Displayed Name" then
set VPNservice to service "Displayed Name"
if connected of first configuration of VPNservice then
disconnect VPNservice
else
connect VPNservice
end if
else
display alert "Could not find VPN connection"
end if
end tell
end tell
Замените Displayed Name
на имя вашего VPN-подключения в Системных настройках »Сеть.
Сохранить как приложение, например /Applications/Utilities/Toggle VPN.app
Затем отредактируйте скрипт locationchanger
и добавьте
open "/Applications/Utilities/Toggle VPN.app"
Если вы не хотите, чтобы значок отображался в Dock всякий раз, когда вы что-то меняете, вы можете вместо этого сохранить AppleScript как скрипт и выполнить его из locationchanger
следующим образом:
osascript "/path/to/Toggle VPN.scpt"
Это решение потребует некоторых экспериментов с вашей стороны. Причина очевидна: подключение или отключение VPN - это изменение конфигурации сети. Поэтому, учитывая то, что я написал здесь, возможно, что вы подключаетесь к сети, сценарий подключается к VPN, изменение конфигурации VPN снова запускает сценарий, и он отключается.
Конечно, вы можете просто удалить строку с надписью disconnect VPNservice
и попытаться. Это действительно зависит от того, какое поведение вы хотите. Но это строительные блоки.