阿里云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 回车,打开“服务”菜单,
找到我们刚才包装好的服务,将其启动方式设为“自动”,就大功告成了。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
网络安全 开发工具 数据安全/隐私保护
自建内网穿透服务器
本文介绍了如何使用FRP实现内网穿透。首先准备一台具有公网IP的云服务器和一台内网服务器,接着在云服务器上安装Docker和FRP服务端,配置`frps.ini`文件并启动服务。在内网服务器上手动安装FRP客户端,配置`frpc.ini`文件并启动服务。最后通过FRP控制台验证连接状态,确保可以通过公网IP访问内网服务。
5790 10
自建内网穿透服务器
|
网络协议 网络安全 网络架构
移动宽带不借助软件和公网服务器实现基于IPV6的内网穿透
本教程指导如何设置路由器以支持IPv6访问:首先确保上网方式为自动获取IP,接着在路由器设置中开启IPv6功能,并关闭可能阻碍连接的防火墙。最后,在光猫管理界面同样关闭防火墙以确保无障碍的IPv6访问路径。操作时请注意网络安全。
移动宽带不借助软件和公网服务器实现基于IPV6的内网穿透
|
弹性计算 网络协议 Linux
阿里云主机构建FRP内网穿透家用服务器避坑指南
详述了利用FRP工具搭建内网穿透的流程,包括阿里云ECS的配置、家用服务器的准备、FRP工具的下载与配置,以及通过SSH远程访问本地服务器的解决策略,确保了内外网间的稳定连接。
7039 1
阿里云主机构建FRP内网穿透家用服务器避坑指南
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
391 1
|
人工智能 网络协议 Shell
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
1033 3
|
人工智能 网络协议 Shell
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
489 0
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
|
弹性计算 负载均衡 监控
云服务器 ECS产品使用问题之如何实现内网穿透
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
弹性计算 安全 Windows
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
|
弹性计算
阿里云马来西亚服务器租赁费用、吉隆坡公网带宽收费价格整理
阿里云马来西亚(吉隆坡)服务器提供多种配置如2核2G至16核64G等, 实例规格涵盖经济型e、通用算力型u1等。示例价格:2核2G经济型e约56.53元/月, 4核32G通用算力型u1约809.62元/月。公网带宽预付费价格从1Mbps起22元/月, 按量付费0.529元/GB。
982 1
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号

热门文章

最新文章