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

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

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

相关文章

打造一款内网穿透的远程管理软件

打造一款内网穿透的远程管理软件

teamviwer收费了,在一些企业的操作系统上会过几分钟自动断开,于是要打造一款公司内部用的远程管理系统。思路:1、找到几款免费的支持命令行的远程工具。如:winvnc2、找到支持命令行的内网穿透工...

如何用h5+javascript技能简单的做一款桌面软件

如何用h5+javascript技能简单的做一款桌面软件

javascript现在是万能语言,移动+pc;前端+后端。今天给大家简单介绍一下,如何快速的做一款桌面软件,而且有一种高大上的感觉。1、先做个h5网站,做成软件的样子2、创建electron项目,把...