Có cách nào để xem liệu quá trình lắng nghe trên cổng TCP có nhận được tin nhắn không?


7

Theo tcpdump, máy chủ của tôi nhận được gói TCP sau:

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

Như đã thấy ở trên, đó là gói TCP SYN tới cổng TCP 22, trong trường hợp của tôi lắng nghe a sshd. Tôi muốn xem, nếu gói TCP này đạt được sshdquy trình. Tôi đoán một tùy chọn sẽ là khởi động lại sshdtrong chế độ gỡ lỗi. Tuy nhiên, có bất kỳ công cụ / phương pháp thông minh nào khác để xem liệu quá trình lắng nghe trên cổng TCP có nhận được thông báo không? Trong trường hợp gói TCP SYN, tôi đoán đó là ngăn xếp TCP / IP hạt nhân sẽ gửi TCP SYN + ACK chứ không phải sshd?

Câu trả lời:


14

Tuy nhiên, có bất kỳ công cụ / phương pháp thông minh nào khác để xem liệu quá trình lắng nghe trên cổng TCP có nhận được thông báo không?

Bạn có thể sử dụng stracevới -e trace=network. Đây là những gì nó in khi chấp nhận kết nối TCP, nhận yêu cầu HTTP, gửi phản hồi HTTP và đóng kết nối:

$ 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

Và với màu sắc : strace $CMD 2>&1 > /dev/null | vim -c ':set syntax=strace' -.
Pablo A
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.