Reinicie la configuración de red desde la terminal

He tenido un problema en el que mi Macbook no se vuelve a conectar a Internet después de apagar mi VPN del trabajo. Un simple reinicio soluciona esto, pero me preguntaba si había alguna manera de reiniciar las configuraciones de red o borrar el caché (no estoy seguro de cuál es exactamente el problema) desde la línea de comandos, sin tener que reiniciar.

He intentado lo siguiente, sin éxito

$ ifconfig en0 down && ifconfig en0 up

¿Hay alguna manera de restablecer la configuración de la red a los valores predeterminados después de reiniciar?

Editar: esto no sucede siempre, no estoy exactamente seguro de qué cadena de eventos lo desencadena.

¿Es un problema de DNS o de enrutamiento? ¿Puedes hacer ping a una IP (4.4.4.4 por ejemplo)?
No puedo hacer ping a una dirección externa. Mi sospecha era un problema de DNS; sin embargo, las direcciones DNS parecían no haber cambiado después de reiniciar. También debo señalar que este problema no ocurre siempre, es esporádico.
Si no puede hacer ping a una dirección IP, no es DNS. Intente sudo networksetup -setnetworkserviceenabled Ethernet off; sleep 10; networksetup -setnetworkserviceenabled Ethernet onEso deshabilitará su Ethernet, espere 10 segundos y luego vuelva a encenderlo.
Bien gracias. ¡La próxima vez que se caiga, lo intentaré e informaré!
Es posible que las rutas proporcionadas por la conexión VPN no se borren de las tablas cuando te desconectes. Sugeriría intentarlo sudo networksetup -setadditionalroutes "Insert Name of Network Service here". La ausencia de argumentos después del nombre del servicio borra todas las rutas adicionales. PD: no creo que macOS haya brindado un acceso de tan bajo nivel a las interfaces que podría esperar al usar ifconfig, básicamente es un envoltorio dejado para la compatibilidad en este punto. Eche un vistazo a man scutilun control de grano fino real.

Respuestas (1)

La falta de acceso a la red después de desconectarse de una VPN puede ser un síntoma de un problema de enrutamiento. Si su cliente VPN no se desconecta limpiamente, la puerta de enlace que dirige su tráfico a la red virtual a veces se puede dejar en su lugar, enrutando efectivamente su tráfico a un callejón sin salida.

Sugeriría bajar sus interfaces, vaciar la tabla de enrutamiento de las entradas de la puerta de enlace y volver a abrirlas:

  1. Reduzca sus interfaces de red:

    for i in $(ifconfig | egrep -o "^[a-z].+\d{1}:" | sed 's/://'); do sudo ifconfig "$i" down; done
    
  2. Vacíe la tabla de enrutamiento: sudo route -n flush.

  3. Vuelva a activar sus interfaces: (repita el paso 1 con upen lugar de down).

Si desea una función Bash reutilizable para esto que puede colocar en su .bashrc (o donde sea), puede guardar lo siguiente:

resetroute () {
    echo "Flushing routes...";
    for i in $(ifconfig | egrep -o "^[a-z].+\d{1}:" | sed 's/://');
    do
        sudo ifconfig "$i" down;
    done;
    sudo route -n flush;
    for i in $(ifconfig | egrep -o "^[a-z].+\d{1}:" | sed 's/://');
    do
        sudo ifconfig "$i" up;
    done
}
Sorprendentemente, el error no ha vuelto a aparecer. Definitivamente intentaré esto cuando lo haga y lo aceptaré si funciona. Hasta entonces, +1 por la sugerencia.