Independentemente do tipo de utilizador Linux que seja (principiante ou profissional), existem certas ferramentas de que deve estar ciente. Uma dessas utilidades é o Ping. Neste tutorial, discutiremos os conceitos básicos desta ferramenta usando alguns exemplos fáceis de compreender. Mas antes de o fazermos, vale a pena mencionar que todos os exemplos do artigo aqui foram testados numa máquina Ubuntu 16.04 LTS.
Comando ping linux
Em termos mais básicos, o comando ping permite-lhe verificar se um host remoto está ou não vivo e a responder. Segue-se a sintaxe da ferramenta:
ping destination
E eis como a página de homem explica:
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit
an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
(``pings'') have an IP and ICMP header, followed by a struct timeval
and then an arbitrary number of ``pad'' bytes used to fill out the
packet.
ping6 is IPv6 version of ping, and can also send Node Information
Queries (RFC4620). Intermediate hops may not be allowed, because IPv6
source routing was deprecated (RFC5095).
Seguir-se-ão alguns Q&Exemplos com um estilo que lhe devem dar uma boa ideia de como funciona o comando ping.
Q1. Como utilizar o comando ping?
O uso básico é bastante fácil – basta executar o comando ‘ping’ com o destino como entrada.
Por exemplo:
ping howtoforge.com
Following é o resultado deste comando produzido no meu sistema:
Nota que, por defeito, o comando continuará a ser executado até o parar através de Ctrl+C.
Q2. Como alterar o intervalo de tempo entre pacotes ping?
Por defeito, há um intervalo de um segundo entre pacotes ping. Contudo, se quiser, pode personalizar este atraso usando a opção de linha de comando -i.
Por exemplo, o seguinte comando assegura-se de que existe um intervalo de 3 segundos:
ping -i 3 howtoforge.com
E o seguinte comando envia pacotes com um atraso de meio segundo.
ping -i 0.5 howtoforge.com
Nota que só o super-utilizador pode definir intervalo para valores inferiores a 0,2 segundos
Q3. Como alterar o tamanho do pacote ping?
Por defeito, o número de bytes num pacote ping é 56 (64 se incluir 8 bytes de cabeçalho ICMP). Contudo, se quiser, altere este valor, algo que pode fazer usando a opção de linha de comando -s.
Por exemplo, para enviar um pacote de 80 bytes (88 incluindo cabeçalho ICMP), use o seguinte comando:
ping -s 80 howtoforge.com
Q4. Como fazer o ping enviar um número definido de pacotes?
O comportamento padrão do ping é continuar a enviar pacotes até ser interrompido pelo utilizador. No entanto, se quiser, pode forçar o ping a parar a execução após o envio de um número de pacotes definido. Isto pode ser feito utilizando a opção de linha de comando -c.
Por exemplo, o seguinte comando enviará 3 pacotes e depois pára.
ping -c 3 howtoforge.com
Q5. Como lançar uma inundação de pacotes usando ping?
Sim, o comando ping também oferece uma opção para lançar uma inundação de pacotes. Isto pode ser feito utilizando a opção de linha de comando -f.
ping -f howtoforge.com
Aqui está o que os documentos oficiais dizem sobre esta opção:
For every ECHO_REQUEST sent a period ``.'' is
printed, while for ever ECHO_REPLY received a backspace is
printed. This provides a rapid display of how many packets are
being dropped. If interval is not given, it sets interval to
zero and outputs packets as fast as they come back or one hun?
dred times per second, whichever is more. Only the super-user
may use this option with zero interval.
Q6. Como fazer o ping imprimir timestamp antes de cada linha?
Existe uma opção (-D) que lhe permite fazer isto. O carimbo da hora que é impresso é uma combinação de tempo unix e microssegundos (como em gettimeofday).
ping -D howtoforge.com
Aqui está uma captura de ecrã desta opção em acção:
Q7. Como definir um tempo limite para ping?
P>Pode especificar um prazo para ping sair. Isto pode ser feito utilizando a opção de linha de comando -w que requer um valor numérico representando o número de segundos.
Por exemplo, o seguinte comando ping irá parar após 3 segundos:
ping -w 3 howtoforge.com
Aqui está como os documentos oficiais explicam esta opção:
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
Q8. Como definir um tempo limite suave para ping?
Enquanto a opção -w assegura que o ping pára em qualquer caso após o prazo ter expirado, há outra opção (-W, em maiúsculas) que também faz o ping parar, mas apenas quando não há resposta do lado do destino.
ping -W 3 howtoforge.com
Aqui está como a página man explica o comportamento neste caso:
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
Conclusion
Ping é uma ferramenta importante que quase certamente é utilizada na depuração de problemas relacionados com a rede. Neste tutorial, discutimos algumas características principais (opções de linha de comando) deste utilitário. Pratique-as, e uma vez terminado, vá à página de manual da ferramenta para saber mais sobre ela.