Verizon FIOS er fantastisk - hastighederne er utrolige, og prisen er ... godt, lidt dyr. Det virkelige problem er, at den forfærdelige router, de giver dig, skal genstartes hele tiden, hvilket er en kongelig smerte i betragtning af at den er nede i kælderen. Plus, jeg vil ikke komme ud af sofaen.
Så jeg overvejede, hvordan jeg kunne løse dette problem ved hjælp af teknologi. Det er det, nørder gør, ikke?
Ja, jeg ved, jeg kunne nok ringe til Verizon og opgradere routeren, jeg er sikker på, at de har en bedre model nu. Og helt sikkert kan du opdatere firmwaren, men det fungerer ikke for min gamle router, da der ikke er en opdatering. Tid til en lettere løsning, der ideelt set involverer et cron-job. Cron-job er altid en god beslutning.
Efter tre minutter med research og brainstorming præsenterede en løsning sig selv: Du kan aktivere telnet på routeren, opsætte et script, der automatisk kører en række kommandoer ved hjælp af telnet-interface og derefter planlægge det script med et cron-job til at køre på en regelmæssig basis. For mig betød det hver morgen kl. 7, en time før jeg vågner op og igen kl. 17.30, da jeg altid er ude af huset på det tidspunkt. Problem løst, og jeg kan bruge Vim, hvilket også gør mig glad.
Og selvfølgelig kan du lave et script til at køre efter behov for straks at genstarte routeren, når du vil.
Bemærk: du kan sandsynligvis gøre det samme med en router, der ikke er Verizon. Du bliver nødt til at kontrollere dit routeradministrationspanel og se, hvordan indstillingerne fungerer der.
Tilslutning til din router via Telnet
Den første ting, du vil gøre, er at finde ud af, hvordan du aktiverer telnet på routeren. For Verizon-routeren krævede det at gå ind i Avanceret -> Lokal administration og sikre, at "Brug af primær Telnet-port" er aktiveret. Sørg for at klikke på Anvend.
På dette tidspunkt kan du nemt bruge telnet fra terminalen eller kommandoprompten til at oprette forbindelse til routeren. Hvis du bruger Windows, bliver du sandsynligvis nødt til at aktivere telnet. For at oprette forbindelse skal du blot skrive dette og erstatte IP-adressen til din egen routers IP, hvis det er nødvendigt (selvom de fleste er indstillet til at bruge 192-området)
telnet 192.168.1.1
Når du er derinde, kan du normalt skrive hjælpekommandoen for at se, hvad mulighederne er. For Verizon FIOS var den mulighed, jeg ledte efter, i systemets underafsnit og med titlen "genstart". Du skal faktisk skrive “system genstart” og ikke kun “genstarte” dog.
Når du har skrevet kommandoen ved prompten, afbrydes du, og routeren genstartes. Let, ja. Men hvem vil gøre alt det, der skriver hver gang?
Scripting af Telnet gennem terminalen (OS X eller Linux eller Cygwin på Windows)
Vi antager, at du har adgang til bash-shell, uanset om det er i dit normale operativsystem, eller hvis dit operativsystem (Windows) ikke har bash, skal du muligvis installere Cygwin .
Det er overraskende nemt at script et sæt kommandoer og pibe dem i telnet-applikationen. Alt hvad du skal gøre er noget som dette:
(ekkokommandonavn; ekko en anden kommando) | telnet 192.168.1.1
Det eneste problem er det nagende login, som du er nødt til at komme igennem ... det vises ikke med det samme. Så hvis du sender en "ekkoadministrator" og derefter "ekkoadgangskode", sker det for hurtigt og sendes ikke til serveren. Løsningen? Brug søvnkommandoen!
Tilføjelse af et par søvn 3 kommandoer, for at vente i tre sekunder, løser problemet. Først ekko vi brugernavnet og adgangskoden, og derefter ekko vi genstartkommandoen, og hver gang venter vi tre sekunder imellem. Den endelige kommando genstarter serveren med det samme:
(sleep 3; echo admin; sleep 3; echo mypassword; sleep 3; echo system reboot; sleep 3;) | telnet 192.168.1.1
Du kan sætte dette i et shell-script og køre det, når du vil. Eller du kan føje det til din cron på denne måde (på OS X eller Linux):
crontab -e
Tilføj denne linje et eller andet sted:
1 7 * * * (sleep 3; echo admin; sleep 3; echo mypassword; sleep 3; echo system reboot; sleep 3;) | telnet 192.168.1.1
Dette genstarter din router kl. 07:01 hver morgen.
Genstart af routeren på Windows-måde
Hvis du kører Windows, er det meget mere kompliceret at planlægge dette automatisk, men vi kan bestemt scripte det nemt nok. Først skal du gå til Kontrolpanel, komme til panelet "Slå Windows-funktioner til eller fra" (bare søg efter det), og aktiver derefter Telnet-klienten.
Nu kan du indsætte følgende i Notesblok, men skift routerens IP ud, hvis det er nødvendigt, og skift mypassword-linjen til at være din aktuelle adgangskode i stedet. Du skal muligvis redigere scriptet til forskellige kommandoer.
Mulighed eksplicit Dim oShell sæt oShell = Wscript.CreateObject ("WScript.Shell") oShell.Kør "telnet" WScript.Sleep 3000 oShell.Sendkeys "åben 192.168.1.1 ~" WScript.Sleep 3000 oShell.Sendkeys "admin ~" WScript.Sleep 3000 oShell.Sendkeys "mit kodeord ~" WScript.Sleep 3000 oShell.Sendkeys "systemgenstart ~" WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit
Gem det som en .vbs-udvidelse, og så kan du dobbeltklikke på den, når som helst du vil genstarte routeren.
Planlægning i Windows med en planlagt opgave
Åbn Task Scheduler, og opret en ny Basic Task, der giver det et navn og en tidsplan - dagligt på et bestemt tidspunkt ville fungere. Brug derefter indstillingen Start et program, og gennemse den scriptfil, du har oprettet.
Det er stort set alt hvad du skal gøre.
Bemærk: instruktionerne i denne artikel er specifikke for Verizon FIOS, men du kan sandsynligvis gøre dette med enhver router. Fortæl os det i kommentarerne, hvis du får det til at arbejde med en anden router, og vi opdaterer artiklen, så den afspejler den.