teste de bloco ICMP

1

Nos meus scripts do bash eu tenho usado algo como:

until fping -u google.com; do echo "$0[$$] Network/DNS down?? $(date)" 1>&2 && sleep $(($RANDOM%(1 + ++trynum * 1) +1)).222; done

para testar a conectividade on-line.

Ele pára no lugar, dormindo em intervalos aleatórios, até conseguir acessar o google.com novamente.

Problema: Em algumas LANs, os pings ICMP são bloqueados, embora as páginas da Web ainda estejam acessíveis. Qual é o caminho mais curto para testar este caso geral (firewall para fora)?

Com base nesse teste, mudei para um teste baseado em http, como o status de saída

curl -s google.com >/dev/null

se for bom.

    
por Marcos 13.06.2012 / 12:36

2 respostas

2

O uso do curl é um desperdício de largura de banda. Basta usar tcping .

Outras opções, se você não tiver isso:

curl -sI -m 2  http://www.google.com >/dev/null
echo 'HEAD / HTTP/1.0\r\nHost: www.google.com\r\n\r\n' | nc www.google.com 80 >/dev/null

A idéia básica é fazer uma conexão TCP com a porta 80 e ver se isso é bem-sucedido.

    
por 13.06.2012 / 13:03
1

Se algum servidor estiver bloqueando solicitações ICMP, você ainda poderá verificar se o servidor da Web está acessível por uma varredura de porta curta, por exemplo, com o nmap :

nmap -PN -T4 -p 80 your_webserver 2>&1 | grep -wi open >/dev/null || date

    
por 13.06.2012 / 13:05