add netcat manpage
This commit is contained in:
parent
af2ec70280
commit
e0fbe7aea4
|
@ -0,0 +1,165 @@
|
||||||
|
.TH NC 1
|
||||||
|
.SH NAME
|
||||||
|
nc \- TCP/IP swiss army knife
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B nc
|
||||||
|
.I "[-options] hostname port[s] [ports] ..."
|
||||||
|
.br
|
||||||
|
.B nc
|
||||||
|
.I "-l -p port [-options] [hostname] [port]"
|
||||||
|
.SH "DESCRIPTION"
|
||||||
|
.nf
|
||||||
|
\fBnetcat\fR is a simple unix utility which reads and /\\_/\\
|
||||||
|
writes data across network connections, using TCP / 0 0 \\
|
||||||
|
or UDP protocol. It is designed to be a reliable ====v====
|
||||||
|
"back-end" tool that can be used directly or easily \\ W /
|
||||||
|
driven by other programs and scripts. At the same | | _
|
||||||
|
time, it is a feature-rich network debugging and / ___ \\ /
|
||||||
|
exploration tool, since it can create almost any / / \\ \\ |
|
||||||
|
kind of connection you would need and has several (((-----)))-'
|
||||||
|
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 \\__.=|___E
|
||||||
|
but standard Unix tools. /
|
||||||
|
.fi
|
||||||
|
.P
|
||||||
|
In the simplest usage, "nc host port" creates a TCP connection 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 behavior is
|
||||||
|
different from most other applications which shut everything down and
|
||||||
|
exit after an end-of-file on the standard input.
|
||||||
|
.P
|
||||||
|
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 network side.
|
||||||
|
.P
|
||||||
|
And it can do this via UDP too, so netcat is possibly the "udp
|
||||||
|
telnet-like" application you always wanted for testing 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.
|
||||||
|
.P
|
||||||
|
You may be asking "why not just use telnet to connect to arbitrary
|
||||||
|
ports?" Valid question, and here are some reasons. 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 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 separated
|
||||||
|
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.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP 13
|
||||||
|
.BR -4
|
||||||
|
use of IPv4 addresses (also the default)
|
||||||
|
.TP 13
|
||||||
|
.BR -6
|
||||||
|
use of IPv6 addresses
|
||||||
|
.TP 13
|
||||||
|
.BR -b
|
||||||
|
allow broadcast addresses
|
||||||
|
.TP 13
|
||||||
|
.BR \-c " string"
|
||||||
|
specify shell commands to exec after connect (use with caution). The string is
|
||||||
|
passed to /bin/sh \-c for execution. See the
|
||||||
|
.BR \-e
|
||||||
|
option if you don't have a working /bin/sh (Note that POSIX-conformant system
|
||||||
|
must have one).
|
||||||
|
.TP 13
|
||||||
|
.BR \-e " filename"
|
||||||
|
specify filename to exec after connect (use with caution). See the
|
||||||
|
.BR \-c
|
||||||
|
option for enhanced functionality.
|
||||||
|
.TP 13
|
||||||
|
.BR \-g " gateway"
|
||||||
|
source-routing hop point[s], up to 8
|
||||||
|
.TP 13
|
||||||
|
.BR \-G " num"
|
||||||
|
source-routing pointer: 4, 8, 12, ...
|
||||||
|
.TP 13
|
||||||
|
.BR \-h
|
||||||
|
display help
|
||||||
|
.TP 13
|
||||||
|
.BR \-i " secs"
|
||||||
|
delay interval for lines sent, ports scanned
|
||||||
|
.TP 13
|
||||||
|
.BR \-l
|
||||||
|
listen mode, for inbound connects
|
||||||
|
.TP 13
|
||||||
|
.BR \-n
|
||||||
|
numeric-only IP addresses, no DNS
|
||||||
|
.TP 13
|
||||||
|
.BR \-o " file"
|
||||||
|
hex dump of traffic
|
||||||
|
.TP 13
|
||||||
|
.BR \-p " port"
|
||||||
|
local port number (port numbers can be individual or ranges: lo-hi
|
||||||
|
[inclusive])
|
||||||
|
.TP 13
|
||||||
|
.BR \-q " seconds"
|
||||||
|
after EOF is detected, wait the specified number of seconds and then
|
||||||
|
quit.
|
||||||
|
.TP 13
|
||||||
|
.BR \-r
|
||||||
|
randomize local and remote ports
|
||||||
|
.TP 13
|
||||||
|
.BR \-s " addr"
|
||||||
|
local source address
|
||||||
|
.TP 13
|
||||||
|
.BR \-t
|
||||||
|
enable telnet negotiation
|
||||||
|
.TP 13
|
||||||
|
.BR \-u
|
||||||
|
UDP mode
|
||||||
|
.TP 13
|
||||||
|
.BR \-v
|
||||||
|
verbose [use twice to be more verbose]
|
||||||
|
.TP 13
|
||||||
|
.BR \-w " secs"
|
||||||
|
timeout for connects and final net reads
|
||||||
|
.TP 13
|
||||||
|
.BR \-z
|
||||||
|
zero-I/O mode [used for scanning]
|
||||||
|
.SH 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 useful, with no restrictions except giving
|
||||||
|
credit where it is due. No GPLs, Berkeley copyrights or any of that
|
||||||
|
nonsense. The author assumes NO responsibility for how anyone uses
|
||||||
|
it. If netcat makes you rich somehow and you're 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 hobbit@avian.org.
|
||||||
|
.SH NOTES
|
||||||
|
Some port names in /etc/services contain hyphens -- netcat assumes dashes
|
||||||
|
are only used for ranges, so you have to escape the hyphens with backslashes
|
||||||
|
(e.g. "netcat localhost 'ftp\\\-data'") to use them.
|
||||||
|
.SH 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 network 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!
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
/usr/share/doc/netcat/README.gz
|
||||||
|
.SH AUTHOR
|
||||||
|
This manual page was written by Joey Hess <joeyh@debian.org> and
|
||||||
|
Robert Woodcock <rcw@debian.org>, cribbing heavily from Netcat's
|
||||||
|
README file.
|
||||||
|
.P
|
||||||
|
Netcat was written by a guy we know as the Hobbit <hobbit@avian.org>.
|
Loading…
Reference in New Issue