Node 实现的 TCP 端口转发小脚本

const net = require('net');


const ports=[{
    lp: 80,
    rh: "hzy.pw",
    rp: 80
}, {
    lp: 443,
    rh: "note.hzy.pw",
    rp: 443
}];



for(let item of ports) {
    let locale_port = item.lp,
        remote_host = item.rh,
        remote_port = item.rp;

    let lServer = net.createServer(function(lCon){
        let rCon = net.createConnection({
            host: remote_host,
            port: remote_port
        });

        lCon.on('error', function(err){
            rCon.end();
            lCon.end();
            console.error('lCon Error: '+err);
        });

        rCon.on('error', function(err){
            rCon.end();
            lCon.end();
            console.error('rCon Error: '+err);
        });

        lCon.pipe(rCon);
        rCon.pipe(lCon);
    });

    lServer.on('error', function(err){
        console.error('lServer Error: '+err);
    });

    lServer.listen(locale_port);
    console.log(`:${locale_port} -> ${remote_host}:${remote_port}`);
}

TODO:
– 增加 UDP 转发支持。

发布者

胡中元

《中原驿站》站长

发表评论

电子邮件地址不会被公开。