Como verificar a partir de uma linha de comando que a rede está acessível?

9

Eu quero enviar um grunhido para mim depois que o servidor SuSE concluir o processo de inicialização. Eu recebi esta mensagem socket_sendto(): unable to write to socket [101]: Network is unreachable in .

Como posso verificar na linha de comando se a rede está acessível e esperar caso não esteja?

por Radek 17.07.2012 / 05:02

3 respostas

13

ping para um host externo pode falhar por vários motivos, e apenas alguns deles realmente dizem algo útil sobre o estado de sua própria rede.

Como primeiro passo, abra uma janela de terminal e digite ip route ls

Você deve ver uma saída ao longo das linhas de

shadur@equinox:~$ ip route ls
192.168.15.0/24 dev eth0  proto kernel  scope link  src 192.168.15.102 
default via 192.168.15.1 dev eth0 

Isso indica que sua rede local é uma conexão ethernet ( eth0 ) com o endereço 192.168.15.0 e que seu gateway padrão pelo qual acessa o restante da Internet pode ser encontrado em 192.168.15.1 .

Em seguida, você pode tentar ping desse endereço:

shadur@equinox:~$ ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_req=1 ttl=255 time=0.352 ms
64 bytes from 192.168.15.1: icmp_req=2 ttl=255 time=0.269 ms
^C
--- 192.168.15.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.269/0.310/0.352/0.045 ms

Se você vir algo parecido com o acima, sua própria rede local está, pelo menos, bem. Neste ponto, você pode começar a procurar com ferramentas mais avançadas, como traceroute , para ver onde sua conexão com o destino pode estar falhando.

No entanto, depois de uma rápida verificação do google do que o growl realmente deveria ser, tenho a sensação de que há algo mais errado. Você pode expandir sua pergunta para nos fornecer mais alguns detalhes sobre o que você está tentando fazer, como está tentando e a saída completa do erro? A linha que você está nos dando é cortada abruptamente ...

    
por 17.07.2012 / 10:10
3

Uma maneira muito simples e rápida é usar o comando ping .

Você pode simplesmente digitar

 $ ping yahoo.com

(ou cnn.com ou qualquer outro host) e veja se você recebe alguma saída de volta. Isso pressupõe que nomes de host podem ser resolvidos (ou seja, o dns está funcionando). Caso contrário, você pode fornecer um endereço IP válido / número de um sistema remoto e ver se ele pode ser alcançado.

Aqui está a página de manual do ping .

Atualizar :

Como um exemplo rápido, você pode verificar o valor de retorno (por exemplo, com "echo $?" ) de ping para ver se o comando foi bem sucedido (você sempre pode canalizar a saída do comando para %código%). Note que eu uso > /dev/nul aqui, mas você pode usar mais.

$ ping -c 1 yahoo.com
PING yahoo.com (72.30.38.140) 56(84) bytes of data.
64 bytes from ir1.fp.vip.sp2.yahoo.com (72.30.38.140): icmp_seq=1 ttl=52 time=83.5 ms

--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.593/83.593/83.593/0.000 ms

echo $?
0


$ ping -c 1 unicorns.are.here
ping: unknown host unicorns.are.here

$ echo $?
2
    
por 17.07.2012 / 05:04
2

mtr é uma ferramenta semelhante ao ping, mas fornece mais informações, como perda de pacotes, estatísticas sobre tempos de viagem de pacotes , etc ...

    
por 17.07.2012 / 13:31