netcat (nc) TCP/UDP Swiss army knife
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
nc <host> <port>
nc -zv <host> <port>
nc -zv <host> 20-80
nc -l <port>
nc -u <host> <port>
nc -w 3 <host> <port>
nc -l <port> > <file>
nc <host> <port> < <file>
Concepts
- stdin typed or piped
- nc client or -l server
- peer host:port
- stdout screen, file, pipe
Connect
nc <host> <port>
nc -v <host> <port>
nc -w <secs> <host> <port>
nc -n <ip> <port>
nc -4 / nc -6nc -C <host> <port>
nc -N <host> <port>
nc -q <secs> <host> <port>
nc -s <addr> <host> <port>
nc -p <port> <host> <port>
nc -i <secs> <host> <port>
Listen
nc -l <port>
nc -l -p <port>
nc -lv <port>
nc -lk <port>
nc -l <addr> <port>
nc -lu <port>
nc -lU <path>
nc -W <n> -l <port>
Scan ports
nc -zv <host> <port>
nc -zv <host> <from>-<to>
nc -zv <host> <port1> <port2>
nc -zvw 2 <host> <from>-<to>
nc -zuv <host> <port>
nc -zvr <host> <from>-<to>
Transfer data
nc -l <port> > <file>
nc <host> <port> < <file>
nc -u <host> <port>
echo '<text>' | nc -u -w 1 <host>
<port>
tar cf - <dir> | nc <host> <port>
nc -l <port> | tar xf -
nc -U <path>
nc -o <file> <host> <port>
Proxy and shell
nc -x <proxy>:<port> <host>
<port>
nc -x <proxy>:<port> -X connect <host>
<port>
nc -X 4 -x <proxy> <host> <port>
nc -e <prog> -l -p <port>
nc -g <gw> <host> <port>
Recipes
nc -zvw 3 db.example.com 5432# 'succeeded' / 'open' = port reachable# timeout = filtered, refused = closed
printf 'GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n' \ | nc -w 5 example.com 80
# receivernc -l 9000 > backup.tar.gz# sendernc -N receiver.example.com 9000 < backup.tar.gz
# host Anc -lv 9000# host B: type, lines appear on Anc hostA 9000



