阿里云可以干啥
发布于 6 年前 作者 lovegnep 3416 次浏览 来自 分享

上篇帖子有人问不知道买来阿里云可以干啥,突然发现可以通过阿里云部署远程桌面代理。 通过node来部署,代码不超过100行,估计花生壳的原理和这类似吧。

需求:

在外网远程桌面到家里的个人电脑

一般情况下家里的电脑是没有公网IP的,所以远程桌面往往需要借助于teamviewer或者向日葵等软件。这篇文章教你用100行代码实现远程桌面到家里的电脑。 亲测有效

1. server.js 将该程序部署到阿里云

  const net = require('net');
  
  let target = null;
  let client = null;
  let server = net.createServer(function(socket){
	  if(!target){
		  target = socket;
		  console.log('target ready.');
	  }else{
		  client = socket;
		  console.log('client connectd to target success.');
		  client.on('data',function(data){target.write(data);});
		  target.on('data',function(data){client.write(data);});
	  }
	  socket.on('error',function(err){
		 console.log('err happen:',err,socket);
	  });
	  socket.on('close',function(){console.log('connect close.');});
  
  });
  server.listen({port:12388},function(){
		  var address=server.address();
		  console.log(" opened server on address %j ",address);
  })

2. client.js 将该程序部署到你需要连接的家中的电脑 39.108.22.116为你的阿里云的公网IP

  const net = require('net');
  let flag1 = 0, flag2 = 0;
  let target = new net.Socket();
  target.connect({host:'localhost',port:3389},function(){
	  console.log('connect localhot:3389 success.');
	  flag1 = 1;
  });
  let server = new net.Socket();
  server.connect({host:'39.108.22.116',port:12388},function(){
	  console.log('connect 39.108.22.116:12388 success.');
	  flag2 = 1;
  });
  function conn(){
	  server.on('data',function(data){target.write(data);});
	  target.on('data',function(data){server.write(data);});
  }
  setTimeout(conn,10000);

3. 好了万事俱备。 在第3台电脑上打开远程桌面连接直接输入39.108.22.116:12388吧,然后输入用户名和密码就可以连接到家中的电脑了。

6 回复

收下了!!!稍后试试

[CNodeMD]

@dbit-xia 亲测有效。我之前是用花生壳做代理,后来发现花生壳代理数量有限,就自己用node来写了

来自酷炫的 CNodeMD

@lovegnep 测试可以到登录界面, 输入用户名密码就一直等待了~~~ client会抛异常 ECONNRESET , server也有异常抛出 看起来应该是可行的

@dbit-xia 嗯,代码很不完善,有空改改

来自酷炫的 CNodeMD

貌似不行哦,一直会报错。我的node版本 v11.1.0和v8.11.0 都会报错。

回到顶部