Linux nc(netcat) Command with Practical Examples

LinuxLinuxBeginner
Practice Now

Introduction

In this lab, you will learn about the nc (netcat) command, a powerful tool for network communication and troubleshooting in Linux. The lab covers the usage of nc for TCP and UDP server-client communication, demonstrating its versatility in tasks such as port scanning and file transfers.

The lab starts with an introduction to the nc command and its installation on an Ubuntu 22.04 Docker container. It then explores the usage of nc for setting up a TCP server and client communication, followed by examples of using nc for UDP server and client communication. The lab provides practical examples and step-by-step instructions to help you understand and apply the nc command in your networking and communication tasks.

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/RemoteAccessandNetworkingGroup(["`Remote Access and Networking`"]) linux/RemoteAccessandNetworkingGroup -.-> linux/telnet("`Network Connecting`") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("`Network Monitoring`") linux/RemoteAccessandNetworkingGroup -.-> linux/nc("`Networking Utility`") subgraph Lab Skills linux/telnet -.-> lab-422835{{"`Linux nc(netcat) Command with Practical Examples`"}} linux/netstat -.-> lab-422835{{"`Linux nc(netcat) Command with Practical Examples`"}} linux/nc -.-> lab-422835{{"`Linux nc(netcat) Command with Practical Examples`"}} end

Introduction to nc (netcat) Command

In this step, you will learn about the nc (netcat) command, a powerful tool for network communication and troubleshooting in Linux. Netcat is a versatile utility that can be used for a variety of tasks, including TCP and UDP server-client communication, port scanning, and file transfers.

First, let's install the netcat package in our Ubuntu 22.04 Docker container:

sudo apt-get update
sudo apt-get install -y netcat

Example output:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  netcat-openbsd
The following NEW packages will be installed:
  netcat netcat-openbsd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 54.6 kB of archives.
After this operation, 206 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...

Now that we have netcat installed, let's explore some basic usage examples.

Using nc for TCP Server and Client Communication

In this step, you will learn how to use the nc (netcat) command to set up a simple TCP server and client communication.

First, let's start a TCP server using nc. We will have the server listen on port 8000 and wait for incoming connections:

nc -l -p 8000

The -l option tells nc to listen for incoming connections, and the -p option specifies the port number.

In a separate terminal, let's connect to the server as a client:

nc 127.0.0.1 8000

Now you can type a message in the client terminal and press Enter. The message will be displayed in the server terminal. You can continue sending messages back and forth between the client and server.

To exit the server, press Ctrl+C. To exit the client, simply close the connection by pressing Ctrl+C.

Example output:

Server terminal:

Hello from the server!

Client terminal:

Hello from the client!

Using nc for UDP Server and Client Communication

In this step, you will learn how to use the nc (netcat) command to set up a simple UDP server and client communication.

First, let's start a UDP server using nc. We will have the server listen on port 8000 and wait for incoming connections:

nc -u -l -p 8000

The -u option tells nc to use the UDP protocol, the -l option tells nc to listen for incoming connections, and the -p option specifies the port number.

In a separate terminal, let's connect to the server as a UDP client:

nc -u 127.0.0.1 8000

The -u option tells nc to use the UDP protocol.

Now you can type a message in the client terminal and press Enter. The message will be displayed in the server terminal. You can continue sending messages back and forth between the client and server.

To exit the server, press Ctrl+C. To exit the client, simply close the connection by pressing Ctrl+C.

Example output:

Server terminal:

Hello from the UDP server!

Client terminal:

Hello from the UDP client!

Summary

In this lab, you will learn about the nc (netcat) command, a powerful tool for network communication and troubleshooting in Linux. You will explore how to use nc for TCP server-client communication, as well as how to set up a UDP server and client. Netcat is a versatile utility that can be used for a variety of tasks, including port scanning and file transfers.

You will start by installing the netcat package on an Ubuntu 22.04 Docker container. Then, you will learn how to use nc to set up a TCP server, listen for incoming connections, and communicate with a client. Additionally, you will explore the use of nc for UDP server-client communication.

Linux Commands Cheat Sheet

Other Linux Tutorials you may like