Primeiro de tudo, o seguinte comando
sudo chmod u+s 'which ping'
fará o ping
funcionar também para um usuário não-su.
Em segundo lugar, você pode curar seu problema com a seguinte opção,
ping -c 1 -W 1 192.168.0.1
A primeira opção envia um único pacote, o segundo estabelece um período de tempo limite além do qual um pacote é declarado ausente e uma mensagem de erro é impressa. Por exemplo,
$ ping -c1 www.nytimes.com
PING www.gtm.nytimes.com (170.149.161.130) 56(84) bytes of data.
^C
--- www.gtm.nytimes.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
$ ping -c1 -W 1 www.nytimes.com
PING www.gtm.nytimes.com (170.149.161.130) 56(84) bytes of data.
--- www.gtm.nytimes.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
Como você pode ver, no primeiro caso (sem a opção -W 1
) ping
estava esperando por uma resposta e somente minha Ctrl + C parou o aguarde, sem saída produzida. Mas no segundo caso, com -W 1
(= Aguardar 1 segundo e desistir), uma mensagem de erro foi prontamente produzida.
Mas, em terceiro lugar, sugiro que você use mtr
(= Meu TraceRoute ), disponível nos repositórios. Você pode usar algo como
mtr -c 1 -r 8.8.8.8
A primeira opção envia 1 pacote, a opção -r
imprime um relatório no final do ciclo e o comando tenta entrar em contato com todos os nós entre o seu PC e o DNS do Google (8.8.8.8). A vantagem de fazer isso é que você obteria um rastreamento de onde, exatamente, sua conexão falha, para que você possa saber se isso ocorre dentro de sua LAN ou fora dela, caso em que você pode ter que reclamar com seu ISP.