有没有办法在有网络连接时强制 OS X Lion 连接到 VPN?

有没有办法在有网络连接时强制 OS X Lion 连接到 VPN?

我需要部署几台远程计算机,并且需要它们在有互联网连接时始终连接到 VPN。这可能吗?如果可以,怎么做?

答案1

首先,你需要设置位置变换器,每当(可能)网络设置发生变化时启动的脚本。

我一直在使用经过大量修改的版本(没有位置检测,只是在任何事物已更改,即在部分“每次网络变化后,在这里做一些需要发生的事情”) 已经使用了一年多,而且相当可靠。有时它会快速连续地检测到两次更改,但仅此而已。由于您的需求更符合默认设置,因此它可能会更好地为您服务。


打开 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并尝试。这实际上取决于您想要的确切行为。但这些是构建块。

相关内容