tcpconnect.bt(8) System Manager's Manual tcpconnect.bt(8)

tcpconnect.bt - ردیابی اتصال‌های فعال TCP (فراخوانی ()connect). استفاده از bpftrace/eBPF در لینوکس

tcpconnect.bt

این ابزار اتصال‌های فعال TCP را ردیابی می‌کند (برای نمونه از طریق فراخوانی سیستمی ()connect؛ اتصالات ()accept از نوع غیرفعال هستند). این ابزار می‌تواند برای عیب‌یابی عمومی جهت مشاهده اتصالاتی که توسط کارساز محلی برقرار می‌شوند مفید باشد.

تمام تلاش‌های برقراری اتصال ردیابی می‌شوند، حتی اگر در نهایت با شکست مواجه شوند.

این ابزار با ردیابی پویای توابع هسته tcp_v4_connect() و tcp_v6_connect() کار می‌کند و برای هماهنگی با هرگونه تغییر در این توابع نیازمند به‌روزرسانی خواهد بود.

از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند.

CONFIG_BPF و bpftrace.

ردیابی تمام اتصال‌های فعال TCP:
# tcpconnect.bt

زمان فراخوانی، در قالب HH:MM:SS.
شناسه فرآیند
نام فرآیند
نشانی IP مبدأ.
درگاه مبدأ.
نشانی IP مقصد.
درگاه مقصد

این ابزار توابع هسته tcp_v[46]_connect را ردیابی کرده و برای هر رویداد خروجی چاپ می‌کند. از آنجا که نرخ این رویدادها معمولاً پایین انتظار می‌رود (کمتر از ۱۰۰۰ در ثانیه)، بار پردازشی نیز ناچیز خواهد بود. اگر برنامه‌ای دارید که با نرخ بالایی ()connect را فراخوانی می‌کند، مانند یک کارساز پراکسی، پیش از استفاده این بار پردازشی را آزمایش کرده و بسنجید.

این ابزار برگرفته از bpftrace است.

https://github.com/bpftrace/bpftrace

همچنین در توزیع bpftrace به پرونده همراه _examples.txt که شامل نمونه نحوه استفاده، خروجی و توضیحات این ابزار است مراجعه کنید.

این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و قابلیت‌های سفارشی‌سازی بیشتری ارائه دهد.

https://github.com/iovisor/bcc

Linux

ناپایدار - در حال توسعه.

Brendan Gregg، سازگار شده برای bpftrace توسط Dale Hamel

tcpaccept.bt(8), funccount(8), tcpdump(8)

2018-11-24 USER COMMANDS