Cách theo dõi kết nối TCP theo thời gian


7

Tôi có một ứng dụng là dịch vụ windows. Nó truy cập một số dịch vụ khác bằng TCP / IP. Ví dụ: cơ sở dữ liệu máy chủ sql, cơ sở dữ liệu thông tin, máy chủ thư, v.v.

Chẳng hạn, nó cũng sẽ truy cập nhiều phiên bản máy chủ SQL trên các máy chủ khác nhau.

Trong một ngày nếu tôi muốn đăng nhập tất cả các dịch vụ khác nhau, nó đã kết nối với tôi sẽ làm điều đó như thế nào?

Nếu tôi sử dụng TCPView, tôi có thể thấy tất cả thông tin tôi muốn, ví dụ địa chỉ từ xa, cổng, nhưng đó là chế độ xem theo thời gian thực, vì vậy dữ liệu không được lưu.

Câu trả lời:


7

Process Monitor sẽ làm chính xác những gì bạn đang tìm kiếm

nhập mô tả hình ảnh ở đây

Khi bạn đã thiết lập các bộ lọc của mình, hãy chắc chắn rằng bạn đi đến File->Backing Files...và chọn một tệp để lưu nhật ký, nếu không nó sẽ bắt đầu xóa các nhật ký cũ một khi nó hết bộ nhớ ảo hoặc đóng chương trình.

Hãy chắc chắn khởi động lại chương trình sau khi bạn đặt nguồn sao lưu mới, thay đổi sẽ không ảnh hưởng cho đến khi bạn đóng và mở lại chương trình!


Tôi đã sử dụng trình theo dõi quá trình, nhưng không biết nó cũng có thể làm công cụ mạng. Chính xác những gì tôi đã sau.
peter

4

Tôi nghĩ Wireshark sẽ làm chính xác những gì bạn muốn.

Bạn có thể sử dụng các bộ lọc mạnh mẽ của nó để chỉ chọn lưu lượng tcp từ các cổng hoặc ip nhất định. Nói tóm lại, bạn có thể để nó chạy và chỉ thu thập dữ liệu quan trọng đối với bạn. Bạn có thể thấy giao tiếp cấp gói cho mọi thứ đi qua bộ điều hợp mạng của bạn.


3

Nếu bạn đang chạy Windows, bạn có thể thiết lập công việc theo lịch trình chạy tập lệnh:

netstat -t > C:\your_output_path

tệp yourDefput_path có thể chứa biến% time% và% date% để mỗi lần script chạy nó sẽ xuất dữ liệu thành tệp có thời gian và ngày trong tên của nó.

Nếu bạn cài đặt công cụ như UnixUtils, bạn sẽ có thể sử dụng lệnh grep và gawk để lọc ra các bản ghi mà bạn không cần và chỉ để lại mong muốn một lần. Ví dụ: để có được kết nối PostgreSQL bạn sẽ làm

netstat -t | grep 5432

Chạy tập lệnh này thường xuyên như bạn muốn và bạn sẽ có một loạt các tệp với bản ghi kết nối của bạn trong thời gian đó.


Netstat -t hiển thị các phiên TCP, nhưng không cho bạn biết quy trình cục bộ nào "sở hữu" phiên (mở ổ cắm). Bạn có thể sử dụng -o để hiển thị PID, nhưng điều đó không giúp được gì nhiều, vì bản thân netstat sẽ không ánh xạ PID thành tên quy trình có thể đọc được của con người và các PID được tái chế ... Ngoài ra, hãy cân nhắc sử dụng -n để bỏ qua độ phân giải DNS ngược trong khi liệt kê. Kể từ Windows 7, có một tiện ích Windows tiêu chuẩn gọi là "resmon.exe", cung cấp ảnh chụp nhanh hiện tại của các phiên TCP, bao gồm tên con người của quy trình sở hữu phiên TCP. Nhưng đó chỉ là một ứng dụng GUI và không thể đăng nhập vào một tệp.
FRR

0

Tôi vừa nhận thấy một ứng dụng SysIternals cũ hơn được gọi là TCPview , dường như được đi kèm với một phiên bản console ... giống như một netstat cho TCP trên steroid.

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.