nodejs简单实现端口映射(隧道)
来个万能的javascript代码,实现端口映射。前端electron桌面软件也可以用到。
【port.js】
var net = require('net');
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);
from.on('end', function() {
console.log('客户端关闭连接');
});
from.on('data', function() {
console.log("11");
});
from.on('error', function() {
console.log("error");
});
}).listen(addr.from[3], addr.from[2]).on('error', function() {
console.log("error");
});node port.js 1234 外网ip:80
node port.js 1234 内网ip:80
其实前面介绍过一个远程管理工具的开发,为什么没有放出代码呢?你看我先前发布的内容,图片打码了,因为暴露了我的服务器信息,那个版本内部用还行,给别人用还要做很多工作保护自己的服务器。这里的端口映射再优化一下或许可以用在我的远程工具上。远程的时候先连一个暴露的自己本机的端口,这个端口在隧道到服务器。

