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
IPv6, open connections, send packets, perform port scanning, and supports higher-level features such as
SSL, and connection broker.
nccommand 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.
To install the ncat package, enter as
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 8080You can send messages on either side of the connection and they appear on both local and remote machines.
Ctrl+Dto close the TCP connection.
To check a UDP port, use the same
nccommands with the
–uoption. 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.
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
–zoption and specify a range of ports to scan:
ncat -z 10.0.11.60 80-90Connection to 192.168.0.1 80 port [tcp/http] succeeded!
Example 1.5. Setting up Secure Client-Server Communication Using SSL
SSLon a server:
ncat -e /bin/bash -k -l 8080 --ssl
On a client machine:
ncat --ssl 10.0.11.60 8080
To ensure true confidentiality of the
SSLconnection, the server requires the
--ssl-keyoptions, and the client requires the
--ssl-trustfileoptions. For information on
OpenSSL, see the Using OpenSSL section in the Security Guide.
For more examples, see the ncat(1) man page.