PPPoE Connessione automatica quando scollegato

2

Ho una connessione Internet PPPoE che uso sul mio Macbook Pro.

Nelle impostazioni è presente una casella di controllo che consente di riconnettersi automaticamente quando necessario, il che è positivo. Tuttavia, il sistema non è abbastanza intelligente da smettere di provare quando scollego il cavo Ethernet.

Quando disconnetto Ethernet per andare via, continua a dirmi ogni 5 minuti che non è riuscito a connettersi. Fino a quando non deseleziono la funzione di autoconnect. Poi, naturalmente, quando torno a casa devo ricontrollare - che sconfigge lo scopo della connessione "automatica".

    
posta nute 26.10.2011 - 10:53
fonte

2 risposte

1

1) Soluzione semplice: usa Sidekick per cambiare automaticamente la tua posizione di rete (e molte altre impostazioni) a seconda della rete sei su.

Aside: Sidekick is the new version of an app which was previously known as NetworkLocation.app but it has been completely re-written. I was a beta-tester for the app, but I'm also a paying customer of it, and have no other connection to the app.

L'app costa $ 29, ma c'è una demo che puoi usare per vedere come funziona prima di acquistare. Altamente raccomandato.

2) Se vuoi una soluzione gratuita, puoi scrivere uno script di shell che viene eseguito tramite launchd. Per prima cosa avresti bisogno di un file plist, qualcosa del genere:

<?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>

Cambia /path/to/your/shell/script.sh in qualunque percorso tu finisca per fare lo script della tua shell (e assicurati che lo script sia eseguibile):

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

La parte difficile è la sceneggiatura stessa. Ci sono due modi per farlo:

"Il modo SSID"

Fondamentalmente devi trovare un modo programmatico per dire quando sei a casa (cioè quando vuoi usare PPPoE) e quando non lo fai. Il modo più semplice per farlo è individuando la rete Wi-Fi attiva.

NOTE: I am going to assume that you have setup a new network location called "PPPOE" that you want to use when you are home, as opposed to the generic "Automatic" which will be used elsewhere.

La prima parte dello script potrebbe essere simile a questa:

#!/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}''

Quindi devi intraprendere azioni diverse a seconda dell'SSID, che assomiglierebbe a qualcosa del genere (cambia "mySSID" a qualunque sia il tuo SSID di casa)

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

Se NON hai una rete Wi-Fi domestica, dovresti cercare l' assenza di un SSID, che potrebbe apparire come questo

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)

Potenziali inconvenienti: quando il computer si "sveglia" per la prima volta ci vorranno alcuni secondi per connettersi a una rete Wi-Fi, quindi potrebbe essere necessario aggiungere alcuni comandi "sleep" per evitare di cambiare posizione prima di tutta la rete le informazioni sono state aggiornate.

"La modalità Ethernet o Wi-Fi"

Ai fini di questa discussione, "Ethernet" significa "il computer è collegato a una rete tramite un cavo fisico".

Se si usa Ethernet solo a casa, un'altra opzione è disabilitare la porta Ethernet quando non in uso (che I presumo significa che PPPOE non tenterà di connettersi, ma potrebbe essere un'assunzione errata ).

Ho già scritto uno script che lo fa, che puoi trovare qui: link che potresti utilizzare con launchd.

Nota che lo script presuppone che la tua porta Ethernet sia en0 e la tua porta Wi-Fi sia en1.

nota di lancio

Suppongo che tu sappia che il tuo plist per launchd dovrebbe essere memorizzato in ~/Library/LaunchAgents e che dopo averne aggiunto uno devi uscire / login o usare launchctl load come questo:

launchctl load ~/Library/LaunchAgents/YourLaunchdFileHere.plist

Seriamente, prova Sidekick

All'improvviso $ 30 sembra piuttosto economico, vero? -?

Sì, puoi dare un'occhiata e farlo sulla riga di comando, ma Sidekick può fare tutto questo e altro, e molto più facilmente. A meno che tu non sia estremamente povero, a buon mercato e / o nerd, consiglio vivamente di superare launchd - ma mi piace ancora poter essere "sotto le casse" e armeggiare con questo genere di cose.

    
risposta data 26.11.2011 - 03:25
fonte
0

Utilizza una funzionalità di posizione. È la casella combinata più in alto in Network preferences .

Scegli Modifica località, creane una nuova, Applica e dopo potrai passare da Home (con connessione automatica PPPoE) e altre posizioni dal menu Apple.

    
risposta data 27.10.2011 - 00:09
fonte

Leggi altre domande sui tag