在Jail Broken iOS设备上自动启动OpenVPN

时间:2015-03-12 20:46:49

标签: ios jailbreak openvpn launchd

我有一台iPad Air 2被囚禁。

我目前安装了OpenVPN,其shell版本为openvpn:

OpenVPN 2.3-alpha1 i686-apple-darwin10 [SSL(OpenSSL)] [LZO2] [eurephia] [MH] [PF_INET6] [IPv6有效载荷20110522-1(2.2.0)]建于2012年5月28日

我正在尝试将OpenVPN的命令行可执行文件设置为启动守护程序,因此它会在重新启动后自动连接到我的OpenVPN服务器。这需要超级自动化,以便我可以将ipad安装在我不在身体附近的地方。

我在/ Library / LaunchDaemons

创建了以下plist文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.openvpn</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>/usr/local/sbin/openvpn</string>
<key>ProgramArguments</key>
<array>
<string>openvpn</string>
<string>—-cd</string>
<string>/var/mobile/Documents/Configurations/bigfoot.ovpn</string>
<string>--config</string>
<string>bigfoot.ovpn</string>
<string>--auto-proxy</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>TimeOut</key>
<integer>90</integer>
<key>WorkingDirectory</key>
<string>/etc/openvpn</string>
</dict>
</plist>

重启后,这个过程似乎没有开始,我在“dmesg”中没有看到任何方向来帮助我,这将是很棒的。

我会使用OpenVPN GUI应用程序,但它需要我手动切换连接。

如果有人不知道如何实现这一目标,我愿意接受建议。

谢谢

1 个答案:

答案 0 :(得分:0)

你正朝着正确的方向前进。 launchd守护进程是可行的方法。

有些事情在你的plist中看起来不正确:

    不推荐使用
  1. OnDemand,而是需要使用KeepAlive。在您的情况下,只需将其设置为true
  2. 通常,您不要混用ProgramProgramArguments。他们基本上做同样的事情,只有后者才能做得更多。最好只使用ProgramArguments
  3. 实际ProgramArguments看起来错了。请记住,这些是将传递给openvpn进程的程序参数。他们应该看起来像这样

    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/sbin/openvpn</string>
    <string>--config</string>
    <string>/var/mobile/Documents/Configurations/bigfoot.ovpn</string>
    <string>--auto-proxy</string>
    </array>
    

    并且不需要Program

  4. 现在,当您想要调试launchd守护进程时,您不需要在每次需要测试时重新启动。你可以用这个:

    launchctl load /Library/LaunchDaemons/org.openvpn.plist

    它会将您的守护程序加载到launchd并启动它。如果出现问题,他会告诉你。当您需要重新加载plist(进行一些更改)时,您可以:

    launchctl unload /Library/LaunchDaemons/org.openvpn.plist

    停止守护程序并从launchd然后

    卸载它

    launchctl load /Library/LaunchDaemons/org.openvpn.plist