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

nee*_*ima 6 macos vpn

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

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

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

有任何人如上面的链接所示,或有任何其他可用的来源......?

小智 2

但我在编码时对第五点感到震惊,其中提到了 kSCNetworkProtocolTypePPP 并且没有这样的事情......

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

interface = SCNetworkInterfaceCreateWithInterface(bottomInterface, kSCNetworkInterfaceTypePPP);
Run Code Online (Sandbox Code Playgroud)

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

SCNetworkInterfaceSetConfiguration(interface, myOptions)
Run Code Online (Sandbox Code Playgroud)

您必须使用以下方式应用共享密钥

SCNetworkInterfaceSetExtendedConfiguration(interface, CFSTR("IPSec"), myOptions)
Run Code Online (Sandbox Code Playgroud)

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

SCNetworkProtocolRef protocol = SCNetworkServiceCopyProtocol(service, kSCNetworkProtocolTypeIPv4);
SCNetworkProtocolSetConfiguration(protocol, myOptions)
Run Code Online (Sandbox Code Playgroud)

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