Saya memiliki dua konfigurasi VPN di mac saya dan saya ingin dapat memulainya dari konsol ketika saya ssh ke mesin saya.
Saya telah menemukan perintah networksetup
yang memungkinkan saya untuk mengkonfigurasi koneksi, tetapi sejauh yang saya tahu tidak benar-benar memulai satu.
Menggunakan Lion.
macos
command-line
vpn
osx-lion
Ketema
sumber
sumber
Jawaban:
Untuk versi macOS yang lebih baru, perintah yang sangat sederhana dapat digunakan, seperti yang ditunjukkan pada jawaban di bawah, misalnya yang ini (berikan +1!).
Yang kamu butuhkan adalah:
Satu-satunya masalah adalah Anda tidak dapat memutuskan sambungan menggunakan perintah ini.
Anda juga dapat menggunakan AppleScript untuk terhubung ke layanan VPN pilihan Anda. Kami akan menggunakan fungsi shell, yang tersedia dari baris perintah, setelah mereka dimuat.
Tambahkan fungsi di bawah ini ke Anda
~/.bash_profile
atau~/.profile
(apa pun yang Anda gunakan).Anda hanya perlu mengubah nama koneksi VPN itu sendiri, seperti yang muncul di bawah preferensi Jaringan . Saya menggunakan VPN universitas saya di sini.
Anda dapat mengubah nama fungsi juga, jika Anda ingin melakukannya untuk yang berbeda. Dimungkinkan untuk mempersingkat argumen ini menggunakan, tetapi berfungsi dengan baik seperti ini. Saya mengujinya di Snow Leopard (tapi Leopard dan Lion juga bisa digunakan).
Setelah Anda menambahkan fungsi, muat ulang terminal dan panggil mereka dengan
vpn-connect
danvpn-disconnect
, masing-masing.sumber
vpn-connect && git fetch && vpn-disconnect
. Apakah Anda pikir ada cara untuk melakukan ini?vpn-connect
tidak melemparsyntax error: Expected end of line but found identifier. (-2741)
tetapi setelah dikonversi ke Aplikasi dengan editor AppleScript dan menyebutnyaopen vpn-connect.app
berfungsi. Namun jika tidak ada sesi GUI aktif dari penggunaLSOpenURLsWithRole() failed with error -10810
itu dilemparkan saat memanggilnya melalui SSH.Anda juga dapat, setidaknya dari Lion 1 , menggunakan perintah scutil.
Misalnya, jika saya memiliki layanan VPN bernama "Foo", saya dapat terhubung melalui:
Saya dapat secara opsional menentukan pengguna, kata sandi, dan rahasia menggunakan bendera dengan nama yang sama:
Layanan dapat terputus melalui:
Untuk bantuan lebih rinci, Anda dapat melihat halaman manual , atau menjalankan:
Memperbarui
Menambahkan skrip cepat ke polling hingga koneksi terbentuk (sebagai tanggapan atas komentar dari Eric B.
Catatan kaki:
sumber
--user
, bukan--username
scutil --nc stop Foo
tidak bekerja (pada Yosemite)?Belum menguji ini di bawah Lion tetapi saya menggunakan perintah berikut di bawah Mountain Lion tanpa masalah:
sumber
scutil
tidak!scutil
tidak mengambil data yang disimpan, yang menyusahkan.Saya hanya menggunakan skrip di atas oleh slhck (yang jelas-jelas dewa emas) untuk membuat skrip ruby yang bagus yang bisa digunakan untuk segala macam hal
sumber
Anda dapat menggunakan
networksetup -connectpppoeservice "myvpn"
untuk terhubung ke vpn bernama myvpn, dan gunakannetworksetup -disconnectpppoeservice "myvpn"
untuk memutuskan sambungan dari vpn bernama myvpnSebelum menggunakan baris perintah ini, Anda perlu mengkonfigurasi koneksi secara manual di System Preferences> Network
sumber
Bekerja pada MacOS 10.14.5 Mojave:
Hubungkan VPN : Gunakan jawaban @ slhck ->
networksetup -connectpppoeservice "VPN Name"
Putuskan sambungan VPN : Dari jawaban @ encoded ->
scutil --nc stop "VPN Name"
Ini bekerja untuk L2TP saya melalui IPSEC VPN. Saya tidak menguji VPN Cisco IPSEC atau IKEv2
sumber