【问题标题】:Auto Start OpenVPN in shell on a Jail Broken iOS device在越狱的 iOS 设备上的 shell 中自动启动 OpenVPN
【发布时间】:2015-03-12 20:46:49
【问题描述】:

我有一台越狱的 iPad Air 2。

我目前安装了 OpenVPN 和 shell 版本的 openvpn:

OpenVPN 2.3-alpha1 i686-apple-darwin10 [SSL (OpenSSL)] [LZO2] [eurephia] [MH] [PF_INET6] [IPv6 payload 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 应用程序,但它需要我手动切换连接。

如果有人对我如何实现这一点有其他想法,我愿意接受建议。

谢谢

【问题讨论】:

    标签: ios jailbreak openvpn launchd


    【解决方案1】:

    你正朝着正确的方向前进。 launchd daemons 是要走的路。

    您的 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

    现在,当您想要调试 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 2014-06-05
      • 1970-01-01
      • 2011-05-16
      相关资源
      最近更新 更多