У меня есть две конфигурации VPN на моем Mac, и я хотел бы иметь возможность запускать их с консоли, когда я ssh на мою машину.
Я нашел команду, networksetup
которая позволяет мне настраивать соединения, но, насколько я могу судить, на самом деле не запускает.
Используя Льва.
macos
command-line
vpn
osx-lion
Ketema
источник
источник
Ответы:
Для более новых версий macOS может использоваться очень простая команда, как показано в ответах ниже, например, эта (дайте ей +1!).
Все что тебе нужно это:
Единственная проблема заключается в том, что вы не можете отключиться с помощью этой команды.
Вы также можете использовать AppleScript для подключения к VPN-сервисам по вашему выбору. Мы будем использовать функции оболочки, которые доступны из командной строки после их загрузки.
Добавьте нижеприведенные функции к вашему
~/.bash_profile
или~/.profile
(что бы вы ни использовали).Вам просто нужно изменить имя самого VPN-соединения, как это указано в настройках сети . Я использовал свой университетский VPN здесь.
Вы также можете изменить названия функций, если хотите сделать это для разных. Можно было бы сократить это, используя аргументы, но это прекрасно работает. Я тестировал его на Snow Leopard (но Leopard и Lion тоже должны работать).
После добавления функций перезагрузите терминал и вызовите их с помощью
vpn-connect
иvpn-disconnect
, соответственно.источник
vpn-connect && git fetch && vpn-disconnect
. Как вы думаете, есть способ сделать это?vpn-connect
его, он выдает,syntax error: Expected end of line but found identifier. (-2741)
но после преобразования его в приложение с помощью редактора AppleScript и вызоваopen vpn-connect.app
его работает. Однако, если нет активного сеанса GUI этого пользователя, aLSOpenURLsWithRole() failed with error -10810
вызывается при вызове через SSH.Вы также можете, по крайней мере, со Льва 1 , использовать команду scutil.
Например, если у меня есть VPN-сервис с именем «Foo», я мог бы подключиться через:
При желании я могу указать пользователя, пароль и секрет, используя флаги с одинаковыми именами:
Услугу можно отключить через:
Для получения более подробной справки вы можете посмотреть справочную страницу или запустить:
Обновить
Добавление быстрого скрипта для опроса, пока не будет установлено соединение (в ответ на комментарий Эрика Б.
Примечания:
источник
--user
, а не--username
scutil --nc stop Foo
не работает (на Yosemite)?Я не проверял это под Lion, но я использую следующую команду под Mountain Lion без проблем:
источник
scutil
нет!scutil
не берет никаких сохраненных данных, что является болью.Я просто использовал приведенный выше скрипт от slhck (который явно золотой бог), чтобы создать этот отличный рубиновый скрипт, который можно было бы использовать для всех видов вещей.
источник
Вы можете использовать
networksetup -connectpppoeservice "myvpn"
для подключения к vpn с именем myvpn и использоватьnetworksetup -disconnectpppoeservice "myvpn"
для отключения от vpn с именем myvpnПеред использованием этих командных строк вам необходимо вручную настроить соединение в Системных настройках> Сеть
источник
Работает на MacOS 10.14.5 Mojave:
Подключите VPN : используйте ответ @ slhck ->
networksetup -connectpppoeservice "VPN Name"
Отключить VPN : от ответа @ encoded ->
scutil --nc stop "VPN Name"
Это работает для моего L2TP через IPSEC VPN. Я не тестировал Cisco IPSEC или IKEv2 VPN
источник