【问题标题】:Send all traffic over VPN connection Swift通过 VPN 连接 Swift 发送所有流量
【发布时间】:2015-06-21 06:42:16
【问题描述】:

我正在创建一个连接到 VPN 服务器的应用程序。我已经想出了如何做到这一点,但需要能够通过连接发送所有流量。有没有可以做到这一点的代码?到目前为止,我已经尝试过:

let manager: NEVPNManager = NEVPNManager.sharedManager()
var p = NEVPNProtocolIPSec()
manager.`protocol` = p

let pw = ""

p.username = ""
p.passwordReference = pw.dataUsingEncoding(NSUTF8StringEncoding)
p.serverAddress = ""
p.authenticationMethod = NEVPNIKEAuthenticationMethod.SharedSecret
//p.sharedSecretReference = getPasscodeNSData("vpnSharedSecret")
p.useExtendedAuthentication = true
p.disconnectOnSleep = false

【问题讨论】:

  • 没有使用NEVPNManager,但是根据我在配置VPN网络时的记忆,你应该在服务器端这样做。换句话说,当 VPN 连接建立时,根据服务器端规则(VPN 配置),您的本地路由表会被修改。您可以将其设置为仅通过 VPN 路由某些子网,所有流量,...只需我的 $.02 美元,时间很长...
  • 看起来您正在配置管理器但未启动它。 This answer 似乎有一个工作示例。
  • 也许我的回答可以帮到你stackoverflow.com/a/36124092/2858543

标签: ios swift


【解决方案1】:

来自苹果:

这是默认的路由方法。 IP 路由由 VPN 隧道时的数据包隧道提供商扩展 完全成立。有关详细信息,请参阅 NETunnelProvider。

这通常是从服务器端指定的,l2tp 确实允许用户切换此设置。为此,请查看NETunnelProviderroutingMethod 部分。向下滚动到Routing Network Data to the VPN 部分以获取您要查找的信息。

【讨论】:

    猜你喜欢
    • 2015-09-11
    • 2011-08-28
    • 2011-06-24
    • 1970-01-01
    • 2012-07-07
    • 2020-10-13
    • 1970-01-01
    • 2017-04-13
    • 2020-05-22
    相关资源
    最近更新 更多