用nodeJS打孔?

时间:2016-03-24 17:02:54

标签: node.js tcp

假设您有网络A,它允许连接到网络B但不能反向连接。是否可以建立从A到B的连接,以便在B中运行的代理现在可以监听并将B内的连接提供给A?

示例:网络A中端口8080上的HTTP Server A1是"不可见"但是,网络A中的特殊客户端PA连接到网络B中的代理PB并保持连接打开,以便代理PB现在可以在端口8080上侦听并将请求转发到原始HTTP服务器A1。

理想情况下,2个nodeJS脚本可以实现功能PA和PB。

1 个答案:

答案 0 :(得分:0)

不确定。使用http-proxy模块:

var http = require('http'),
    httpProxy = require('http-proxy');
//
// Create your proxy server and set the target in the options.
//
httpProxy.createProxyServer({target:'http://PB:8080'}).listen(8080); // See (†)

//
// Create your target server
//
http.createServer(function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.write('why hello there PA' + '\n' + JSON.stringify(req.headers, true, 2));
  res.end();
}).listen(8080);

https://github.com/nodejitsu/node-http-proxy#setup-a-basic-stand-alone-proxy-server

从那里开始,这是一个“代理开始”的问题,以获得你想要的结果(我有点困难时间跟踪它)。