上周末整理电脑的数据,发现了一段早前用Python编写的端口转发服务,那时候是学习socket编写的。以前写的代码写的真的是...
于是打算用NodeJs重新编写。编写端口转发服务也是挺简单的,原理就是开个监听服务,服务接受到数据的时候,创建一个客户端,通过客户端转发到被代理的服务上,客户端接受到响应的时候再将数据返回给监听服务进行发送。
编写TCP端口代理
var net = require('net');
//获取本地时间字符串
function getDateStr() {
return (new Date()).toLocaleString();
}
// 创建TCP代理
function proxyTCP(key, conf) {
let [bind, server] = [conf.bind, conf.server];
let tcpServer = net.createServer((c) => {
console.info(`[${getDateStr()}] [${key}] [INFO] - TCP Client connect ${c.remoteAddress}:${c.remotePort}`);
let client = net.connect({ port: server[1], host: server[0] }, () => {
c.pipe(client);
});
client.pipe(c);
client.on('error', (err) => {