PPPoE Conexión automática cuando está desconectado

2

Tengo una conexión a Internet PPPoE que uso en mi Macbook Pro.

Hay una casilla de verificación en la configuración que permite volver a conectarse automáticamente cuando sea necesario, lo cual es bueno. Sin embargo, el sistema no es lo suficientemente inteligente como para dejar de intentarlo cuando desconecto el cable Ethernet.

Cuando desconecto el Ethernet para que desaparezca, me sigue diciendo cada 5 minutos que no se pudo conectar. Hasta que desactive la función de autoconectarse. Luego, por supuesto, cuando regrese a casa tengo que volver a comprobarlo, lo que anula el propósito de la conexión "automática".

    
pregunta nute 26.10.2011 - 10:53

2 respuestas

1

1) Solución fácil: use Sidekick para cambiar automáticamente la ubicación de su red (y muchas otras configuraciones) dependiendo de la red usted está en.

  

Aparte: Sidekick es la nueva versión de una aplicación que anteriormente se conocía como NetworkLocation.app pero ha sido completamente reescrito Fui un beta-tester para la aplicación, pero también soy un cliente que paga y no tengo otra conexión con la aplicación.

La aplicación cuesta $ 29, pero hay una demostración que puede usar para ver cómo funciona antes de comprar. Muy recomendable.

2) Si desea una solución gratuita, puede escribir un script de shell que se ejecute a través de launchd. Primero necesitarías un archivo plist, algo como esto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AbandonProcessGroup</key>
    <true/>
    <key>Label</key>
    <string>localhost.networkmonitor</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/shell/script.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>120</integer>
    <key>WatchPaths</key>
    <array>
        <string>/Library/Preferences/SystemConfiguration/</string>
    </array>
</dict>
</plist>

Cambie /path/to/your/shell/script.sh a cualquier ruta que termine haciendo en su script de shell (y asegúrese de que el script sea ejecutable):

chmod 755 /path/to/your/shell/script.sh

La parte difícil es el script en sí. Hay dos formas de hacer esto:

"The SSID Way"

Básicamente, tiene que encontrar una manera programática de saber cuándo está en casa (es decir, cuándo quiere usar PPPoE) y cuándo no. La forma más sencilla de hacerlo es averiguar en qué red Wi-Fi está conectado.

  

NOTA: asumiré que ha configurado una nueva ubicación de red llamada "PPPOE" que desea usar cuando esté en su hogar, en lugar del genérico "Automático", que será utilizado en otros lugares.

La primera parte del script podría tener este aspecto:

#!/bin/sh

    # Apple provides a utility called 'airport' but it's buried outside of the normal $PATH
    # so you'll have to call it directly (or link it to somewhere in your $PATH using 'ln -s')
    # this is the correct path for Snow Leopard and Lion. I think it had a different path
    # in earlier versions of OS X but I'm not sure
AIRPORT='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'

    # get the SSID of the network you are connected to
SSID='${AIRPORT} -I | awk -F": " '/ SSID:/{print $NF}''

Luego, debe realizar diferentes acciones según el SSID, que se vería de esta forma (cambie 'mySSID' a cualquiera que sea su SSID local)

if [ "$SSID" = "mySSID" ]
then
    # Select your 'PPPOE' network location (or whatever you called it)
    scselect PPPOE

else
    # If we are not on that Wi-Fi network, select the default 'Automatic' network location
    scselect Automatic
fi

Si NO tiene una red Wi-Fi doméstica, tendrá que buscar la ausencia de un SSID, que podría tener este aspecto

if [ "$SSID" = "" ]
then
    # no Wi-Fi network found, let's assume that we are at home
    scselect PPPOE

else
    # if there is a Wi-Fi network, let's use the 'Automatic' network location
    scselect Automatic
fi

exit 0
# (End of script)

Peligros potenciales: cuando la computadora se "despierta" por primera vez, tardará unos segundos en conectarse a una red Wi-Fi, por lo que es posible que deba agregar algunos comandos de "suspensión" para evitar cambiar de ubicación antes de que toda la red la información se ha actualizado.

"El modo Ethernet vs Wi-Fi"

Para los fines de esta discusión, "Ethernet" significa "la computadora está conectada a una red mediante un cable físico".

Si solo usas Ethernet en casa, otra opción es deshabilitar tu puerto Ethernet cuando no esté en uso (lo que asumo asumiendo significa que PPPOE no intentará conectarse, pero puede ser una suposición incorrecta) ).

Ya escribí un script que hace eso, que puede encontrar aquí: enlace que puedes usar con launchd.

Tenga en cuenta que el script asume que su puerto Ethernet es en0 y su puerto Wi-Fi es en1.

nota de lanzamiento

Supongo que sabes que tu lista para launchd debe almacenarse en ~/Library/LaunchAgents y que después de agregar una nueva, debes cerrar sesión / iniciar sesión o usar launchctl load como esto:

launchctl load ~/Library/LaunchAgents/YourLaunchdFileHere.plist

Aunque en serio, prueba Sidekick

De repente, $ 30 parece bastante barato, ¿no? -?

Sí, puedes hacer geek y hacer esto en la línea de comandos, pero Sidekick puede hacer todo esto y mucho más, y mucho más fácilmente. A menos que sea extremadamente pobre, barato y / o nerd, lo recomiendo mucho más que launchd , pero todavía me encanta poder estar "bajo el capó" y jugar con este tipo de cosas.

    
respondido por el TJ Luoma 26.11.2011 - 03:25
0

Usa una funcionalidad de ubicación. Es el cuadro combinado superior debajo de Network preferences .

Elija Editar ubicaciones, cree una nueva, Aplicar y luego podrá cambiar entre Inicio (con conexión automática PPPoE) y otras ubicaciones desde el menú Apple.

    
respondido por el iskra 27.10.2011 - 00:09

Lea otras preguntas en las etiquetas