DOKK / manpages / debian 12 / bpfcc-tools / tcpaccept-bpfcc.8.en
tcpaccept(8) System Manager's Manual tcpaccept(8)

tcpaccept - Trace TCP passive connections (accept()). Uses Linux eBPF/bcc.

tcpaccept [-h] [-T] [-t] [-p PID] [-P PORTS] [-4 | -6] [--cgroupmap MAPPATH] [--mntnsmap MAPPATH]

This tool traces passive TCP connections (eg, via an accept() syscall; connect() are active connections). This can be useful for general troubleshooting to see what new connections the local server is accepting.

This uses dynamic tracing of the kernel inet_csk_accept() socket function (from tcp_prot.accept), and will need to be modified to match kernel changes.

This tool only traces successful TCP accept()s. Connection attempts to closed ports will not be shown (those can be traced via other functions).

Since this uses BPF, only the root user can use this tool.

CONFIG_BPF and bcc.

Print usage message.
Include a time column on output (HH:MM:SS).
Include a timestamp column.
Trace this process ID only (filtered in-kernel).
Comma-separated list of local ports to trace (filtered in-kernel).
-4
Trace IPv4 family only.
-6
Trace IPv6 family only.
Trace cgroups in this BPF map only (filtered in-kernel).
Trace mount namespaces in this BPF map only (filtered in-kernel).

# tcpaccept
# tcpaccept -t
# tcpaccept -P 80,81
# tcpaccept -p 181
# tcpaccept -4
# tcpaccept -6
# tcpaccept --cgroupmap /sys/fs/bpf/test01

Time of the event, in HH:MM:SS format.
Time of the event, in seconds.
Process ID
Process name
IP address family (4 or 6)
Remote IP address.
Remote port
Local IP address.
Local port

This traces the kernel inet_csk_accept function and prints output for each event. The rate of this depends on your server application. If it is a web or proxy server accepting many tens of thousands of connections per second, then the overhead of this tool may be measurable (although, still a lot better than tracing every packet). If it is less than a thousand a second, then the overhead is expected to be negligible. Test and understand this overhead before use.

This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

Linux

Unstable - in development.

Brendan Gregg

tcptracer(8), tcpconnect(8), funccount(8), tcpdump(8)

2020-02-20 USER COMMANDS