nodejs简单实现端口映射(隧道)

野生程序猿-杂烧4年前随意分享972

来个万能的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

其实前面介绍过一个远程管理工具的开发,为什么没有放出代码呢?你看我先前发布的内容,图片打码了,因为暴露了我的服务器信息,那个版本内部用还行,给别人用还要做很多工作保护自己的服务器。这里的端口映射再优化一下或许可以用在我的远程工具上。远程的时候先连一个暴露的自己本机的端口,这个端口在隧道到服务器。

4.png

相关文章

nodejs+canvas 后端脚本生成游戏五维图

nodejs+canvas 后端脚本生成游戏五维图

我们有部分教学类的软件,设计成简单的游戏形式。我们从完成度、技能值、互动性、熟练度、积极性5个纬度打分,每个纬度的打分是1-5,都是整数。    ...

nodejs裁剪图片

nodejs裁剪图片

这是个真实的案例,下面脚本是真实跑通的,走过了一些坑,这里来给大家分享一下 首先描述一下场景,我们是做教学软件的,这个是开发一个X光机安检教学场景,有...

nodejs同步mysql操作类

nodejs越来越火了,打算稍微在深入学习一下,于是把php的mysql操作类库稍微改了一下,为了保留php思路,这里加入了同步的方法。简单测了一下,本地 没有问题,不知道同步在多人访问时候是否有坑,...

初学nodejs+express,打造cms系统(4)

前面已经改造了基础模块,下面到了页面制作环节。先前的脚手架已经支持ejs了,在views文件夹里出现了测试ejs,下面基本上是锻炼自己仿写能力了。【routes/api.js】var exp...

强迫症犯了_重命名

文件夹里的文件命名是这样的,1.mp4,2.mp4,...,999.mp4 看着不舒服,我喜欢 001.mp4,002.mp4,003.mp4。很多播放软件 1后面是11、12排序的。于是通过node...

nodejs对memcache进行备份与恢复

memcache是个古老的高速缓存工具,前辈们古老的程序还用着。但是市场上没有完美的备份恢复工具,老板让我开发一个。这需求让我两眼一抹黑,完全不知所措。先模拟一下思路,可以telenet到端口上,然后...