阿里云ECS+frpc/frps+RDP_CnC 实现内网穿透远程桌面,无公网家庭版Win10台式机变身远程工作站

简介: 本文是实操笔记,记录了通过自建内网穿透和解锁 Windows 10 Home 的远程桌面功能,将没有公网 IP 的家用台式机配置成远程工作站的大致过程。在此过程中我练习了简单的 Linux 系统操作,了解了一些实用的服务器工具软件(如文中提到的 frpc/frps 套件与 Windows 系统上的 WinSW 服务封装工具)。

阿里云ECS+frpc/frps+RDP_CnC 实现内网穿透远程桌面,无公网家庭版Win10台式机变身远程工作站

起因

我有一台性能比较好的台式电脑。除了打游戏以外,我平时的一些不复杂的科学计算(MATLAB)和仿真(主要是 Keysight ADS)也会使用它。
但是在教室上课或者其他不在宿舍的场景下,我只能依靠笔记本电脑来使用上述软件,
一是笔记本本身性能有限,计算速度慢;
二是哪怕速度已经不快的情况下,笔记本还必须是插电使用,
否则要么很快耗尽电池电量,要么在省电模式下进一步降低计算速度,总之就是很不方便。
我希望能够在不在宿舍的时候也能使用台式电脑的算力。

遭遇的技术困难

  • 我的宿舍网络是运营商拉的家用宽带,营业厅说什么也不给公网 IP。
  • 我的台式机操作系统是购买时预装的 Windows 10 家庭中文版,重装专业版系统意味着我需要重装许多的软件,折腾且花时间。

采取的方案

用内网穿透解决远程访问的网络问题,用 RDP_CnC 工具解决家庭中文版系统没有远程桌面功能的问题。

实操

配置远程桌面

我在 GitHub 上找到了这个开源项目 https://github.com/sebaxakerhtc/rdpwrap
从 Releases 下载即可,名字中带有 Black 的安装包会安装暗色主题 UI 的相同程序,
可以说对我这种喜爱暗色护眼主题的用户是非常贴心了。
它的功能非常暴力,就是直接在 Windows 系统上安装 rdpwrap.dll 及其相关的组件,然后拉取一个依据操作系统的不同小版本专门编写的 INI 配置文件,然后神奇地解锁远程桌面功能。
同时它还提供测试功能,你可以从它的 GUI 上看到自己的系统当前的远程桌面服务开启状态、远程桌面是否可用等信息,非常方便。
缺点就是你要和你的 Windows Defender 好好谈谈。

配置 frp 套件

frpc/frps 是一个套件,来自这个 GitHub 项目 https://github.com/fatedier/frp
是个国货,有空还是要多支持一下。
它包含两部分,一部分是服务端 frps,它需要被配置在具有公网 IP 的设备上,为内网穿透提供中转服务;
另一部分是客户端 frpc,它需要被配置在需要内网穿透的设备上,与 frps 配合实现内网穿透。

配置 SSH

第一步当然是启动 ECS,进入 VNC 远程终端。为了后续操作省事,我先配置了 SSH,
一是为了使用我自己比较喜欢的终端软件(比如 UI 长得很好看的 Tabby)来操作 ECS 的命令行,二是后续可以通过 SFTP 向 ECS 传输文件。

vi /etc/ssh/sshd_config

我在这里调整了 SSH 的默认端口,然后通过阿里云面板的“安全组”放行了新的端口,
重启 SSH 服务,然后在本地尝试使用命令行连接 ECS:

ssh root@IP -p PORT

输入密码后连接成功,接下来继续服务端的配置过程。

配置 frps

我在这里使用了免费软件 FileZilla 来完成下面的操作。
启动 FileZilla,“主机”填 sftp://IP,用户名 root,密码和端口,然后“快速连接”即可。
这里不能缺省“主机”中的 sftp:// 协议头,否则 FileZilla 会尝试建立 FTP 连接而导致连接失败。
将下载到的 frp_<version>_linux_amd64.tar.gz 传到 ECS 上合适的目录,

tar -zxf frp_<version>_linux_amd64.tar.gz

解压后 vi 打开 frps.ini,其他的配置文件这里用不到可以不管。
里面有唯一一个 bind_port,是 frps 与 frpc 通信的端口。
可以随便选一个,也可以保留默认值,但是选好以后要在 ECS 的安全组中放行。
命令行执行

frps -c frps.ini

没有报错的话,此时服务端已经配置成功。

配置 frpc

我直接在我的台式电脑上完成的这一部分。
下载 frp_<version>_windows_amd64.zip,解压。
考虑到远程桌面需要一个 TCP 连接,我们参考 frp 中文文档 的说法,这样填写 frpc.ini

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000

3389 是 Windows 远程桌面的默认端口,假如你没有改过的话,应当是这个值。
命令行执行

frpc -c frpc.ini

如果命令行没有报错,此时内网穿透已经建立。
尝试用另一台设备(其他电脑或安装了 RDClient 的手机)连接远程桌面,
发现成功连接。

包装 frpc 为服务

平时这台台式电脑也要用,如果 frpc 一直以一个命令行窗口的形式挂在后台,看着碍眼,用着也碍事;
作为一台家用电脑,我的台式机也不适合长时间开机,
所以 frpc 最好能开机自启,且静默后台运行。
我查阅了一下网上的教程,了解到可以利用 WinSW 工具 https://github.com/winsw/winsw
将 frpc 包装为系统服务,从而实现上述需求。
从 Releases 下载之,解压到 frpc 所在目录。
新建一个 XML 文件,文件名要和 WinSW 程序的当前文件名 完全一致
为了省事,重命名 WinSW 程序的文件名为 winsw.exe,这样 XML 文件也可以命名为 winsw.xml 了。
填写后者的内容如下:

<service>
  <id>frp_client</id>
  <name>FRPC Client Service</name>
  <description>与服务端 FRPS 服务配合使用来实现内网穿透。</description>
  <executable>frpc.exe</executable>
  <arguments>-c frpc.ini</arguments>
  <log mode="none"></log>
</service>

<id><name> 不能和当前操作系统中已有的服务重复。
<description> 可以随便写。
<executable> 是待包装为服务的程序 exe 文件对 winsw.exe 的相对路径,
因为它们在同一个目录下,所以直接写文件名。
<arguments> 是启动参数,<log mode="none"> 是为了不记录日志,完全静默运行。
保存,在当前目录下命令行执行

.\winsw.exe install

frpc 就会被包装为系统服务。
Windows 徽标键 + R 打开“运行”窗口,输入 services.msc 回车,打开“服务”菜单,
找到我们刚才包装好的服务,将其启动方式设为“自动”,就大功告成了。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
存储 弹性计算 安全
阿里云第七代云服务器ECS性能、适用场景与价格参考
阿里云第七代云服务器ECS(Elastic Compute Service)作为阿里云最新一代的高性能计算产品,凭借其基于最新硬件架构和虚拟化技术的全面升级,在计算能力、存储性能、网络传输速度以及灵活性等多个方面实现了显著提升。这一代云服务器旨在为用户提供更为强大、稳定且可定制的云端基础设施服务,广泛适用于从基础的Web托管到复杂的高性能计算等多种应用场景。
|
14天前
|
弹性计算 网络安全
阿里云国际OpenAPI多接口快速管理ECS服务器教程
阿里云国际OpenAPI多接口快速管理ECS服务器教程
|
3天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
17 3
|
8天前
|
存储 弹性计算 编解码
通过阿里云的活动租赁云服务器时如何选择实例规格?选择指南参考
新手用户通过阿里云的活动租赁云服务器的时候实例规格应该怎么选?目前在阿里云的活动中,可选的云服务器类型除了轻量应用服务器之外,云服务器的主要实例规格有经济型e、通用算力型u1和计算型c7与c8y、通用型g7与g8y、内存型r7与r8y等实例,但是对于新手来说,由于是初次购买,实例规格往往不知道怎么选择了。本文为大家展示阿里云目前活动中各云服务器实例规格性能、适用场景以及选择指南参考。
|
12天前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
15天前
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
19天前
|
存储 机器学习/深度学习 应用服务中间件
阿里云倚天云服务器实例:计算型c8y、通用型g8y、内存型r8y实例介绍
阿里云倚天云服务器是基于阿里云自研的倚天710 ARM架构CPU打造的高性能计算产品系列,它依托先进的第四代神龙架构,旨在为用户提供稳定可预期的超高效能体验。倚天云服务器在存储、网络性能及计算稳定性方面实现了显著提升,主要得益于其芯片级的快速路径加速技术。本文将深度解析阿里云倚天云服务器的计算型c8y、通用型g8y、内存型r8y实例,探讨其优势及适用场景,以供选择参考。
|
20天前
|
网络协议 应用服务中间件 网络安全
阿里云轻量应用服务器的使用限制
阿里云轻量应用服务器的使用限制
|
22天前
|
弹性计算 安全 Linux
阿里云国际版ECS云服务器ping不通的原因分析
阿里云国际版ECS云服务器ping不通的原因分析
|
14天前
|
人工智能 运维 关系型数据库
携手UALink,阿里云磐久AI Infra 2.0服务器亮相2024 OCP全球峰会
阿里云服务器研发受邀和UALink联盟一起,在OCP全球峰会上重点阐述AI服务器Scale UP互连技术领域发展趋势