Section 1: nc
This page was been converted automatically, from Debian GNU/Linux
man pages.
NC(1) NC(1)
NAME
nc - TCP/IP swiss army knife
SYNOPSIS
nc [-options] hostname port[s] [ports] ...
nc -l -p port [-options] [hostname] [port]
DESCRIPTION
netcat is a simple unix utility which reads and writes
data across network connections, using TCP or UDP proto-
col. It is designed to be a reliable "back-end" tool that
can be used directly or easily driven by other programs
and scripts. At the same time, it is a feature-rich net-
work debugging and exploration tool, since it can create
almost any kind of connection you would need and has sev-
eral interesting built-in capabilities. Netcat, or "nc"
as the actual program is named, should have been supplied
long ago as another one of those cryptic but standard Unix
tools.
In the simplest usage, "nc host port" creates a TCP con-
nection to the given port on the given target host. Your
standard input is then sent to the host, and anything that
comes back across the connection is sent to your standard
output. This continues indefinitely, until the network
side of the connection shuts down. Note that this behav-
ior is different from most other applications which shut
everything down and exit after an end-of-file on the stan-
dard input.
Netcat can also function as a server, by listening for
inbound connections on arbitrary ports and then doing the
same reading and writing. With minor limitations, netcat
doesn't really care if it runs in "client" or "server"
mode -- it still shovels data back and forth until there
isn't any more left. In either mode, shutdown can be
forced after a configurable time of inactivity on the net-
work side.
And it can do this via UDP too, so netcat is possibly the
"udp telnet-like" application you always wanted for test-
ing your UDP-mode servers. UDP, as the "U" implies, gives
less reliable data transmission than TCP connections and
some systems may have trouble sending large amounts of
data that way, but it's still a useful capability to have.
You may be asking "why not just use telnet to connect to
arbitrary ports?" Valid question, and here are some rea-
sons. Telnet has the "standard input EOF" problem, so one
must introduce calculated delays in driving scripts to
allow network output to finish. This is the main reason
netcat stays running until the *network* side closes.
Telnet also will not transfer arbitrary binary data,
because certain characters are interpreted as telnet
1
NC(1) NC(1)
options and are thus removed from the data stream. Telnet
also emits some of its diagnostic messages to standard
output, where netcat keeps such things religiously sepa-
rated from its *output* and will never modify any of the
real data in transit unless you *really* want it to. And
of course telnet is incapable of listening for inbound
connections, or using UDP instead. Netcat doesn't have
any of these limitations, is much smaller and faster than
telnet, and has many other advantages.
OPTIONS
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h Display help.
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number (port numbers can be indi-
vidual or ranges: lo-hi [inclusive])
-q seconds Quit after EOF is detected on stdin and after
a delay. "-q 0" makes "nc" quit as soon as
EOF is detected.
-r randomize local and remote ports
-s addr local source address
-t Enable telnet negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
COPYRIGHT
Netcat is entirely my own creation, although plenty of
other code was used as examples. It is freely given away
to the Internet community in the hope that it will be use-
ful, with no restrictions except giving credit where it is
due. No GPLs, Berkeley copyrights or any of that non-
sense. The author assumes NO responsibility for how any-
one uses it. If netcat makes you rich somehow and you're
2
NC(1) NC(1)
feeling generous, mail me a check. If you are affiliated
in any way with Microsoft Network, get a life. Always ski
in control. Comments, questions, and patches to hob-
bit@avian.org.
BUGS
Efforts have been made to have netcat "do the right thing"
in all its various modes. If you believe that it is doing
the wrong thing under whatever circumstances, please
notify me and tell me how you think it should behave. If
netcat is not able to do some task you think up, minor
tweaks to the code will probably fix that. It provides a
basic and easily-modified template for writing other net-
work applications, and I certainly encourage people to
make custom mods and send in any improvements they make to
it. Continued feedback from the Internet community is
always welcome!
Some port names in /etc/services contain hyphens -- netcat
currently will not correctly parse those, so specify
ranges using numbers if you can.
SEE ALSO
/usr/doc/netcat/README.gz
AUTHOR
This manual page was written by Joey Hess and Robert Woodcock ,
cribbing heavily from Netcat's README file.
Netcat was written by a guy we know as the Hobbit, or _H*
.
3