NAME¶
conntrack - command line interface for netfilter connection tracking
SYNOPSIS¶
conntrack -L [table] [options] [-z]
conntrack -G [table] parameters
conntrack -D [table] parameters
conntrack -I [table] parameters
conntrack -U [table] parameters
conntrack -E [table] [options]
conntrack -F [table]
conntrack -C [table]
conntrack -S
DESCRIPTION¶
conntrack provides a full featured userspace interface to the netfilter
connection tracking system that is intended to replace the old
/proc/net/ip_conntrack interface. This tool can be used to search, list,
inspect and maintain the connection tracking subsystem of the Linux kernel.
Using
conntrack , you can dump a list of all (or a filtered selection
of) currently tracked connections, delete connections from the state table,
and even add new ones.
In addition, you can also monitor connection tracking events, e.g. show an event
message (one line) per newly established connection.
TABLES¶
The connection tracking subsystem maintains two internal tables:
- conntrack:
- This is the default table. It contains a list of all
currently tracked connections through the system. If you don't use
connection tracking exemptions (NOTRACK iptables target), this means all
connections that go through the system.
- expect:
- This is the table of expectations. Connection tracking
expectations are the mechanism used to "expect" RELATED
connections to existing ones. Expectations are generally used by
"connection tracking helpers" (sometimes called application
level gateways [ALGs]) for more complex protocols such as FTP, SIP,
H.323.
OPTIONS¶
The options recognized by
conntrack can be divided into several different
groups.
COMMANDS¶
These options specify the particular operation to perform. Only one of them can
be specified at any given time.
- -L --dump
- List connection tracking or expectation table
- -G, --get
- Search for and show a particular (matching) entry in the
given table.
- -D, --delete
- Delete an entry from the given table.
- -I, --create
- Create a new entry from the given table.
- -U, --update
- Update an entry from the given table.
- -E, --event
- Display a real-time event log.
- -F, --flush
- Flush the whole given table
- -C, --count
- Show the table counter.
- -S, --stats
- Show the in-kernel connection tracking system
statistics.
PARAMETERS¶
- -z, --zero
- Atomically zero counters after reading them. This option is
only valid in combination with the "-L, --dump" command
options.
- -o, --output [extended,xml,timestamp,id,ktimestamp]
- Display output in a certain format. With the extended
output option, this tool displays the layer 3 information. With
ktimestamp, it displays the in-kernel timestamp available since 2.6.38
(you can enable it via echo 1 >
/proc/sys/net/netfilter/nf_conntrack_timestamp).
- -e, --event-mask
[ALL|NEW|UPDATES|DESTROY][,...]
- Set the bitmask of events that are to be generated by the
in-kernel ctnetlink event code. Using this parameter, you can reduce the
event messages generated by the kernel to those types to those that you
are actually interested in. This option can only be used in conjunction
with "-E, --event".
- -b, --buffer-size value (in bytes)
- Set the Netlink socket buffer size. This option is useful
if the command line tool reports ENOBUFS errors. If you do not pass this
option, the default value available at /proc/sys/net/core/rmem_default is
used. The tool reports this problem if your process is too slow to handle
all the event messages or, in other words, if the amount of events are big
enough to overrun the socket buffer. Note that using a big buffer reduces
the chances to hit ENOBUFS, however, this results in more memory
consumption. This option can only be used in conjunction with "-E,
--event".
FILTER PARAMETERS¶
- -s, --orig-src IP_ADDRESS
- Match only entries whose source address in the original
direction equals the one specified as argument.
- -d, --orig-dst IP_ADDRESS
- Match only entries whose destination address in the
original direction equals the one specified as argument.
- -r, --reply-src IP_ADDRESS
- Match only entries whose source address in the reply
direction equals the one specified as argument.
- -q, --reply-dst IP_ADDRESS
- Match only entries whose destination address in the reply
direction equals the one specified as argument.
- -p, --proto PROTO
- Specify layer four (TCP, UDP, ...) protocol.
- -f, --family PROTO
- Specify layer three (ipv4, ipv6) protocol This option is
only required in conjunction with "-L, --dump". If this option
is not passed, the default layer 3 protocol will be IPv4.
- -t, --timeout TIMEOUT
- Specify the timeout.
- -m, --mark MARK[/MASK]
- Specify the conntrack mark. Optionally, a mask value can be
specified. In "--update" mode, this mask specifies the bits that
should be zeroed before XORing the MARK value into the ctmark. Otherwise,
the mask is logically ANDed with the existing mark before the comparision.
In "--create" mode, the mask is ignored.
- -c, --secmark SECMARK
- Specify the conntrack selinux security mark.
- -u, --status
[ASSURED|SEEN_REPLY|FIXED_TIMEOUT|EXPECTED|UNSET][,...]
- Specify the conntrack status.
- -n, --src-nat
- Filter source NAT connections.
- -g, --dst-nat
- Filter destination NAT connections.
- -j, --any-nat
- Filter any NAT connections.
- -w, --zone
- Filter by conntrack zone. See iptables CT target for more
information.
- --tuple-src IP_ADDRESS
- Specify the tuple source address of an expectation.
- --tuple-dst IP_ADDRESS
- Specify the tuple destination address of an
expectation.
- --mask-src IP_ADDRESS
- Specify the source address mask of an expectation.
- --mask-dst IP_ADDRESS
- Specify the destination address mask of an
expectation.
PROTOCOL FILTER PARAMETERS¶
- TCP-specific fields:
- --sport, --orig-port-src PORT
- Source port in original direction
- --dport, --orig-port-dst PORT
- Destination port in original direction
- --reply-port-src PORT
- Source port in reply direction
- --reply-port-dst PORT
- Destination port in reply direction
- --state [NONE | SYN_SENT | SYN_RECV | ESTABLISHED
| FIN_WAIT | CLOSE_WAIT | LAST_ACK | TIME_WAIT | CLOSE | LISTEN]
- TCP state
- UDP-specific fields:
- --sport, --orig-port-src PORT
- Source port in original direction
- --dport, --orig-port-dst PORT
- Destination port in original direction
- --reply-port-src PORT
- Source port in reply direction
- --reply-port-dst PORT
- Destination port in reply direction
- ICMP-specific fields:
- --icmp-type TYPE
- ICMP Type. Has to be specified numerically.
- --icmp-code CODE
- ICMP Code. Has to be specified numerically.
- --icmp-id ID
- ICMP Id. Has to be specified numerically
(non-mandatory)
- UDPlite-specific fields:
- --sport, --orig-port-src PORT
- Source port in original direction
- --dport, --orig-port-dst PORT
- Destination port in original direction
- --reply-port-src PORT
- Source port in reply direction
- --reply-port-dst PORT
- Destination port in reply direction
- SCTP-specific fields:
- --sport, --orig-port-src PORT
- Source port in original direction
- --dport, --orig-port-dst PORT
- Destination port in original direction
- --reply-port-src PORT
- Source port in reply direction
- --reply-port-dst PORT
- Destination port in reply direction
- --state [NONE | CLOSED | COOKIE_WAIT |
COOKIE_ECHOED | ESTABLISHED | SHUTDOWN_SENT | SHUTDOWN_RECD |
SHUTDOWN_ACK_SENT]
- SCTP state
- --orig-vtag value
- Verification tag (32-bits value) in the original
direction
- --reply-vtag value
- Verification tag (32-bits value) in the reply
direction
- DCCP-specific fields (needs Linux >= 2.6.30):
- --sport, --orig-port-src PORT
- Source port in original direction
- --dport, --orig-port-dst PORT
- Destination port in original direction
- --reply-port-src PORT
- Source port in reply direction
- --reply-port-dst PORT
- Destination port in reply direction
- --state [NONE | REQUEST | RESPOND | PARTOPEN |
OPEN | CLOSEREQ | CLOSING | TIMEWAIT]
- DCCP state --role [client | server] Role that
the original conntrack tuple is tracking
- GRE-specific fields:
- --srckey, --orig-key-src KEY
- Source key in original direction (in hexadecimal or
decimal)
- --dstkey, --orig-key-dst KEY
- Destination key in original direction (in hexadecimal or
decimal)
- --reply-key-src KEY
- Source key in reply direction (in hexadecimal or
decimal)
- --reply-key-dst KEY
- Destination key in reply direction (in hexadecimal or
decimal)
DIAGNOSTICS¶
The exit code is 0 for correct function. Errors which appear to be caused by
invalid command line parameters cause an exit code of 2. Any other errors
cause an exit code of 1.
EXAMPLES¶
- conntrack -L
- Show the connection tracking table in
/proc/net/ip_conntrack format
- conntrack -L -o extended
- Show the connection tracking table in
/proc/net/nf_conntrack format
- conntrack -L -o xml
- Show the connection tracking table in XML
- conntrack -L -f ipv6 -o extended
- Only dump IPv6 connections in /proc/net/nf_conntrack
format
- conntrack -L --src-nat
- Show source NAT connections
- conntrack -E -o timestamp
- Show connection events together with the timestamp
- conntrack -D -s 1.2.3.4
- Delete all flow whose source address is 1.2.3.4
- conntrack -U -s 1.2.3.4 -m 1
- Set connmark to 1 of all the flows whose source address is
1.2.3.4
BUGS¶
Please, report them to netfilter-devel@vger.kernel.org or file a bug in
Netfilter's bugzilla (
https://bugzilla.netfilter.org).
SEE ALSO¶
iptables(8)
See
http://conntrack-tools.netfilter.org
AUTHORS¶
Jay Schulist, Patrick McHardy, Harald Welte and Pablo Neira Ayuso wrote the
kernel-level "ctnetlink" interface that is used by the conntrack
tool.
Pablo Neira Ayuso wrote and maintain the conntrack tool, Harald Welte added
support for conntrack based accounting counters.
Man page written by Harald Welte <laforge@netfilter.org> and Pablo Neira
Ayuso <pablo@netfilter.org>.