Simple Socket Server in Bash? Simple Socket Server in Bash? linux linux

Simple Socket Server in Bash?


$ nc -k -l 4444 > filename.out

see nc(1)


Just because you asked how to do it in bash, though netcat answer is very valid:

  $ exec 3<>/dev/tcp/127.0.0.1/4444  $ cat <&3


That is working as you expecting:

 nc -k -l 4444 |bash

and then you

echo "ls" >/dev/tcp/127.0.0.1/4444

then you see the listing performed by bash.

[A Brief Security Warning]
Of course if you leave a thing like this running on your computer, you have a wide open gateway for all kinds of attacks because commands can be sent from any user account on any host in your network. This implements no security (authentication, identification) whatsoever and sends all transmitted commands unencrypted over the network, so it can very easily be abused.