Как программно создать VPN-соединение в Mac OS X? - PullRequest
0 голосов
/ 16 июля 2010

У меня есть файл конфигурации, который полностью описывает, как подключиться к VPN. Я хотел бы написать инструмент (C или Objective-C) для чтения в файле, а затем создать новый интерфейс VPN в системе. Я предполагаю, что ответ будет иметь какое-либо отношение к SCNetworkServiceCreate и / или SCNetworkInterfaceCreateWithInterface. Оба они хотят привязать к другому интерфейсу. Что меня озадачивает, так это то, что теоретически VPN-соединения должны проходить поверх любого IP-интерфейса, поэтому я не знаю, что использовать для базового интерфейса. Любая помощь или указатели будут с благодарностью.

Ответы [ 2 ]

2 голосов
/ 13 февраля 2016

macosvpn - это инструмент командной строки, написанный на Objective-C для GitHub, который позволяет вам «создавать виртуальные частные сети Mac OS». Например. Чтобы добавить службу L2TP через IPSec VPN, вы должны сделать следующее:

sudo macosvpn create --l2tp Atlantic --endpoint atlantic.example.com --username Alice --password p4ssw0rd --shared-secret s3same

Должно быть просто прочитать параметры вашего файла конфигурации в аргументы флага команды.

На сегодняшний день macosvpn доступен через Homebrew: brew install macosvp. Xcode - это требование сборки.

0 голосов
/ 29 июля 2010

Ответ на этот вопрос для полноты.

Итак, ответ не очень хорошо задокументирован. Однако существует магическое постоянное определение интерфейса для любого протокола, который вы хотите использовать поверх текущего подключенного интерфейса IPv4, kSCNetworkInterfaceIPv4.

Поэтому код для создания нового VPN строит стек VPN поверх этого интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...