使用免费阿里云服务器搭建远程桌面服务

本文分享如何利用免费的阿里云服务器,借助FRP工具搭建远程桌面服务,实现内网穿透。详细介绍了FRP的下载、配置和服务端及客户端的设置过程,以及连接步骤和云服务器推荐。
部署运行你感兴趣的模型镜像

使用免费阿里云服务器搭建远程桌面服务

首发于个人博客

背景

RDP,Remote Desktop Protocol是微软推动开发的远程桌面协议,它本身也会默认内置在win10专业版或者以上版本中,使用TCP和UDP协议,监听端口默认3389。

但是问题是只能在局域网内或者公司企业的内网中使用。当我们无法访问到内网时,就不能连接公司的电脑进行远程操作。怎么解决这个问题呢,当然如果公司有VPN的话,可以直接连接VPN,进行远程连接。如果没有VPN,我们就需要使用点手段了。

目前市面上免费的远程服务主要是Teamviewer,网速也还可以,但是有连接设备数的限制,对于那些频繁需要远程和在多个设备上连接远程服务的人来说,就不够用了。那么有什么办法可以解决这个问题吗?

没错,我们可以自己搭建一个远程桌面服务(或者叫远程桌面的中转服务)。当然前提条件是有一台公网IP的机器(C)(可以选择阿里云和腾讯云等厂商,见文末推荐)。假设笔记本电脑(A)要远程连接公司的电脑(B),因为B在内网,A在公网无法直接访问。那么我们可以这样,B向C、A向C分别主动建立一条双向通道连接(TCP)。

当我们需要远程时,流程大概如下所示:

  1. A将远程连接请求发到C;
  2. C收到请求后将此请求转发给B;
  3. B收到请求后,通过BC通道向C发送用户认证请求;
  4. C收到请求后,将认证请求再转发给A;
  5. A收到认证请求后,由A机器的RDP协议处理请求(显示输入用户名和密码弹窗);
  6. A填完用户信息后,发送给C,C再将其转发给B;
  7. B验证用户信息正确,将电脑实时信息发送给C,C将其转发给A;
  8. A收到B的实时信息后,由A的RDP协议处理(页面上打开远程窗口,显示B的电脑远程窗口)
  9. 随后A将操作命令(点击,键盘输入等)通过C发送给B;B再将响应信息通过C发送A;

很合理,但是连接通道谁来建立呀,这里就要提到FRP工具啦。

FRP

FRP是一款开源的内网暴露,内网穿透工具。分为服务端和客户端。

再回到上文的方案中,C扮演的角色就是服务端,用于接受A和B机器的连接,那么C机器上运行的就是FRP的服务端。A和B上运行的就是客户端。

首先我们来下载,先去FRP的Releases页面,下载对应的包就行了。

windows系统,使用intel或者amd的cpu,根据32位和64位分别下载frp_0.35.1_windows_386.zip和frp_0.35.1_windows_amd64.zip。linux上也同理。如果访问不了github,也可以直接在文末的下载链接中下载。

我们先下载服务端的包frp_0.35.1_linux_amd64.tar.gz,可以直接执行命令 wget下载链接 下载,如:

wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz

下载后,解压:

tar -zxvf frp_0.35.1_linux_amd64.tar.gz

之后,进入到解压的文件夹,文件树如下:

├── frpc
├── frpc_full.ini
├── frpc.ini
├── frps
├── frps_full.ini
├── frps.ini

其中frpc(client)是客户端的可执行程序,frps(server)是服务端的可以执行程序。接着编辑frps.ini文件,将内容改为:

[common]
bind_port = 7000

这样FRP服务端就运行在了C机器上,监听7000端口,运行成功会输出以下日志:

2021/02/05 18:48:45 [I] [root.go:108] frps uses config file: ./frps.ini
2021/02/05 18:48:45 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/02/05 18:48:45 [I] [root.go:217] frps started successfully

另外需要配置好网关规则,允许端口7000和3389的TCP和UDP流量进出。

接着我们分别将frp_0.35.1_windows_amd64.zip下载到电脑A。解压后,编辑frpc.ini,将内容改为:

[common]
server_addr = C机器的公网IP地址或者域名
server_port = 7000
auto_token=mstsc

[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389   
remote_port = 3389  # B机器连接C机器的端口,这里使用默认

之后,打开powershell或者cmd,进入到此文件夹,执行命令:

.\frpc.exe -c .\frpc.ini

运行后,会输出日志:

2021/02/05 18:59:04 [I] [service.go:290] [1f8d33888eb10657] login to server success, get run id [1f8d33888eb10657], server udp port [0]
2021/02/05 18:59:04 [I] [proxy_manager.go:144] [1f8d33888eb10657] proxy added: [mstsc]
2021/02/05 18:59:04 [I] [control.go:180] [1f8d33888eb10657] [mstsc] start proxy success

C机器输出日志,表示连接成功:

[control.go:446] [a091bfe7d86960ee] new proxy [mstsc] success

同时C机器FRP服务端会根据客户端的remote_port开启监听:

netstat -ano|grep 3389
tcp6       0      0 :::3389                 :::*                    LISTEN      off (0.00/0/0)

连接

上述步骤连接完成后,就可以进行连接了。手机端可以应用市场搜索微软的官方APP RD Client,电脑上可以直接使用远程桌面连接,输入C机器的公网IP或者域名就可以了。

云服务器推荐

笔者使用的是阿里云免费试用活动中的1核2G机器,5m带宽,一个月试用时间,春节回家是够用了。5m带宽基本上700KB/s的网速够用了,实测比Teamviewer速度稍快,写代码刷网页很流畅。

如果不差钱,也可以购买阿里云最新活动中的的2核2G机器,5m带宽,99元/年。

下载链接

  1. frp_0.35.1_windows_amd64.zip

    链接: https://pan.baidu.com/s/1fLRWoQs4Kta-rQoAnreXEg 提取码: zztw

  2. frp_0.35.1_linux_amd64.tar.gz

    链接: https://pan.baidu.com/s/1MONsWoHfy8EXalJTN26lqA 提取码: 9cuu

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### 如何在云服务器搭建和配置远程桌面连接 #### 使用 VNC 实现远程桌面连接 对于希望利用图形界面来管理和操作云服务器的用户来说,VNC 是一种较为常见的解决方案。为了建立基于 VNC 的远程桌面环境,需先访问 VNC 官方网站并下载适用于客户端设备的操作系统的 VNC Viewer 软件[^1]。 接着,在目标云服务器操作系统中部署相应的 VNC Server 组件。以 Ubuntu 为例,按照特定指南完成 VNC Server 的安装过程之后,便可以启动服务端程序,并通过网络地址以及设定好的认证信息从本地计算机上的 VNC Viewer 登录到远端机器执行各种任务[^3]。 #### 利用 FRP 和阿里云 ECS 实现实时安全接入 另一种方法涉及到了更复杂的场景——当内部网络中的主机想要被外部互联网所触及之时。此时可借助于 FRP (Fast Reverse Proxy),这是一种用于内网穿透的应用层代理工具。配合阿里云提供的弹性计算服务(Elastic Compute Service, ECS),能够轻松达成此目的。具体而言: - 用户登录至阿里云官方平台,进入 ECS 控制面板; - 找到对应的实例条目,激活其公网 IP 地址分配功能; - 同样在此处开启必要的防火墙规则允许指定端口的数据传输; - 下载并配置好 frp 及其服务端部分至云端虚拟机之中; - 将客户端组件安置在家里的电脑上面,从而建立起一条稳定的隧道链接路径[^2]。 #### RustDesk 自建远程桌面方案 除了上述两种方式外,还有开源项目如 RustDesk 提供了一套轻量级且易于部署的自托管型远程协助框架。它支持多种架构下的 Linux 发行版本运行,并提供了详细的文档指导整个构建流程。只需简单几步就能让个人或小型团队快速拥有属于自己可控的安全通道来进行跨地域协作交流[^4]。 ```bash wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip unzip rustdesk-server-linux-amd64.zip -d /opt/ cd /opt/rustdesk-server/ ./rustdesk-headless -s ./service & ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值