🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

nc Command

Advanced Networking man(1)

Networking utility for reading/writing across network connections

👁 11 views 📅 Updated: Mar 15, 2026
SYNTAX
nc [OPTION]... [HOST] [PORT]

What Does nc Do?

nc (netcat) is a versatile networking utility that reads and writes data across network connections. It can create TCP/UDP connections, listen for connections, port scan, transfer files, and serve as a network debugging tool.

nc is often called the "Swiss Army knife" of networking. It can function as a simple client or server for any protocol, making it invaluable for testing, debugging, and ad-hoc data transfer.

nc is commonly used for port checking, quick file transfers, network chat, and as a building block in shell scripts for network operations.

Options & Flags

OptionDescriptionExample
-l Listen mode (server) nc -l 8080
-v Verbose output nc -v example.com 80
-z Scan mode (zero I/O, for port scanning) nc -zv example.com 80
-w Timeout in seconds nc -w 3 example.com 80
-u UDP mode nc -u example.com 53
-k Keep listening after client disconnects nc -lk 8080

Practical Examples

#1 Check if port is open

Tests if port 443 is open on the remote host.
$ nc -zv example.com 443
Output: Connection to example.com 443 port [tcp/https] succeeded!

#2 Scan port range

Scans ports 20-25 on the remote host.
$ nc -zv example.com 20-25

#3 Simple chat server

Listens on port 9000 — anything typed on the other end appears here.
$ nc -l 9000

#4 Connect to chat

Connects to the listening nc and enables text exchange.
$ nc hostname 9000

#5 File transfer (receiver)

Receives a file on port 9000.
$ nc -l 9000 > received_file.tar.gz

#6 File transfer (sender)

Sends a file to the receiving nc.
$ nc hostname 9000 < file.tar.gz

#7 HTTP request

Sends a raw HTTP request — useful for debugging web servers.
$ echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

#8 Port check in script

Checks if PostgreSQL is reachable with a 3-second timeout.
$ nc -zw3 db-server 5432 && echo "PostgreSQL up" || echo "PostgreSQL down"

Tips & Best Practices

Quick port check: nc -zv host port is the fastest way to test if a remote port is open. Faster and simpler than telnet.
ncat vs nc variants: There are several nc variants: GNU netcat, OpenBSD netcat, ncat (from nmap). Options vary. Check nc -h for your version.
Security tool: nc can create reverse shells and transfer data. It is a legitimate admin tool but can be used maliciously — use responsibly.

Frequently Asked Questions

How do I check if a port is open?
nc -zv hostname port. It reports success or failure. Add -w 3 for a 3-second timeout.
How do I transfer a file with nc?
Receiver: nc -l 9000 > file. Sender: nc hostname 9000 < file. Simple and fast for quick transfers.
What is netcat used for?
Port checking, network debugging, file transfer, banner grabbing, and as a lightweight TCP/UDP client/server.

Master Linux with Professional eBooks

Curated IT eBooks covering Linux, DevOps, Cloud, and more

Browse Books →