How can I select default version of Netcat in ubuntu

10,579

Solution 1

There is no installed version because netcat is a transitional package. It means it doesn't contain any files. The package installed (by default) and provides netcat is netcat-openbsd. You can check it's version:

apt-cache policy netcat-openbsd  

From netcat manual:

"There is no -c or -e option in this netcat, but you still can execute a command after connection being established by redirecting file descriptors. Be cautious here because opening a port and let anyone connected execute arbitrary command on your site is DANGEROUS (...)"


There is also netcat-traditional with -e option. You can remove netcat-openbsd and install traditional version:

sudo apt-get install netcat-traditional 

or keep both versions and choose traditional by running:

sudo update-alternatives --config nc 

Solution 2

By default in Ubuntu netcat-openbsd package is installed. -e option is not available in netcat-openbsd. for that you need to install netcat-traditional package.

$sudo apt-get install netcat-traditional

After the installation you have to switch from netcat-openbsd to netcat-traditional. for that type

$sudo update-alternatives --config nc

you will get some choices like this

There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
  0            /bin/nc.openbsd       50        auto mode
* 1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press enter to keep the current choice[*], or type selection number: 

Then enter selection number of netcat-traditional in the prompt,( here 2 ).

and yes we done it.

to check does it work, type

$nc -h

you will see -e option in the list

Share:
10,579

Related videos on Youtube

Harshit Garg
Author by

Harshit Garg

Novice Programmer! Linux 1st <3

Updated on September 18, 2022

Comments

  • Harshit Garg
    Harshit Garg over 1 year

    When I checked netcat -h I found out that the -e and Version option is missing from my netcat. I use Ubuntu 15.10. After searching from forums I found out a way to know the version installed and the candidate for it.

    apt-cache policy netcat
    

    I got the following output:

    Installed: (none)
    Candidate: 1.10-41
    Version table:
    1.10-41 0
    500 http://archive.ubuntu.com/ubuntu/ wily/universe amd64 Packages
    

    So I installed netcat and I got the candidate version. Now I'm confused about how to select the default netcat version and and -e option is nowhere to be seen.

    What should be the solution for this?

    Thanks.