How to Use Netcat in Linux: Commands and Examples

Table of Contents

Introduction

Netcat, commonly known as nc, is a useful Linux command-line tool for network communication. It helps users test ports, transfer files, communicate between computers, and troubleshoot network connections. It supports both TCP and UDP protocols. This blog helps you learn the basic syntax and common uses of Netcat with simple examples.

What Is Netcat in Linux?

Netcat (nc) is a command-line networking tool used to establish TCP and UDP connections between computers. It helps Linux administrators check open ports, transfer files, test network connectivity, inspect service banners, and troubleshoot network communication.

It is lightweight and useful for basic network diagnostics, although it does not provide encryption by default.

Netcat provides several command-line options that control how connections are created, tested, and managed. The following table explains the commonly used options with examples.

Option Description
-h Displays help information (availability varies by version).
-l Listens for incoming connections.
-v Displays detailed connection information.
-z Checks ports without sending application data.
-u Uses UDP instead of TCP.
-n Disables DNS name resolution.
-w Sets a connection or idle timeout in seconds.
-k Keeps listening for additional connections when supported with -l.

1. Installation

Install Netcat on Ubuntu or Debian:

sudo apt install netcat-openbsd

2. Basic Syntax

The basic syntax is:

nc [options] [host] [port]

To listen for incoming connections:

nc -l 8080

3. Port Scanning

Netcat can check whether a TCP port is accessible.

nc -zv localhost 22

Here, -z checks the port without exchanging data, while -v displays connection details.

4. Sending Files and Directory Transfer

To receive a file, run this on the receiving computer:

 

nc -l 9999 > received.txt

On the sending computer:

 

nc RECEIVER_IP 9999 < file.txt

For directories, use tar with Netcat to package and transfer files. Extract the archive at the receiving end. Use this only on trusted networks because Netcat does not encrypt the transfer.

5. Chat Server

On Computer A:

nc -l 5555

On Computer B:

nc COMPUTER_A_IP 5555

Now both users can type messages through the connection.

6. Banner Grabbing

Banner grabbing helps identify a service running on a port.

nc localhost 22

An SSH server may display its software identification string.

7. Bind Shell and Reverse Shell

A bind shell listens on a machine for a connection that could provide command-line access. A reverse shell connects outward to another machine. Both can be misused to gain unauthorized access, so test these concepts only in isolated, authorized labs. Avoid exposing shells to public networks.

8. TCP/UDP Port Forwarding

Netcat can help create simple TCP proxies for troubleshooting. For UDP testing, use the -u option:

nc -u localhost 5353

Netcat is not a complete production-grade forwarding solution. Use dedicated networking tools for reliable TCP or UDP forwarding.

9. Limitations and Alternatives

Limitations: Netcat does not encrypt data, UDP checks can be inconclusive, and command options differ between versions.

Alternatives:

  • nmap — detailed port scanning.
  • scp and rsync — secure file transfers.
  • socat — advanced connections and forwarding.
  • curl — testing HTTP services.
  • ncat — a Netcat-compatible tool with additional features.

Need Professional Linux Server Management Support?

Managing Linux servers involves more than checking network connections. Businesses need continuous monitoring, security management, troubleshooting, and infrastructure maintenance to keep their servers reliable and secure.

Skynats provides professional server management and infrastructure management services to help businesses maintain stable, secure, and high-performing server environments.

Whether you need assistance with Linux server troubleshooting, network connectivity, server security, or ongoing infrastructure management, our team can help.

Contact Skynats to discuss your server management requirements and get expert assistance.

Explore Skynats Server Management Services

Conclusion

Netcat is a lightweight and versatile Linux networking utility that helps administrators test ports, transfer files, establish connections, and troubleshoot network communication.

Understanding its syntax, options, and practical applications makes it easier to diagnose common networking issues. However, administrators should also consider its security limitations and use encrypted alternatives when handling sensitive information.

For businesses managing critical server infrastructure, professional monitoring, security, and server management support can help maintain reliable network operations.

Picture of Merin John

Merin John

Merin John is a Level 1 System Engineer at Skynats Technologies, specializing in server management, cloud infrastructure, and technical support.

Liked!! Share the post.

Get Support right now!

Start server management with our 24x7 monitoring and active support team

Subscribe and get your first issue fixed for Free!

Looking for server support and 24x7 monitoring?

Have doubts? Connect with us now.