【问题标题】:how to set up a vpn connection programmatically in MAC?如何在 MAC 中以编程方式设置 vpn 连接?
【发布时间】:2011-10-24 17:38:03
【问题描述】:

搜索了一段时间后,我发现在 mac 中以编程方式建立 vpn 连接的唯一最佳来源是在

http://lists.apple.com/archives/Macnetworkprog/2011/May/msg00032.html

但我在第 5 点被击中,而编码中提到了 kSCNetworkProtocolTypePPP 并且没有这样的事情......

有没有人按照上面的链接做的 还是有其他可用的来源...?

【问题讨论】:

  • @user3883413 的答案是指 GitHub 上的开源命令行工具 -macosvpn - 引用自述文件可以:“以编程方式创建 Mac OS VPN”。您不能简单地使用它,或者至少根据您的特定需求对其进行分叉和定制吗?

标签: macos vpn


【解决方案1】:

但我在第 5 点被击中,而编码中提到了 kSCNetworkProtocolTypePPP 并且没有这样的事情......

无需获取 PPP 协议,您可以直接将设置应用到您创建的接口。如果你创建了这样的界面:

interface = SCNetworkInterfaceCreateWithInterface(bottomInterface, kSCNetworkInterfaceTypePPP);

您可以使用以下方式直接应用 PPP 选项:

SCNetworkInterfaceSetConfiguration(interface, myOptions)

您必须使用

应用共享密钥
SCNetworkInterfaceSetExtendedConfiguration(interface, CFSTR("IPSec"), myOptions)

如果您想启用“通过 VPN 发送所有流量”,您需要先获取 IPv4 协议来应用这些设置:

SCNetworkProtocolRef protocol = SCNetworkServiceCopyProtocol(service, kSCNetworkProtocolTypeIPv4);
SCNetworkProtocolSetConfiguration(protocol, myOptions)

此答案中提到的源代码是从https://github.com/halo/macosvpn/blob/master/macosvpn/Classes/VPNController.m 中提取的,您可以在其中找到它的全部内容。

【讨论】:

    猜你喜欢
    • 2012-06-05
    • 2011-03-16
    • 2015-10-21
    • 2011-10-27
    • 2012-05-03
    • 2010-09-24
    • 2014-05-19
    • 2013-12-23
    • 2014-09-18
    相关资源
    最近更新 更多