阿里云可以干啥 - CNode技术社区

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

上篇帖子有人问不知道买来阿里云可以干啥,突然发现可以通过阿里云部署远程桌面代理。 通过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 都会报错。

回到顶部

AltStyle によって変換されたページ (->オリジナル) /