如何在MAC中以编程方式建立vpn连接



搜索了一段时间后,我发现在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,您可以在那里找到完整的源代码。

最新更新