如何在MAC中以编程方式设置vpn连接?

时间:2011-08-11 07:23:53

标签: macos vpn

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

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

但是我在第5点发现了关于kSCNetworkProtocolTypePPP的编码并且没有这样的东西......

有人这样做,如上面的链接所示 或者是否还有其他来源......?

1 个答案:

答案 0 :(得分:2)

  

但是我在第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中提取的,您可以在其中找到它。