我有一个配置文件,完整地描述了如何连接到VPN。我想编写一个工具(C或Objective-C)来读取文件,然后在系统上创建一个新的VPN接口。 我猜测答案将与SCNetworkServiceCreate和/或SCNetworkInterfaceCreateWithInterface有关。这两个都想绑定到另一个接口。让我感到困惑的是,从理论上讲,VPN连接应该位于任何IP接口之上,因此我不知道如何使用基本接口。 任何帮助或指示将不胜感激。
答案 0 :(得分:2)
macosvpn是在GitHub上用Objective-C编写的命令行工具,它允许您以编程方式创建Mac OS VPN"。例如。要通过IPSec VPN服务添加L2TP,您可以这样做:
sudo macosvpn create --l2tp Atlantic --endpoint atlantic.example.com --username Alice --password p4ssw0rd --shared-secret s3same
将配置文件params读入命令的标志args应该很简单。
截至今天,macosvpn可以通过Homebrew获得:brew install macosvp
。 Xcode是构建要求。
答案 1 :(得分:0)
为了完整性而回答这个问题。
所以,答案没有详细记录。但是,对于您希望在当前连接的IPv4接口kSCNetworkInterfaceIPv4之上运行的任何协议,都有一个神奇的常量接口定义。
因此,创建新VPN的代码会在该接口之上构建VPN堆栈。