9

我有一个在 iOS 6 上设置的配置文件,这样当某个 URL 被点击时,VPN 就会启动。

我正在使用以下配置文件键执行此操作:

<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandMatchDomainsAlways</key>
<array>
    <string>my_homepage.com</string>
</array>

在 iOS 6 上,这似乎工作正常。但是,在 iOS 7 中,似乎 OnDemandMatchDomainAlways 已被弃用,取而代之的是 OnDemandRules 键,并且“OnDemandMatchDomainAlways”的默认行为类似于“OnDemandMatchDomainsOnRetry”。所以现在,我正在尝试使用 OnDemandRules 键让我之前的设置在 iOS 7 上运行,如下所示:

<key>OnDemandRules</key>
<array>
    <dict>
        <key>Action</key>
        <string>Connect</string>
        <key>DNSDomainMatch</key>
        <array>
            <string>my_homepage.com</string>
        </array>
    </dict>
</array>

我也尝试使用这种方法进行设置:

<key>OnDemandRules</key>
    <array>
        <dict>
                    <key>Action</key>
            <string>EvaluateConnection</string>
            <key>ActionParameters</key>
            <array>
                <dict>
                    <key>Domains</key>
                    <array>
                        <string>url-that-redirects-if-vpn-off.com</string>
                    </array>
                    <key>DomainAction</key>
                    <string>ConnectIfNeeded</string>
            </dict>
        </array>
    </dict>
</array>

但是,这些方法似乎都不起作用。有谁知道如何设置 iOS VPN 配置文件,以便 VPN OnDemand 功能在 iOS 7 上的工作方式与在 iOS6 上的工作方式相同?

提前致谢,

4

3 回答 3

5

我遇到了同样的问题,并且能够通过将 OnDemanRules 密钥作为 IPSec 块的一部分再次获得按需功能,即

<key>IPSec</key>
<dict>
    <key>AuthenticationMethod</key>
    <string>Certificate</string>

    <!-- Other IPSEC VPN properties here. -->

    <key>OnDemandEnabled</key>
    <integer>1</integer>
    <key>OnDemandRules</key>
    <array>
        <dict>
        <key>Action</key>
        <string>Connect</string>
        <key>DNSDomainMatch</key>
        <array>
          <string>my_homepage.com</string>
        </array>
    </dict>
    </array>
</dict>

请注意,这与已发布的配置文件参考文档相矛盾。但是,就我而言,它使事情变得正常。

于 2013-09-24T18:09:22.007 回答
4

这个片段对我有用。我试图模仿“始终连接”的行为

        <key>IPSec</key>
        <dict>
            <key>AuthenticationMethod</key>
            <string>Certificate</string>
            <key>OnDemandEnabled</key>
            <integer>1</integer>
                    <!-- on demand rules -->
                    <key>OnDemandRules</key>
                    <array>
                    <dict>
                    <key>Action</key>
                    <string>EvaluateConnection</string>
                    <key>ActionParameters</key>
                    <array>
                    <dict>
                    <key>Domains</key>
                    <array>
                    <string>domain.com</string>
                    </array>
                    <key>RequiredURLStringProbe</key>
                    <string>https://host.domain.com/nonexistent_url</string>                    
                    <key>DomainAction</key>
                    <string>ConnectIfNeeded</string>
                    </dict>
                    </array>
                    </dict>
                    </array>
                    <!-- on demand rules -->
            <key>PayloadCertificateUUID</key>
            <string>...</string>
            <key>PromptForVPNPIN</key>
            <false/>
            <key>RemoteAddress</key>
            <string>...</string>
        </dict>
于 2013-10-03T11:46:51.097 回答
3

这是我在 iOS 7 和 7.1 中用于 VPN on Demand 的个人资料的摘录。

            <key>AuthenticationMethod</key>
            <string>Certificate</string>
            <key>OnDemandEnabled</key>
            <integer>1</integer>
            <key>OnDemandRules</key>
            <array>
                <dict>
                <key>Action</key>
                <string>Connect</string>
                <key>URLStringProbe</key>
                <string>http://internet-accessible-url.example.com</string>
                </dict>
            </array>
            <key>PayloadCertificateUUID</key>

这样,每当 iOS 设备尝试通过移动数据或 WiFi 访问 Internet 时,它都会触发自动 VPN on Demand 连接,无需用户交互。

我正在使用 StrongSwan 5.1.2 服务器作为与 Cisco IPSec 兼容的 VPN 服务器,具有明显的证书身份验证,但我使用 Xauth-noauth 来防止 iOS 设备不断询问辅助用户名/密码,即 xauth 身份验证。

描述文件管理器不允许 iOS 客户端设备保存辅助 xauth 凭据的密码。

请参阅我的博客关于此http://jelockwood.blogspot.co.uk/2014/03/how-to-do-vpn-on-demand-for-ios-at-zero.html

于 2014-03-18T15:13:35.263 回答