tcpdump
puede hacer esto y está disponible prácticamente en todas partes:
tcpdump -n -i enp0s25 icmp
volcará todos los paquetes ICMP entrantes y salientes en enp0s25
.
Para ver solo solicitudes de eco ICMP:
tcpdump -n -i enp0s25 "icmp[0] == 8"
(-n
evita las búsquedas de DNS, que pueden retrasar la notificación de paquetes e introducir tráfico propio no deseado).
Esto le permite averiguar si está recibiendo los paquetes de la otra máquina (de la que, por ejemplo, ping
it), por lo que el problema es con la ruta de retorno, o si directamente no llegan.
Además de la sugerencia de @Stephen Kitt, puede ejecutar tcpdump
para filtrar un paquete en una sola dirección:
# see if the icmp request exits the interface
tcpdump -nQ out 'icmp'
tshark
es otra herramienta útil que puede usar y no requiere que la ejecute como root:
tshark -nf "icmp && (icmp[icmptype] == icmp-echo)"
Aparte de la captura de paquetes, puede analizar la salida de
netstat -s
que imprime una estadística para cada socket de red, un ejemplo sería el siguiente:
netstat -s | grep -Eo "^[[:space:]]+[[:digit:]]+ ICMP messages sent$"; 1>/dev/null ping -c1 -w1 host; !-1
28 ICMP messages sent
30 ICMP messages sent