2 votos

PPPoE conexión Automática cuando está desconectado

Tengo una PPPoE de conexión a internet que tengo en mi Macbook Pro.

Hay una casilla 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 me desconecte el cable Ethernet.

Cuando me desconecte el cable Ethernet que se vaya, que me dice cada 5 minutos que no pudo conectar. Hasta que desactive la función de conexión automática. Luego, por supuesto, cuando vuelvo a casa tengo que volver a facturar - que derrota el propósito de "automática" de la conexión.

1voto

moodforaday Puntos 2633

1) Fácil solución: utilizar Compañero de cambiar automáticamente su ubicación en la red (y un montón de otros valores) dependiendo de la red.

Aparte: Sidekick es la nueva versión de una aplicación que anteriormente era conocido como NetworkLocation.la aplicación , pero ha sido completamente re-escrito. Yo era un beta-tester de la aplicación, pero también soy un cliente de pago de la misma, y no tiene ninguna otra conexión a la aplicación.

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

2) Si desea una solución gratuita, usted podría escribir un script de shell que se ejecuta a través de launchd. En primer lugar usted necesita 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>

Cambio /path/to/your/shell/script.sh a sea cual sea el camino que terminan haciendo de su secuencia de comandos de shell (y asegúrese de que el script ejecutable):

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

La parte difícil es el mismo script. Hay dos maneras de hacer esto:

"El SSID Manera"

Básicamente, usted tiene que encontrar alguna manera programática para saber cuando están en el hogar (es decir, cuando se desea utilizar PPPoE) y cuando no. La más sencilla manera de hacerlo es por averiguar cuales de red Wi-Fi.

NOTA: voy a asumir que usted tiene la configuración de una nueva ubicación de red llamado "PPPOE" que desea utilizar cuando usted está en casa, frente a los genéricos "Automático", el cual será utilizado en otros lugares.

La primera parte de la secuencia de comandos 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}'`

Entonces usted necesita para realizar diferentes acciones según el SSID, que sería algo como esto (cambio 'mySSID' por lo que su casa SSID)

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 usted NO tiene una red Wi-Fi doméstica, entonces usted tendría que mirar por 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)

Posibles dificultades: cuando el primer equipo 'despierta' tomará un par de segundos para conectarse a una red Wi-Fi, por lo que usted puede necesitar añadir un poco de 'sueño' comandos para evitar cambiar las ubicaciones antes de que toda la información de la red se ha actualizado.

"El Ethernet y Wi-Fi de Forma"

Para los propósitos de esta discusión, "Ethernet" significa "el equipo está conectado a una red mediante un cable físico."

Si sólo vas a usar Ethernet en casa, otra opción es deshabilitar el puerto Ethernet cuando no esté en uso (que yo suponga que significa que PPPOE no intentará conectarse, pero que puede ser una suposición incorrecta).

Ya he escrito un script que hace eso, que se puede encontrar aquí: http://dl.dropbox.com/u/18414/ase/29227/wired-no-wifi.sh que se puede utilizar con launchd.

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

launchd nota

Supongo que usted sabe que su plist para launchd debe ser almacenado en ~/Library/LaunchAgents y que después de añadir una nueva, tendrá que cerrar/iniciar sesión o usar launchctl load como este:

launchctl load ~/Library/LaunchAgents/YourLaunchdFileHere.plist

Hablando en serio, trate de Sidekick

De repente, $30 se ve bonito y barato, no se ;-?

Sí se puede geek y ello en la línea de comandos, pero Sidekick puede hacer todo esto y más, y mucho más fácilmente. A menos que seas extremadamente pobres, barato, y/o nerd, le recomiendo que sobre launchd -- pero todavía me encanta ser capaz de conseguir que "bajo el capó" y jugar con este tipo de cosas.

0voto

Igor Puntos 41

El uso de una funcionalidad de la Ubicación. Es superior cuadro combinado en Network preferences.

Elija Editar Ubicaciones, crear uno nuevo, Aplicar y después de que usted será capaz de cambiar entre la Casa (con PPPoE auto-connect) y otros lugares de menú de Apple.

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