O Verizon FIOS é ótimo - as velocidades são incríveis e o preço é ... bem, meio caro. O verdadeiro problema é que o terrível roteador que eles fornecem a você precisa ser reiniciado o tempo todo, o que é uma pena, considerando que está no porão. Além disso, eu não quero sair do sofá.
Então, pensei em como poderia resolver esse problema usando a tecnologia. Isso é o que os geeks fazem, certo?
Sim, eu sei, provavelmente poderia ligar para a Verizon e atualizar o roteador, tenho certeza que eles têm um modelo melhor agora. E claro, você pode atualizar o firmware, mas isso não funcionará com meu roteador antigo, pois não há uma atualização. É hora de uma solução mais fácil que idealmente envolve um cron job. Cron jobs são sempre uma boa decisão.
Após três minutos de pesquisa e brainstorming, uma solução se apresentou: você pode habilitar o telnet no roteador, configurar um script que executa automaticamente uma série de comandos usando a interface telnet e, em seguida, agendar esse script com um cron job para ser executado regularmente base. Para mim, isso significava todas as manhãs às 7h, uma hora antes de acordar, e novamente às 17h30, já que estou sempre fora de casa a essa hora. Problema resolvido, e posso usar o Vim, o que também me deixa feliz.
E, claro, você pode fazer um script para ser executado sob demanda para reinicializar imediatamente o roteador sempre que quiser.
Nota: você provavelmente pode fazer a mesma coisa com um roteador que não seja a Verizon. Você precisará verificar o painel de administração do roteador e ver como as opções funcionam nele.
Conectando-se ao seu roteador via Telnet
A primeira coisa que você vai querer fazer é descobrir como habilitar o telnet no roteador. Para o roteador Verizon, é necessário acessar Avançado -> Administração local e certificar-se de que “Usando a porta Telnet primária” esteja habilitado. Certifique-se de clicar em Aplicar.
Neste ponto, você pode usar telnet facilmente a partir do terminal ou prompt de comando para se conectar ao roteador. Se você estiver usando o Windows, provavelmente terá que habilitar o telnet. Para se conectar, basta digitar, substituindo o endereço IP pelo IP do seu próprio roteador, se necessário (embora a maioria esteja configurada para usar o intervalo 192)
telnet 192.168.1.1
Uma vez lá, você geralmente pode digitar o comando de ajuda para ver quais são as opções. Para a Verizon FIOS, a opção que eu procurava estava na subseção do sistema e foi apropriadamente intitulada "reiniciar". Você tem que digitar “reinicialização do sistema” e não apenas “reinicializar”.
Depois de digitar o comando no prompt, você será desconectado e o roteador será reinicializado. Fácil, sim. Mas quem quer fazer toda essa digitação todas as vezes?
Criação de script de Telnet por meio do terminal (OS X ou Linux ou Cygwin no Windows)
Vamos assumir que você tem acesso ao shell bash, seja no seu sistema operacional normal ou se o seu sistema operacional (Windows) não tiver o bash, talvez seja necessário instalar Cygwin .
É surpreendentemente fácil criar um script de um conjunto de comandos e canalizá-los para o aplicativo telnet. Tudo que você precisa fazer é algo assim:
(echo commandname; echo anothercommand) | telnet 192.168.1.1
O único problema é o login irritante que você precisa acessar ... ele não aparece imediatamente. Portanto, se você canalizar um “echo admin” e depois “echo password”, isso acontecerá muito rapidamente e não será enviado ao servidor. A solução? Use o comando sleep!
Adicionar alguns comandos sleep 3, para esperar três segundos, resolve o problema. Primeiro, vamos repetir o nome de usuário e a senha e, em seguida, ecoar o comando de reinicialização e, a cada vez, esperaremos três segundos entre eles. O comando final reinicializará o servidor imediatamente:
(dormir 3; eco admin; dormir 3; echo minha senha; dormir 3; ecoar reinicialização do sistema; dormir 3;) | telnet 192.168.1.1
Você pode colocar isso em um script de shell e executá-lo quando quiser. Ou você pode adicioná-lo ao seu cron assim (no OS X ou Linux):
crontab -e
Adicione esta linha em algum lugar:
1 7 * * * (dormir 3; eco admin; dormir 3; echo minha senha; dormir 3; ecoar reinicialização do sistema; dormir 3;) | telnet 192.168.1.1
Isso reiniciará seu roteador às 7h01 todas as manhãs.
Reinicializando o roteador do jeito Windows
Se você estiver executando o Windows, é muito mais complicado agendar isso automaticamente, mas podemos definitivamente criar um script com bastante facilidade. Primeiro, você precisará ir ao Painel de Controle, acessar o painel “Ativar ou desativar recursos do Windows” (basta pesquisar por ele) e ativar o Cliente Telnet.
Agora você pode colar o seguinte no Bloco de notas, mas alterar o IP do roteador, se necessário, e alterar a linha mypassword para ser sua senha real. Você pode precisar editar o script para comandos diferentes.
Opção explícita Dim oShell set oShell = Wscript.CreateObject ("WScript.Shell") oShell.Run "telnet" WScript.Sleep 3000 oShell.Sendkeys "abrir 192.168.1.1 ~" WScript.Sleep 3000 oShell.Sendkeys "admin ~" WScript.Sleep 3000 oShell.Sendkeys "mypassword ~" WScript.Sleep 3000 oShell.Sendkeys "reinicialização do sistema ~" WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit
Salve-o como uma extensão .vbs e, em seguida, clique duas vezes nele a qualquer momento que quiser reiniciar o roteador.
Agendamento no Windows com uma tarefa agendada
Abra o Agendador de Tarefas e crie uma nova Tarefa Básica, dando a ela um nome e uma programação - diariamente em um determinado horário funcionaria. Em seguida, use a opção Iniciar um programa e navegue até o arquivo de script que você criou.
Isso é praticamente tudo que você precisa fazer.
Nota: as instruções neste artigo são específicas para Verizon FIOS, mas você provavelmente pode fazer isso com qualquer roteador. Informe-nos nos comentários se você fizer com que ele funcione com outro roteador e atualizaremos o artigo para refletir isso.