Główna » jak » Jak automatycznie zrestartować swój router metodą geeky

    Jak automatycznie zrestartować swój router metodą geeky

    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 jest 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, co również mnie uszczęśliwia.

    Oczywiście możesz 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 skorzystać z 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 (choć większość z nich jest ustawiona na zakres 192)

    telnet 192.168.1.1

    Gdy już tam będziesz, możesz zazwyczaj 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". Musisz wpisać "restart systemu", a nie tylko "zrestartować system"..

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

    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 bash, być może będziesz musiał zainstalować Cygwin.

    Zaskakująco łatwo jest skryptować zestaw poleceń i wprowadzać 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, 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ń spania 3, aby poczekać trzy sekundy, 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. 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 trybie Windows

    Jeśli korzystasz z systemu Windows, o wiele bardziej skomplikowane jest zaplanowanie tego automatycznie, ale możemy definitywnie napisać to z łatwością. Najpierw musisz przejść do Panelu sterowania, przejść do "Włącz lub wyłącz funkcje Windows" (po prostu 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 na rzeczywiste. Może być konieczne edytowanie skryptu dla różnych poleceń.

    Opcja jawnie Ustaw 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. Spać 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ć.