tcpconnect - Trace TCP active connections (connect()). Uses Linux eBPF/bcc.
tcpconnect [-h] [-t] [-x] [-p PID] [-P PORT]
This tool traces active TCP connections (eg, via a connect() syscall; accept()
are passive connections). This can be useful for general troubleshooting to
see what connections are initiated by the local server.
All connection attempts are traced, even if they ultimately fail.
This works by tracing the kernel tcp_v4_connect() and tcp_v6_connect() functions
using dynamic tracing, and will need updating to match any changes to these
Since this uses BPF, only the root user can use this tool.
CONFIG_BPF and bcc.
- Print usage message.
- Include a timestamp column.
- -p PID
- Trace this process ID only (filtered in-kernel).
- -P PORT
- Comma-separated list of destination ports to trace
- Trace all active TCP connections:
- # tcpconnect
- Trace all TCP connects, and include timestamps:
- # tcpconnect -t
- Trace PID 181 only:
- # tcpconnect -p 181
- Trace ports 80 and 81 only:
- # tcpconnect -P 80,81
- Time of the call, in seconds.
- Process ID
- Process name
- IP address family (4 or 6)
- Source IP address.
- Destination IP address.
- Destination port
This traces the kernel tcp_v_connect functions and prints output for each
event. As the rate of this is generally expected to be low (< 1000/s), the
overhead is also expected to be negligible. If you have an application that is
calling a high rate of connects()s, such as a proxy server, then test and
understand this overhead before use.
This is from bcc.
Also look in the bcc distribution for a companion _examples.txt file containing
example usage, output, and commentary for this tool.
Unstable - in development.
tcpaccept(8), funccount(8), tcpdump(8)