If-Koubou

Jak automatycznie zrestartować swój router metodą geeky

Jak automatycznie zrestartować swój router metodą geeky (Jak)

Verizon FIOS jest świetny - prędkości są niesamowite, a cena jest ... cóż, trochę za droga. Prawdziwym problemem jest to, że straszny router, który ci dają, musi być cały czas restartowany, co jest królewskim bólem, biorąc pod uwagę, że znajduje się w piwnicy. Poza tym nie chcę zejść z kanapy.

Zastanawiałem się, jak rozwiązać ten problem za pomocą technologii. To właśnie robią geekowie, prawda?

Tak, wiem, prawdopodobnie mógłbym zadzwonić do Verizon i zaktualizować router, jestem pewien, że teraz mają lepszy model. I oczywiście, możesz zaktualizować oprogramowanie, ale to nie zadziała dla mojego starego routera, ponieważ nie ma aktualizacji. Czas na łatwiejsze rozwiązanie, które idealnie obejmuje zadanie cron. Praca Cron jest zawsze dobrą decyzją.

Po trzech minutach poszukiwań i burzy mózgów pojawiło się rozwiązanie: możesz włączyć telnet na routerze, skonfigurować skrypt, który automatycznie uruchamia serię poleceń za pomocą interfejsu telnet, a następnie zaplanować, że skrypt z zadaniem cron będzie uruchamiany regularnie podstawa. Dla mnie oznaczało to każdego ranka o 7 rano, godzinę przed tym, jak się obudziłem, i znowu o 17:30, ponieważ w tym momencie zawsze jestem poza domem. Problem rozwiązany i mogę używać Vima, który również mnie uszczęśliwia.

Oczywiście można również uruchomić skrypt na żądanie, aby natychmiastowo zrestartować router, kiedy tylko chcesz.

Uwaga:prawdopodobnie możesz zrobić to samo z routerem, który nie jest Verizonem. Musisz sprawdzić panel administracyjny routera i zobaczyć, jak działają tam opcje.

Łączenie się z routerem za pośrednictwem usługi Telnet

Pierwszą rzeczą, którą będziesz chciał zrobić, to dowiedzieć się, jak włączyć telnet na routerze. W przypadku routera Verizon wymagane jest przejście do Advanced -> Local Administration i upewnienie się, że "Korzystanie z Primary Telnet Port" jest włączone. Pamiętaj, aby kliknąć Zastosuj.

W tym momencie możesz łatwo użyć telnetu z terminala lub wiersza poleceń, aby połączyć się z routerem. Jeśli używasz systemu Windows, prawdopodobnie będziesz musiał włączyć telnet. Aby się połączyć, po prostu wpisz to, zastępując adres IP dla własnego IP routera, jeśli to konieczne (chociaż większość z nich jest ustawiona na zakres 192)

telnet 192.168.1.1

Kiedy już tam będziesz, możesz zwykle wpisać polecenie pomocy, aby zobaczyć, jakie są opcje. W przypadku Verizon FIOS opcja, której szukałem, znajdowała się w podsekcji systemowej i została trafnie nazwana "reboot". W rzeczywistości trzeba wpisać "system reboot", a nie tylko "restart".

Po wpisaniu polecenia po wyświetleniu monitu zostaniesz rozłączony, a router zostanie zrestartowany. Łatwo, tak. Ale kto chce za każdym razem pisać to wszystko?

Skrypty Telnet przez Terminal (OS X lub Linux lub Cygwin w systemie Windows)

Zakładamy, że masz dostęp do powłoki bash, czy to w normalnym systemie operacyjnym, czy też twój system operacyjny (Windows) nie ma bashu, być może będziesz musiał zainstalować Cygwin.

Zaskakująco łatwo jest zakodować zestaw poleceń i wprowadzić je do aplikacji telnet. Wszystko, co musisz zrobić, to coś takiego:

(echo commandname; echo anothercommand) | telnet 192.168.1.1

Jedynym problemem jest dokuczliwy login, przez który musisz przejść ... nie pojawia się od razu. Jeśli więc potwierdzisz "echo admin", a następnie "echo password", stanie się to zbyt szybko i nie zostanie wysłane na serwer. Rozwiązanie? Użyj polecenia sleep!

Dodanie kilku poleceń uśpienia 3, odczekanie trzech sekund, rozwiązuje problem. Najpierw wyświetlimy nazwę użytkownika i hasło, a następnie wyświetlimy polecenie ponownego uruchomienia i za każdym razem będziemy czekać trzy sekundy pomiędzy. Ostatnie polecenie natychmiast uruchomi serwer ponownie:

(sleep 3, echo admin, sleep 3, echo mypassword, sleep 3, reboot systemu echo, sleep 3;) | telnet 192.168.1.1

Możesz umieścić go w skrypcie powłoki i uruchamiać go, kiedy tylko chcesz. Lub możesz dodać go do swojego crona w ten sposób (w systemie OS X lub Linux):

crontab -e

Dodaj tę linię gdzieś:

1 7 * * * (sleep 3, echo admin, sleep 3, echo mypassword, sleep 3, reboot echo, sleep 3;) | telnet 192.168.1.1

Spowoduje to ponowne uruchomienie routera o godzinie 7:01 każdego ranka.

Ponowne uruchamianie routera w systemie Windows

Jeśli korzystasz z systemu Windows, o wiele bardziej skomplikowane jest planowanie tego automatycznie, ale z pewnością możemy go łatwo scryptować. Najpierw musisz przejść do Panelu sterowania, przejść do "Włącz lub wyłącz funkcje systemu Windows" (po prostu go wyszukaj), a następnie włączyć klienta Telnet.

Teraz możesz wkleić następujące elementy do Notatnika, ale w razie potrzeby zmienić adres IP routera, a zamiast tego zmienić linię mojego hasła jako rzeczywiste hasło. Może być konieczne edytowanie skryptu dla różnych poleceń.

Opcja jawnie Dim oShell oShell = Wscript.CreateObject ("WScript.Shell") oShell.Run "telnet" WScript.Sleep 3000 oShell.Sendkeys "otwórz 192.168.1.1 ~" WScript.Sleep 3000 oShell.Sendkeys "admin ~" WScript. Sen 3000 o Shell.Sendkeys "mypassword ~" WScript.Sleep 3000 oShell.Sendkeys "ponowne uruchomienie systemu ~" WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit

Zapisz go jako rozszerzenie .vbs, a następnie kliknij go dwukrotnie, gdy chcesz zrestartować router.

Planowanie w systemie Windows za pomocą zaplanowanego zadania

Otwórz Harmonogram zadań i utwórz nowe podstawowe zadanie, nadając mu nazwę i harmonogram - codziennie o określonej godzinie będzie działać. Następnie użyj opcji Uruchom program i przejdź do utworzonego przez siebie pliku skryptu.

To wszystko, co musisz zrobić.

Uwaga:instrukcje w tym artykule dotyczą systemu Verizon FIOS, ale prawdopodobnie można to zrobić z dowolnym routerem. Daj nam znać w komentarzach, jeśli sprawisz, że będzie działać z innym routerem, a my zaktualizujemy artykuł, aby to odzwierciedlić.