Gostaria de poder testar se tenho acesso à internet. Meu computador está conectado à conexão de internet da residência.
Eu pensei em usar ping
assim:
ping -q -w 1 -c 1 'ip r | grep default | cut -d ' ' -f 3' > /dev/null && echo ok || echo error
Mas isso não funciona!
Como eu disse, a conexão é fornecida por uma residência (que na verdade está apenas encaminhando a conexão da universidade). Para ter acesso à internet você deve abrir um navegador da web onde é solicitado o nome de usuário e senha e somente então o acesso à internet é concedido (eu realmente não tenho idéia sobre configurações de redes etc. não tenho acesso ao modo como é configurado, por isso não posso fornecer mais informações deste lado)
O código acima imprime "ok" mesmo quando não tenho acesso à Internet. Mesmo o teste com www.google.com
falha. Eu acredito que isso é porque ele está sendo redirecionado para a página de login e "pensa" para recuperar os pacotes corretamente.
Como posso verificar com segurança se tenho acesso à internet?
Algum contexto
Gostaria de me conectar ao computador na minha sala via ssh
quando eu for para casa nos finais de semana. Às vezes, a conexão falha, portanto, gostaria de criar um script que, de vez em quando, verifica a conexão e, eventualmente, inicia um navegador da Web e envia pressionamentos de tecla usando xdotool
para efetuar login.
Se você conhece uma maneira melhor de reabrir a conexão para permitir ssh
acesso remoto do que, por favor, escreva também.
Atualização:
Alguns exemplos de saída de nslookup
:
$ nslookup unix.stackexchange.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: unix.stackexchange.com
Address: 69.59.197.21
O resultado é exatamente o mesmo com acesso à internet e sem ele.
(Eu também tentei fazer logoff e relog, e conectar e desconectar várias vezes).
Além disso, eu gostaria de acrescentar que não é o fechamento da conexão ssh
.
Por algum tempo sou capaz de criar a conexão, fazer as coisas e sair. Depois de algumas horas tentando fazer ssh the-IP
dá um erro de timeout (eu realmente registrei uma conta no-ip, já que o IP é dinâmico, então estou fazendo ssh mydomain.no-ip.org
).