Hoe uw router automatisch de Geeky Way opnieuw opstarten
Verizon FIOS is geweldig - de snelheden zijn ongelooflijk, en de prijs is ... nou ja, nogal duur. Het echte probleem is dat de vreselijke router die ze je geven, voortdurend opnieuw moet worden opgestart, wat een koninklijke pijn is gezien het feit dat het in de kelder ligt. En ik wil niet van de bank af.
Dus overwoog ik hoe ik dit probleem met behulp van technologie kon oplossen. Dat is precies wat geeks doen?
Ja, ik weet het, ik zou waarschijnlijk Verizon kunnen bellen en de router kunnen upgraden. Ik weet zeker dat ze nu een beter model hebben. En zeker, je kunt de firmware updaten, maar dat zal niet werken voor mijn oude router omdat er geen update is. Tijd voor een eenvoudigere oplossing die idealiter een cron-taak omvat. Cron-banen zijn altijd een goede beslissing.
Na drie minuten onderzoek en brainstormen, kwam er een oplossing: je kunt telnet op de router inschakelen, een script instellen dat automatisch een reeks commando's uitvoert met behulp van de telnet-interface, en dat script vervolgens plannen met een cron-taak die op een normale manier wordt uitgevoerd basis. Voor mij betekende dat elke ochtend om 7 uur, een uur voordat ik wakker werd, en opnieuw om 17.30 uur, omdat ik op dat moment altijd het huis uit ben. Probleem opgelost, en ik kan Vim gebruiken, wat mij ook gelukkig maakt.
En natuurlijk kunt u een script maken dat op aanvraag wordt uitgevoerd om de router onmiddellijk opnieuw op te starten wanneer u maar wilt.
Notitie: je kunt waarschijnlijk hetzelfde doen met een router die niet Verizon is. U moet uw routerbeheerpaneel controleren en zien hoe de opties daar werken.
Verbinding maken met uw router via Telnet
Het eerste dat u wilt doen is uitzoeken hoe telnet op de router in te schakelen. Voor de Verizon-router was dit vereist om naar Geavanceerd -> Lokaal beheer te gaan en ervoor te zorgen dat "Primaire Telnet-poort gebruiken" is ingeschakeld. Zorg ervoor dat je op Toepassen klikt.
Op dit punt kunt u eenvoudig telnet gebruiken vanaf de terminal of via de opdrachtprompt om verbinding te maken met de router. Als u Windows gebruikt, moet u waarschijnlijk telnet inschakelen. Om verbinding te maken, typt u dit, vervangt u zo nodig het IP-adres voor het IP-adres van uw eigen router (hoewel de meeste zijn ingesteld om het 192-bereik te gebruiken)
telnet 192.168.1.1
Als u daar eenmaal bent, kunt u meestal de Help-opdracht typen om te zien wat de opties zijn. Voor Verizon FIOS was de optie waar ik naar op zoek was in de systeemsub-sectie en had de toepasselijke naam "reboot". Je moet eigenlijk "systeemherstart" typen en niet alleen maar "rebooten".
Nadat u de opdracht bij de prompt typt, wordt de verbinding verbroken en wordt de router opnieuw opgestart. Makkelijk, ja. Maar wie wil dat allemaal doen, elke keer typen?
Scripting van Telnet via de Terminal (OS X of Linux of Cygwin op Windows)
We gaan ervan uit dat je toegang hebt tot de bash-shell, of dat nu in je normale besturingssysteem is of dat je besturingssysteem (Windows) geen bash heeft, je moet mogelijk Cygwin installeren.
Het is verrassend eenvoudig om een set opdrachten te scripten en in de telnet-applicatie te pipen. Het enige wat u hoeft te doen is zoiets als dit:
(echo commandnaam; echo anothercommand) | telnet 192.168.1.1
Het enige probleem is de zeurende login waar je doorheen moet ... het verschijnt niet meteen. Dus als je in een "echo admin" en dan "echo wachtwoord" pijp, zal het te snel gebeuren en zal het niet naar de server worden verzonden. De oplossing? Gebruik het slaapcommando!
Door een paar slaap-3-commando's toe te voegen, om drie seconden te wachten, wordt het probleem opgelost. Eerst herhalen we de gebruikersnaam en het wachtwoord, en daarna herhalen we het reboot-commando en elke keer wachten we drie seconden tussen. De laatste opdracht start de server onmiddellijk opnieuw:
(slaap 3; echo admin; slaap 3; echo mypassword; slaap 3: reboot echo systeem; slaap 3;) | telnet 192.168.1.1
U kunt dit in een shellscript plaatsen en het uitvoeren wanneer u maar wilt. Of je kunt het op deze manier aan je cron toevoegen (op OS X of Linux):
crontab -e
Voeg deze regel ergens toe:
1 7 * * * (slaap 3; echo admin; slaap 3; echo mypassword; slaap 3: reboot echo systeem; slaap 3;) | telnet 192.168.1.1
Hierdoor wordt uw router elke ochtend om 07. 01 uur opnieuw opgestart.
De router rebooten op de Windows-manier
Als u Windows gebruikt, is het een stuk ingewikkelder om dit automatisch in te plannen, maar we kunnen het zeker gemakkelijk genoeg uitgeven. Eerst moet u naar het configuratiescherm gaan, naar het paneel 'Windows-onderdelen in- / uitschakelen' gaan (gewoon zoeken) en vervolgens de Telnet-client inschakelen.
Nu kunt u het volgende in Kladblok plakken, maar indien nodig het IP-adres van de router wijzigen en in plaats daarvan de mypassword-regel veranderen in uw eigenlijke wachtwoord. Mogelijk moet u het script voor verschillende opdrachten bewerken.
Optie expliciet Dim oShell set oShell = Wscript.CreateObject ("WScript.Shell") oShell.Run "telnet" WScript.Sleep 3000 oShell.Sendkeys "open 192.168.1.1 ~" WScript.Sleep 3000 oShell.Sendkeys "admin ~" WScript. Sleep 3000 oShell.Sendkeys "mypassword ~" WScript.Sleep 3000 oShell.Sendkeys "systeem opnieuw opstarten ~" WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit
Sla het op als een extensie .vbs en dan kun je erop dubbelklikken wanneer je de router opnieuw wilt opstarten.
Plannen in Windows met een geplande taak
Open de taakplanner en maak een nieuwe basistaak, waaraan u een naam en een planning kunt toewijzen - dat zou elke dag op een bepaald moment werken. Gebruik vervolgens de optie Start a Program en blader naar het scriptbestand dat u hebt gemaakt.
Dat is zo ongeveer alles wat je hoeft te doen.
Notitie: de instructies in dit artikel zijn specifiek voor Verizon FIOS, maar je kunt dit waarschijnlijk doen met elke router. Laat het ons alsjeblieft weten in de comments als het werkt met een andere router en we zullen het artikel bijwerken om het weer te geven.