socket.once('data', chunk => { console.log('SSH server version: %j', chunk.trim()); socket.pipe(socket) socket.end() })
net.connect(port, hostname, function () { socket.write('HTTP/1.1 200 Connection Established\r\n\r\n'); proxySocket.write(head); proxySocket.pipe(socket); }).on('error', function (e) { log.error('proxy error', e.message); log.detail('proxy error', e.stack); socket.end(); }).on('data', function (data) { // console.log('proxy socker data:', hostname, port, data.toString()); // socket.write(data); })
net.createServer(socket => { socket.write('hello world!\r\n') console.log('socket connected'); socket.on('data', data => { console.log('"data" event', data); }) socket.on('close', () => { console.log('"close" event'); }) socket.on('error', err => { console.log('"error" event', err); }) socket.pipe(socket) }).listen(1337)
net.connect({ host: host, port: port}, () => { log('connected to', host, 'on port', port); process.stdin.on('data', (data) => { var line = data.toString('utf8'); line = line.slice(0, line.length-1) + '\r\n'; socket.write(line); }); socket.pipe(process.stdout); })
// https的请求通过http隧道方式转发 httpTunnel.on('connect', (req, cltSocket, head) => { // connect to an origin server var srvUrl = url.parse(`http://${req.url}`); console.log(`CONNECT ${srvUrl.hostname}:${srvUrl.port}`); var srvSocket = net.connect(srvUrl.port, srvUrl.hostname, () => { cltSocket.write('HTTP/1.1 200 Connection Established\r\n' + 'Proxy-agent: MITM-proxy\r\n' + '\r\n'); srvSocket.write(head); srvSocket.pipe(cltSocket); cltSocket.pipe(srvSocket); }); srvSocket.on('error', (e) => { console.error(e); }); });
net.createServer(function(socket){ socket.write('Server is opening'); socket.pipe(socket); })
function setupTunnel(localAddress, req, client, head) { var reqUri = url.parse(req.url.indexOf('://') !== -1 ? req.url : 'http://' + req.url); var server = net.connect({ host: reqUri.hostname, port: reqUri.port, localAddress: localAddress }, function() { client.write( 'HTTP/1.1 200 Connection Established\r\n' + 'Proxy-agent: Node.js-Proxy\r\n' + '\r\n' ); server.write(head); server.pipe(client); client.pipe(server); }); }
net.createServer(function(connection) { console.log('client connected'); connection.on('end', function() { console.log('客户端关闭连接'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); })
net.createServer(function (socket) { socket.write('Echo server\r\n'); socket.pipe(socket); })