0 votos

¿Cómo ver mi servicio VPN personalizado en un terminal para exportarlo?

Cuando ejecuto este comando para listar mis servicios de red:

networksetup -listallnetworkservices

Sólo consigo Wifi ¿Por qué mi configuración de VPN no aparece aquí (está en la lista de Preferencias de Red)? ¿Y cómo puedo hacer que aparezca en el terminal?

Mi objetivo es exportarlo a través de un terminal, editar la configuración manualmente en un editor de texto y volver a importarlo.

EDITAR

He configurado "MyVPN" como abajo y se está conectando a través de esta ventana de configuración de red. enter image description here

Pero al intentar listarlo o ejecutarlo con:

networksetup -connectpppoeservice "MyVPN"

O con:

scutil --nc start "MyVPN"
No service

Entonces no funciona.

1voto

UnixCoon Puntos 23

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"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X