Verizon FIOS jest świetny - prędkości są niesamowite, a cena… cóż, trochę droga. Prawdziwym problemem jest to, że okropny 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ę wstawać z kanapy.
Dlatego zastanawiałem się, jak rozwiązać ten problem za pomocą technologii. To właśnie robią maniacy, prawda?
Tak, wiem, prawdopodobnie mógłbym zadzwonić do Verizon i zaktualizować router, jestem pewien, że mają teraz lepszy model. Oczywiście możesz zaktualizować oprogramowanie układowe, ale to nie zadziała na moim starym routerze, ponieważ nie ma aktualizacji. Czas na łatwiejsze rozwiązanie, które idealnie obejmuje zadanie cron. Zadania Cron to zawsze dobra decyzja.
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ć, aby skrypt był uruchamiany regularnie za pomocą zadania cron podstawa. Dla mnie oznaczało to każdego ranka o 7 rano, godzinę przed przebudzeniem i ponownie o 17:30, ponieważ w tym momencie zawsze wychodzę z domu. Problem rozwiązany i mogę używać Vima, co również mnie uszczęśliwia.
Oczywiście możesz utworzyć skrypt uruchamiany na żądanie, aby natychmiast zrestartować router, kiedy tylko chcesz.
Uwaga: prawdopodobnie możesz zrobić to samo z routerem innym niż Verizon. Musisz sprawdzić panel administracyjny routera i zobaczyć, jak działają tam opcje.
Łączenie się z routerem przez Telnet
Pierwszą rzeczą, którą będziesz chciał zrobić, jest dowiedzieć się, jak włączyć telnet na routerze. W przypadku routera Verizon wymagało to przejścia do Zaawansowane -> Administracja lokalna i upewnienia się, że opcja „Korzystanie z podstawowego portu Telnet” jest włączona. Nie zapomnij kliknąć Zastosuj.
W tym momencie możesz łatwo połączyć się z routerem za pomocą telnetu z terminala lub wiersza poleceń. 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 w razie potrzeby adresem IP własnego routera (chociaż większość z nich jest ustawiona na zakres 192)
telnet 192.168.1.1
Gdy już tam jesteś, zazwyczaj możesz wpisać polecenie pomocy, aby zobaczyć dostępne opcje. W przypadku Verizon FIOS opcja, której szukałem, znajdowała się w podsekcji systemowej i miała trafny tytuł „reboot”. Musisz jednak wpisać „reboot systemu”, a nie tylko „reboot”.
Po wpisaniu polecenia w monicie nastąpi rozłączenie, a router zostanie uruchomiony ponownie. Spokojnie, 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, niezależnie od tego, czy jest to w Twoim normalnym systemie operacyjnym, czy też jeśli Twój system operacyjny (Windows) nie ma basha, może być konieczne zainstalowanie Cygwin .
Zaskakująco łatwo jest napisać skrypt zestawu poleceń i przesłać go do aplikacji telnet. Wszystko, co musisz zrobić, to coś takiego:
(echo nazwa_polecenia; echo inne polecenie) | telnet 192.168.1.1
Jedynym problemem jest dokuczliwe logowanie, przez które musisz się przedostać… nie pojawia się od razu. Więc jeśli wpiszesz „echo admin”, a następnie „echo hasło”, nastąpi to zbyt szybko i nie zostanie wysłane na serwer. Rozwiązanie? Użyj polecenia uśpienia!
Dodanie kilku poleceń uśpienia 3, aby poczekać trzy sekundy, rozwiązuje problem. Najpierw powtórzymy nazwę użytkownika i hasło, a następnie powtórzymy polecenie ponownego uruchomienia i za każdym razem będziemy czekać trzy sekundy między nimi. Ostatnie polecenie spowoduje natychmiastowe ponowne uruchomienie serwera:
(uśpienie 3; echo admin; uśpienie 3; echo moje hasło; uśpienie 3; ponowne uruchomienie systemu echo; uśpienie 3;) | telnet 192.168.1.1
Możesz umieścić to w skrypcie powłoki i uruchomić go w dowolnym momencie. Lub możesz dodać go do swojego crona w ten sposób (na OS X lub Linux):
crontab -e
Dodaj gdzieś tę linię:
1 7 * * * (uśpienie 3; echo admin; uśpienie 3; echo moje hasło; uśpienie 3; ponowne uruchomienie systemu echo; uśpienie 3;) | telnet 192.168.1.1
Spowoduje to ponowne uruchomienie routera o godzinie 7:01 każdego ranka.
Ponowne uruchamianie routera w sposób Windows
Jeśli używasz systemu Windows, zaplanowanie automatycznego planowania jest znacznie bardziej skomplikowane, ale zdecydowanie możemy to łatwo skrypty. Najpierw musisz przejść do Panelu sterowania, przejść do panelu „Włączanie lub wyłączanie funkcji systemu Windows” (wystarczy go wyszukać), a następnie włączyć klienta Telnet.
Teraz możesz wkleić następujące informacje do Notatnika, ale w razie potrzeby zmień adres IP routera i zamiast tego zmień wiersz mypassword na rzeczywiste hasło. Może zajść potrzeba edycji skryptu dla różnych poleceń.
Opcja wyraźna Dim oShell set 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.Sleep 3000 oShell.Sendkeys „mojehasło ~” WScript.Sleep 3000 oShell.Sendkeys „restart systemu ~” WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit
Zapisz go jako rozszerzenie .vbs, a następnie możesz kliknąć go dwukrotnie w dowolnym momencie, gdy chcesz ponownie uruchomić router.
Planowanie w systemie Windows za pomocą zaplanowanego zadania
Otwórz Harmonogram zadań i utwórz nowe zadanie podstawowe, 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 pliku skryptu.
To wszystko, co musisz zrobić.
Uwaga: instrukcje zawarte w tym artykule dotyczą wyłącznie Verizon FIOS, ale prawdopodobnie możesz to zrobić z dowolnym routerem. Daj nam znać w komentarzach, jeśli masz zamiar współpracować z innym routerem, a zaktualizujemy artykuł, aby to odzwierciedlić.