Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a newbie macuser coming from Debian, and I'm a big command line user. One one my preferred one is netcat (aka nc on mac). I especially loved the -e option which enabled to create a process that deals bidirectionnally with the strems.

Unfortunately, when I use the classic:

nc -l -p 6666 -e /bin/bash

Netcat does not agree with me, and I get this:

nc: illegal option -- e
usage: nc [-46DdhklnrtUuvz] [-i interval] [-p source_port]
      [-s source_ip_address] [-w timeout] [-X proxy_version]
      [-x proxy_address[:port]] [hostname] [port[s]]

What does that mean? Can I use this command in another way?

Thanks for your help,


PS: if someone can edit the tags, would be better -- netcat, nc are not known here :)

share|improve this question
Thanks Harv for the tagging thing :) – Rob Apr 30 '11 at 1:29
up vote 7 down vote accepted

After doing some research, it appears that the netcat distributed in MacOS is a rather old (imported at 2005-10-07) version of netcat-openbsd clone. Here is the header file from the netcat.c hosted at

/* $OpenBSD: netcat.c,v 1.82 2005/07/24 09:33:56 marius Exp $ */

There are three popular versions of netcat in the wild:

  • gnu-netcat or netcat ver. 0.71
  • netcat 1.10 or nc110 (also known as netcat-traditional in debian)
  • and the openbsd version (netcat-openbsd, the netcat metapackage points to it) which is in active development.

Currently only the gnu and 1.10 versions support -e option and it's considered insecure. In the 1.10 version you should compile with -DGAPING_SECURITY_HOLE define to enable the -e switch.

The easiest way to install this version would be to use homebrew or other ports system (homebrew uses netcat 0.71 source).

share|improve this answer

I've just checked the man page. Doesn't look like that flag is supported. I suppose you could download a different version.. (perhaps 'netcat' instead of 'nc').

share|improve this answer
Yep... I'm wondering if macports/darwin or something like that could be helpful in this case... When I'll get a little bit more time, i'll have a look at the source version. Thx for the retagging btw :) – Rob Apr 6 '11 at 9:18
@Rob or brew install netcat (← there's a link hidden in the code) :-) – koiyu Apr 6 '11 at 9:34
@koiyu Looks good... I didn't know all this Mac things. This one sounds reassuring :) – Rob Apr 6 '11 at 11:05
That's perfect... If you create an answer, I'm gonna accept it! Thanks Harv as well. – Rob Apr 6 '11 at 11:15
@Rob: @mspasov's recent answer is more thorough than mine could be, so it deserves to be accepted. – koiyu Apr 6 '11 at 11:42

If you install Nmap (debianports) you will also get ncat. ncat is basically an advanced version of nc with the options like: -e, --ssl, --broker, --chat, ...

share|improve this answer
interesting... Thanks for the tip! – Rob May 18 '11 at 22:27

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.