¿Hay alguna manera de ver si el proceso que escucha en el puerto TCP recibe un mensaje?

¿Hay alguna manera de ver si el proceso que escucha en el puerto TCP recibe un mensaje?

Según tcpdump, mi servidor recibe el siguiente paquete TCP:

12:52:29.603233 00:19:e2:9e:df:f0 
00:16:3e:6a:25:3f, ethertype IPv4 (0x0800), length 74: 10.10.10.65.38869 
192.168.215.82.22: Flags [S], seq 567054335, win 5840, options [mss 1460,sackOK,TS val 2096335479 ecr 0,nop,wscale 0], length 0

Como se vio arriba, es un paquete TCP SYN al puerto TCP 22, donde en mi caso escucha un archivo sshd. Me gustaría ver si este paquete TCP llega al sshdproceso. Supongo que una opción sería reiniciar sshden modo de depuración. Sin embargo, ¿existen otras herramientas/métodos inteligentes para ver si el proceso que escucha en el puerto TCP recibe un mensaje? En el caso del paquete TCP SYN, supongo que es la pila TCP/IP del kernel la que enviará el TCP SYN+ACK y no el sshd?

Respuesta1

Sin embargo, ¿existen otras herramientas/métodos inteligentes para ver si el proceso que escucha en el puerto TCP recibe un mensaje?

Puedes usar stracecon -e trace=network. Esto es lo que imprime al aceptar una conexión TCP, recibir una solicitud HTTP, enviar una respuesta HTTP y cerrar la conexión:

$ strace -v -f -e trace=network -p `cat logs/my_server.pid`
Process 2361 attached with 44 threads - interrupt to quit
[pid  2422] accept(11, {sa_family=AF_INET, sin_port=htons(56289), sin_addr=inet_addr("172.30.1.60")}, [16]) = 14
[pid  2422] getsockname(14, {sa_family=AF_INET, sin_port=htons(7754), sin_addr=inet_addr("172.30.1.60")}, [16]) = 0
[pid  2422] setsockopt(14, SOL_TCP, TCP_NODELAY, [1], 4) = 0
[pid  2422] setsockopt(14, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
[pid  2422] getsockopt(14, SOL_SOCKET, SO_OOBINLINE, [515004615020773376], [4]) = 0
[pid  2388] recvfrom(14, "GET /OPEN_", 10, MSG_PEEK, NULL, NULL) = 10
[pid  2388] recvfrom(14, "GET /OPEN_SESSION?LOGIN=HAS_ADMI"..., 4096, 0, NULL, NULL) = 246
[pid  2388] sendto(14, "HTTP/1.1 200 OK\r\nServer: MY_SER"..., 192, 0, NULL, 0) = 192
[pid  2388] sendto(14, "<?xml version='1.0' encoding = '"..., 680, 0, NULL, 0) = 680
[pid  2361] --- SIGIO (I/O possible) @ 0 (0) ---
[pid  2388] recvfrom(14, "", 4096, 0, NULL, NULL) = 0
[pid  2388] shutdown(14, 2 /* send and receive */) = 0

información relacionada