node.js实现端口转发

本文为大家分享的是node.js端口转发实现代码,供大家参考,具体内容如下

#!/sbin/node

var net = require('net');

function proxyPort(srcport,destServer,destport)
{
  var server = net.createServer(function(c) { //'connection' listener

    c.on('end', function() {
        console.log('src disconnected');
    });

    var client = net.connect({port: destport,host:destServer},function() { //'connect' listener
         console.log('ok....');
         c.on('data', function(data) {
             console.log(data.length);
           client.write(data);
         });
    });

    client.on('error', function(err) {
     console.log("dest=" + err);
     c.destroy();
    });

    c.on('error', function(err) {
     console.log("src" + err);
     client.destroy();
    });

    client.on('data', function(data) {
     c.write(data);
    });

    client.on('end', function() {
     console.log('dest disconnected ');
    });

  });
  server.listen(srcport, function() { //'listening' listener
   console.log('server bound' + srcport);
  });
}

var params = process.argv;
if(params.length != 5){
 console.log("node port.js srcport destserver destport ");
 return;
}

proxyPort(params[2],params[3],params[4]);

console.log(process.argv);

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)

    在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式.即使用广播和扫描,使用广播发出的消息有时会被路由器屏蔽,所以并不可靠. 使用node.js中的net模块,可以直接尝试向目录主机的某个端口进行连接,如果能建立连接,则说明该地址存在服务器. var socket = new Socket() socket.connect(port, host) socket.on('connect', function() { //找到port 和 host 地址 }) 所以只要进行2

  • Node.js检测端口(port)是否被占用的简单示例

    前言 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等.二是逻辑意义上的端口,一般是指TCP/IP协议中的 端口,端口号的范围从0到65535,比如用于浏览网页服务.这篇文章的目的是为了解决ssr工具起多个服务的时候端口被占用的情况,下面跟大家分享研究的代码片段,有需要的可以参考借鉴. 示例代码 // 检测port是否被占用 function probe(port, c

  • shell脚本转发80端口数据包给Node.js服务器

    注意:千万不要图省事直接使用ROOT用户运行Node.js服务!这将带来无法预计的安全问题!但是使用80端口作为HTTP默认端口这一习惯是从MS时代就延续至今的,怎么办呢?网上有人滔滔不绝地说用NginX做反向代理之类的,其实我觉得没必要这么夸张,只需要使用ROOT用户做一个普通端口与80端口的数据转发就好了,使用iptables语句如下: 复制代码 代码如下: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-po

  • node.js实现端口转发

    本文为大家分享的是node.js端口转发实现代码,供大家参考,具体内容如下 #!/sbin/node var net = require('net'); function proxyPort(srcport,destServer,destport) { var server = net.createServer(function(c) { //'connection' listener c.on('end', function() { console.log('src disconnected'

  • 利用Node.js检测端口是否被占用的方法

    前言 在学习tcp/ip的时候,经常遇到一些关于跟端口有关的东西,在写网络上的一些东西,有时用的一些端口被提示:端口已被占用,啊啊啊,挺郁闷的,然后就想着将它搞明白,下面话不多说了,来一起看看详细的介绍吧. Nodejs检测端口是否被占用 开启本地服务时,有这么一种情况:当前端口已经被另一个项目使用了,导致服务开启失败. 那么接下来,我们通过简简单单的十行代码来检测端口是否已经被占用. 思路 想要知道端口是否被占用,我们可以开启一个新的服务并监听该端口,若开启成功则说明端口未被占用,反之该端口已

  • Node.Js中实现端口重用原理详解

    本文介绍了Node.Js中实现端口重用原理详解,分享给大家,具体如下: 起源,从官方实例中看多进程共用端口 const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); for (let i =

  • Windows系统下Node.js的简单入门教程

    随着近日Paypal和Netflix宣告 迁移到Node.js, 服务器端Javascript平台已经证明其自身在企业领域的价值. 这对于Node来说是一小步,对于Javascript而言却是一大跨越啊! 来自.NET, Java, PHP, Ruby on Rails和更多技术领域的程序员, 所有游走于服务器端的编码者都会聚集到这个平台上. 作为像 Yahoo, Walmart, 和 Oracle 这样的大玩家入局,, Node 正在甩掉其一直就存在的不成熟和不稳定的坏名声. 在这篇文章中,我

  • Node做中转服务器转发接口

    由于项目在做前后端分离,牵扯跨域和夸协议问题,临时抱佛脚,选择用nodejs做中转,我想应该好多人都用它.但是做普通的表单转发没啥问题,当处理附件上传转发时,各种蛋疼,已解决! 1.项目比较特殊,后台拥有两个平台,一个java一个donet,比较鸡肋,具体什么原因就不解释了. 2.当做node转发时,刚开始没有转发文件的操作,就做的很简单,用户传过来啥就,拦截到,进行转发,一切都很ok! 3.文件转发,就很麻烦.我的思路,将用户上传的文件存到node服务器.使用formidable  . 通过n

  • Node.js websocket使用socket.io库实现实时聊天室

    认识websocket WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duple).一开始的握手需要借助HTTP请求完成. 其实websocket 并不是很依赖Http协议,它也拥有自己的一套协议机制,但在这里我们需要利用的socket.io 需要依赖到http . 之前用java jsp写过一个聊天,其实实现逻辑并不难,只是大部分时间都用在UI的设计上,其实现原理就是一个基于websocket的通信,要想做一个好的聊天室,我觉得大部

  • 基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践

    淘宝网线上应用的传统软件栈结构为 Nginx + Velocity + Java,即: 在这个体系中,Nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页面. 引入 Node.js 之后,我们势必要面临以下几个问题: 技术栈的拓扑结构该如何设计,部署方式该如何选择,才算是科学合理?项目完成后,该如何切分流量,对运维来说才算是方便快捷?遇到线上的问题,如何最快地解除险情,避免更大的损失?如何确保应用的健康情况,在负载均衡调度的层面加以管理?承系

随机推荐