Is anybody else not able to get nc -lp 8888 working on Mac OS X? Is there another way to get this to work?
Asked
Active
Viewed 2e+01k times
52
-
How does it not work? Does it return an error? – heavyd Mar 03 '10 at 01:58
-
I am not near a mac right now, but it returns the useage. `nc -lp 8888` works on my Ubuntu box. – kzh Mar 03 '10 at 15:50
-
Had never heard of this until reading a book on Docker. They also mention something called socat, which is supposedly this command on steriods. More info here https://stackoverflow.com/questions/16808543/install-socat-on-mac and here https://linux.die.net/man/1/socat and here https://www.youtube.com/watch?v=ZnwZA1GRqkw – JGFMK Sep 26 '19 at 08:57
4 Answers
61
It looks to me as if the -p option does nothing on the OS X version of netcat. To get it to work, I must do nc -l localhost 8888.
kzh
- 4,243
- 7
- 28
- 33
-
9
-
4From `man nc`: `-l ... It is an error to use this option in conjunction with the -p, -s, or -z options. ...` You probably want to just stick with @kzh's command there – fatuhoku Oct 11 '13 at 18:41
-
@fatuhoku I just checked my manual, and yest it does say that in there, but the weird thing is that if I do `nc -lp 8888` or `nc -l -p 8888` it will then take `-p` to mean listening port. So my distributed copy does not listen to its own manual! – kzh Oct 11 '13 at 20:31
-
Agreed! Flags are a bit too expressive... it should have just refused to do any useful work, output a message and quit! – fatuhoku Oct 11 '13 at 21:02
-
1
-
No matter the man page said that it is an error to use **-p** option in conjunction with the **-l** option. Actually, only **nc -l -p 8081** work in my mbp. That's crazy. :( – andy Mar 01 '16 at 03:09
-
Confirming that this works for me: `nc -lvn 8080` vs. the recommended `nc -lvnp 8080`. `p` and `l` do not work when used together on the Mac OS version. – james-see Oct 22 '21 at 16:23
-
24
Here's how this is working for me on OS X 10.10, with either the installed BSD version, or the one from Homebrew:
BSD Version
When using the BSD version that ships with OS X, a server can be started like this
/usr/bin/nc -l 9999
Homebrew
- Install using Homebrew:
brew install netcat - This will install v0.7.1 of http://netcat.sourceforge.net/
- One can use either the
ncornetcatcommand.ncis an alias fornetcat.
To start a server:
nc -l -p 9999
To start a client:
nc targethost 9999
To get the manpage of this version, one needs to use man netcat, as man nc will open the manpage of the BSD version.
nwinkler
- 345
- 2
- 9
12
I needed to test a web service over SSL, which ncat (made by the nmap team) supports.
brew install nmap
ncat -C --ssl api.somecompany.com 443
Colin
- 446
- 5
- 8
10
nc on MacOS has too many bugs, and Apple did none patch for years. the netcat from homebrew is a very low version. use ncat from nmap instead
J.Z
- 211
- 2
- 2
-
2+1, as of today, `netcat --version` is `0.7.1` (2003) for `brew install`ed `netcat`. Terrible. – ijoseph Oct 20 '20 at 22:29
-
Get the `nmap` version [here (link)](https://nmap.org/book/inst-macosx.html) – ijoseph Oct 20 '20 at 22:30
-
"`nc` on MacOS has too many bugs" -> I can only confirm this. Fiddling around with it today and facing some inconsistent behaviours. I believe [this version of nc from 2005](https://opensource.apple.com/source/netcat/netcat-49.40.1/netcat.c.auto.html) is the one that they're still using. Ended up using [socat](http://www.dest-unreach.org/socat/) instead: `brew install socat`. – Glenn Mohammad Apr 30 '22 at 21:10