Utilice networksetup o scutil
Puede utilizarlo para, al menos, establecer/desconectar conexiones a la VPN.
Utilice este comando para conectar la VPN configurada con el nombre "myVPN":
networksetup -connectpppoeservice "myVPN"
Desconectar de la VPN
networksetup -disconnectpppoeservice "myVPN"
Cuando quiera comprobar el estado de la conexión
networksetup -showpppoestatus "myVPN"
La "utilidad de configuración del sistema" o comando scutil también permite acceder a la configuración de la red.
Para conectarse a su VPN utilice este comando:
scutil --nc start "myVPN"
Ejecute el siguiente comando para desconectarse de la VPN:
scutil --nc stop "myVPN"
Si quieres comprobar el estado de la conexión, utiliza:
scutil --nc status "myVPN"
Hagámoslo aún mejor
Código Github
#!/bin/bash
#
# Provides some basic utilities for VPN connections.
readonly cmd="${1}"
readonly vpn="${2}"
err() {
echo "$*" >&2
}
validateCmd() {
if [[ -z "${cmd}" ]]; then
err "Command must be provided: [connect, disconnect, status, list]"
exit 1
fi
}
validateVpnName() {
if [[ -z "${vpn}" ]]; then
err "VPN name must be provided as second argument"
exit 1
fi
}
isConnected() {
networksetup -showpppoestatus "${vpn}" | grep -qv "^connected$"
}
enterPassword() {
sleep 1
osascript -e "tell application \"System Events\" to keystroke \"${1}\""
osascript -e "tell application \"System Events\" to keystroke return"
}
connect() {
if ! isConnected; then
err "Already connected to '${vpn}'"
exit 1
fi
local readonly password="$(security find-generic-password -s "${vpn}" -w)"
if [[ -z "${password}" ]]; then
err "Unable to find VPN password in keychain"
exit 1
fi
scutil --nc start "${vpn}"
enterPassword "${password}"
}
disconnect() {
scutil --nc stop "${vpn}"
}
status() {
scutil --nc status "${vpn}"
}
list() {
scutil --nc list
}
main() {
validateCmd
case "${cmd}" in
connect)
validateVpnName
connect "${vpn}"
;;
disconnect)
validateVpnName
disconnect "${vpn}"
;;
status)
validateVpnName
status "${vpn}"
;;
list)
list
;;
*)
err "Unexpected cmd '${cmd}', must be one of [connect, disconnect, status, list]"
exit 1
;;
esac
}
set -e
main "${@}"
set +e
Abre el script en un editor y añade este código. Digamos que se llama vpnConnection. Añade #!/bin/bash
para que pueda arrancar sin más
echo `'#!/bin/bash'` > ~/vpnConnection.sh && chmod +x ~/vpnConnection.sh
./vpnConnection.sh list
mostrar todas las conexiones VPN
./vpnConnection.sh connect "myVPN"
Conéctese a la VPN "myVPN" e introduzca automáticamente la contraseña
./vpnConnection.sh disconnect "myVPN"
desconectar la VPN "myVPN"
./vpnConnection.sh status "myVPN"
ver el estado de la conexión para la VPN "myVPN"