Mam dwie konfiguracje VPN na moim komputerze Mac i chciałbym móc je uruchomić z konsoli, gdy ssh na moim komputerze.
Znalazłem polecenie, networksetup
które pozwala mi konfigurować połączenia, ale o ile mogę stwierdzić, nie uruchamiam żadnego.
Korzystanie z lwa.
macos
command-line
vpn
osx-lion
Ketema
źródło
źródło
Odpowiedzi:
W przypadku nowszych wersji systemu macOS można użyć bardzo prostej komendy, jak pokazano w poniższych odpowiedziach, np. Tej (daj jej +1!).
Wszystko czego potrzebujesz to:
Jedynym problemem jest to, że nie można rozłączyć za pomocą tego polecenia.
Możesz także użyć AppleScript, aby połączyć się z wybranymi usługami VPN. Użyjemy funkcji powłoki, które są dostępne z wiersza poleceń po ich załadowaniu.
Dodaj poniższe funkcje do swojego
~/.bash_profile
lub~/.profile
(cokolwiek używasz).Musisz tylko zmienić nazwę samego połączenia VPN, tak jak pojawia się w preferencjach sieci . Użyłem tutaj mojej uniwersyteckiej sieci VPN.
Możesz także zmienić nazwy funkcji, jeśli chcesz to zrobić dla różnych. Można to skrócić za pomocą argumentów, ale w ten sposób działa dobrze. Przetestowałem to na Snow Leopard (ale Leopard i Lion też powinny działać).
Po dodaniu funkcji ponownie załaduj terminal i wywołaj je odpowiednio przy pomocy
vpn-connect
ivpn-disconnect
.źródło
vpn-connect && git fetch && vpn-disconnect
. Czy uważasz, że jest na to sposób?vpn-connect
go wywołuje rzut,syntax error: Expected end of line but found identifier. (-2741)
ale po przekonwertowaniu go na aplikację za pomocą edytora AppleScript i wywołanieopen vpn-connect.app
go działa. Jednak jeśli nie ma aktywnej sesji GUI tego użytkownika, toLSOpenURLsWithRole() failed with error -10810
jest wywoływana podczas wywoływania go przez SSH.Możesz także, przynajmniej od Lwa 1 , użyć polecenia scutil.
Na przykład, jeśli mam usługę VPN o nazwie „Foo”, mogę połączyć się przez:
Opcjonalnie mogę określić użytkownika, hasło i klucz tajny, używając flag o tych samych nazwach:
Usługę można rozłączyć poprzez:
Aby uzyskać bardziej szczegółową pomoc, możesz zobaczyć stronę podręcznika lub uruchomić:
Aktualizacja
Dodanie szybkiego skryptu do odpytywania do momentu ustanowienia połączenia (w odpowiedzi na komentarz Erica B.
Przypisy:
źródło
--user
--username
scutil --nc stop Foo
nie działa (w Yosemite)?Nie testowałem tego pod Lionem, ale bez problemu używam następującego polecenia pod Mountain Lion:
źródło
scutil
nie!scutil
nie pobiera żadnych zapisanych danych, co jest uciążliwe.Właśnie użyłem powyższego skryptu autorstwa slhck (który jest wyraźnie złotym bogiem), aby stworzyć ten fajny skrypt ruby, który mógłby być używany do wszelkiego rodzaju rzeczy
źródło
Możesz użyć,
networksetup -connectpppoeservice "myvpn"
aby połączyć się z siecią VPN o nazwie myvpn i użyć,networksetup -disconnectpppoeservice "myvpn"
aby rozłączyć się z siecią VPN o nazwie myvpnPrzed użyciem tych wierszy poleceń należy ręcznie skonfigurować połączenie w Preferencjach systemowych> Sieć
źródło
Działa na MacOS 10.14.5 Mojave:
Połącz VPN : użyj odpowiedzi @ slhck ->
networksetup -connectpppoeservice "VPN Name"
Odłącz VPN : od odpowiedzi @ zakodowanej ->
scutil --nc stop "VPN Name"
To działało dla mojego L2TP przez IPSEC VPN. Nie testowałem VPN CPS IPSEC ani IKEv2
źródło