阿里云可以干啥
上篇帖子有人问不知道买来阿里云可以干啥,突然发现可以通过阿里云部署远程桌面代理。 通过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吧,然后输入用户名和密码就可以连接到家中的电脑了。