Netcat "Connection refused" on localhost
Well, it was a permission problem after all... fixed editing /etc/sudoers with visudo to add:
www-data ALL = NOPASSWD: /bin/nc
Related videos on Youtube
coma
I love jQuery but... STOP USING IT FOR EVERYTHING. Every time you solve something using jQuery instead of thinking a little bit and use CSS to archive the same result a kitten dies. (STOP USING BOOTSTRAP TOO). https://github.com/coma https://www.linkedin.com/profile/view?id=152342859 http://jsfiddle.net/user/coma/fiddles/ https://coderwall.com/coma http://www.fictizia.com/formacion/curso_angularjs
Updated on September 17, 2022Comments
-
coma over 1 year
I am trying to get a value from a
netcat
connection started at a php file, but it dies with:localhost [127.0.0.1] 2000 (?) : Connection refused
I don't know why, but it works well if I ssh it as apache user (www-data). This is what I've done:
-
Start an endless loop serving a date with a little delay:
$ (while true; do nc -l -p 2000 -c "sleep 5; date"; done)&
-
Check if is working:
$ su www-data $ nc localhost 2000 Fri Oct 16 21:33:20 COT 2009
-
Create /var/www/test.php as follows:
<?php exec('nc localhost 2000>>/var/www/dates.txt 2>>/var/www/errors.txt &'); ?>
-
Run it on a browser:
http://myserver.com/test.php
Finally take a look at both txt's, dates is empty (nothing like the response in #2) and errors has the "Connection refused" error.
The server is a LAMP cluster running Ubuntu Server 9.04 with DRBD and Heartbeat.
What is driving me crazy is that this test.php works well in my laptop (LAMP on Ubuntu Desktop 9.04) and the server seems to have the ports already open and listening:
$ netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:4743 0.0.0.0:* LISTEN 2326/openhpid tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3364/mysqld tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 9510/nc tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3470/apache2 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2320/sshd tcp 0 0 127.0.0.1:3551 0.0.0.0:* LISTEN 2354/apcupsd tcp6 0 0 :::22 :::* LISTEN 2320/sshd
This is what I really want to archive: diagram (I don't have enogh points to insert images yet, lol)
- send the weight value from the truck scale to the server when the server requests it
- send raw text (epson escaped text format) to the printer's serial port
So in the client pc are constantly running two listening
netcat
connections, one for getting the weight and the other to print raw text.-
Istvan over 14 yearsWhat happens if you are using the 127.0.0.1 as an ip instead of the localhost?
-
coma over 14 yearsit's not about the ip address, even a foreign ip give me the same problem.
-
Admin almost 2 yearsRelated: my Q&A on Unix & Linux Stack Exchange: "Connection refused" when I try to send a UDP packet with netcat on an embedded-linux board
-
-
coma over 14 yearsthe local interface is up, in fact, "nc localhost 2000" and "nc 127.0.0.1" work in the console but they give me the error when runned in a php file with "exec" or "shell_exec".
-
coma over 14 yearsI'm going to give it the space between them but that works fine in the console, the problem is making that work from a php. If you know a better way to archive this please tell me!!!
-
Dan Carley over 14 yearsCould you explain the purpose of what you're doing?
-
coma over 14 yearsOf course!, let me edit the question to clarify the purpose of this.
-
Bort over 11 yearsThis is horribly insecure. You just allowed anyone who breaks into your web application to listen on any port and worse yet run any application AS ROOT.
-
coma over 11 yearsWell, this was for an intranet app (in the middle of the colombian jungle btw, running by ethernet cables between only two pc's without internet) that we drop about one year ago, in fact this is from 2009 and we are in 2013, so thanks for the downvote dude.
-
Bort over 11 yearsNone of that was in the question. The rest of the users reading this might try the same tactic and fall victim because they aren't in the middle of a jungle.