搜索了一段时间后,我发现在MAC中以编程方式建立VPN连接的唯一最佳来源是
http://lists.apple.com/archives/Macnetworkprog/2011/May/msg00032.html但是我在编码时被击中了第5点,上面写着kSCNetworkProtocolTypePPP,没有这样的东西…
有没有人做过上面的链接还是有其他可用的来源…?
但是我在编码时被击中了第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,您可以在那里找到完整的源代码。