Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
1.7. Managing Data Using the ncat utility
The ncat networking utility replaces netcat in Red Hat Enterprise Linux 7. ncat is a reliable back-end tool that provides network connectivity to other applications and users. It reads and writes data across the network from the command line, and uses Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Stream Control Transmission Protocol (SCTP) or Unix sockets for communication. ncat can deal with both
IPv4
and IPv6
, open connections, send packets, perform port scanning, and supports higher-level features such as SSL
, and connection broker.
The
nc
command can also be entered as ncat
, using the identical options. For more information about the ncat options, see the New networking utility (ncat) section in the Migration Planning Guide and the ncat(1) man page.
Installing ncat
To install the ncat package, enter as
root
:
~]# yum install ncat
Brief Selection of ncat Use Cases
Example 1.1. Enabling Communication between a Client and a Server
- Set a client machine to listen for connections on TCP port 8080:
~]$
ncat -l 8080
- On a server machine, specify the IP address of the client and use the same port number:
~]$
ncat 10.0.11.60 8080
You can send messages on either side of the connection and they appear on both local and remote machines. - Press
Ctrl+D
to close the TCP connection.
Note
To check a UDP port, use the same
nc
commands with the –u
option. For example:
~]$ ncat -u -l 8080
Example 1.2. Sending Files
Instead of printing information on the screen, as mentioned in the previous example, you can send all information to a file. For example, to send a file over TCP port 8080 from a client to a server:
- On a client machine, to listen a specific port transferring a file to the server machine:
~]$
ncat -l 8080 > outputfile
- On a server machine, specify the IP address of the client, the port and the file which is to be transferred:
~]$
ncat -l 10.0.11.60 8080 < inputfile
After the file is transferred, the connection closes automatically.
Note
You can transfer a file in the other direction as well:
~]$ ncat -l 8080 < inputfile
~]$ ncat -l 10.0.11.60 8080 > outputfile
Example 1.3. Creating an HTTP proxy server
To create an HTTP proxy server on localhost port 8080:
~]$ ncat -l --proxy-type http localhost 8080
Example 1.4. Port Scanning
To view which ports are open, use the
–z
option and specify a range of ports to scan:
~]$ ncat -z 10.0.11.60 80-90
Connection to 192.168.0.1 80 port [tcp/http] succeeded!
Example 1.5. Setting up Secure Client-Server Communication Using SSL
Set up
SSL
on a server:
~]$ ncat -e /bin/bash -k -l 8080 --ssl
On a client machine:
~]$ ncat --ssl 10.0.11.60 8080
Note
To ensure true confidentiality of the
SSL
connection, the server requires the --ssl-cert
and --ssl-key
options, and the client requires the --ssl-verify
and --ssl-trustfile
options. For information on OpenSSL
, see the Using OpenSSL section in the Security Guide.
For more examples, see the ncat(1) man page.