Node.js-将所有流量从端口A转发到端口B

我正在尝试将所有流量从端口6999转发到端口7000(我知道我可以使用iptables,但想法是使用Node.js进行某些数据包检查)。

这是我有沙发的代码:

var net=require('net');

var compress=require('./node-compress/compress');

var ip='172.16.1.224';

var ipPort=6999;

var opPort=7000;

var output=net.createServer(function(connOut){

var input=net.createServer(function(connIn){

connIn.pipe(connOut);

});

input.listen(ipPort,ip);

});

output.listen(opPort,ip);

它似乎似乎不起作用。当我在端口7000上执行tcpdump时,什么都没有显示。有人有什么建议吗?

提前谢谢了,

回答:

这是我的努力:

支持从命令行提供“从”和“到”,并支持远程计算机。

var net = require('net');

// parse "80" and "localhost:80" or even "42mEANINg-life.com:80"

var addrRegex = /^(([a-zA-Z\-\.0-9]+):)?(\d+)$/;

var addr = {

from: addrRegex.exec(process.argv[2]),

to: addrRegex.exec(process.argv[3])

};

if (!addr.from || !addr.to) {

console.log('Usage: <from> <to>');

return;

}

net.createServer(function(from) {

var to = net.createConnection({

host: addr.to[2],

port: addr.to[3]

});

from.pipe(to);

to.pipe(from);

}).listen(addr.from[3], addr.from[2]);

(另存为proxy.js)

从localhost:9001转发=> localhost:80

$ node proxy.js 9001 80

或localhost:9001 => otherhost:80

$ node proxy.js 9001 otherhost:80

(这是基于安德烈的回答,谢谢!)

以上是 Node.js-将所有流量从端口A转发到端口B 的全部内容, 来源链接: utcz.com/qa/405694.html

回到顶部