前言
个人经常会有远程Windows的需要,没有找到中意的远程软件
用过向日葵,三天两头服务器奔溃,账户莫名登录不上,直接劝退。
TeamViewer就厉害了,识别到国内IP就是特供版,不验证手机号直接不让用,也劝退了。
偶然看到Cloudflare Tunnel穿透,配合域名,通过windows远程桌面就可以直接远程了
被控端电脑配置
配置方法我分为2种,
一种是把Cloudflare Tunnel安装在OpenWrt路由器上,家庭局域网内的设备可以直接在Cloudflare 官网后台添加rdp协议
推荐使用这种方法,优点是可直观在Cloudflare 操作,家里电脑不需要做任何配置,简单方便
另一种方法是直接在电脑上下载Cloudflare可执行文件,通过cmd命令配置。
这种方法稍微比较复杂麻烦,比较折腾。
2种办法原理都一样,无非都是先创建好Tunnels,再建一条Routes,使用域名通过rdp协议映射到内网的机器上。
第二种方法可参考以下2位博主的文章:
https://blog.dollcode.cn/cloudflared-tunnel-rdp
https://iecho.cc/2022/05/18/access-internal-services-through-Cloudflare-tunnel/
这里主要讲第一种方法,开始之前要在OpenWrt上使用Cloudflared(Zero Trust) 实现内网穿透。具体教程在这里:
这一步完成之后,在Cloudflared后台添加一条Public hostnames,如图:
Subdomain:可以自定义
Type选择:RDP
URL填写内网需要被控电脑的IP
完成之后就可以在控制端设置了。
控制端
下载可执行文件:https://github.com/cloudflare/cloudflared/releases,并在目录打开 cmd。输入如下命令,即可启动
cloudflared.exe access rdp --hostname <域名> --url localhost:<映射至本地的端口>
hostname后面的<域名> 需要填写CF中设置的子域,比如yc.xx.com
url 填写的是控制端的IP和端口,不是被控端的IP。localhost:3000
随后,打开 RDP 客户端,填写 localhost:<本地端口> 即可访问到远程桌面了。
如果此处端口使用 3389
,Windows 自带的 RDP 客户端会阻止连接,我们可以:
- 访问
127.0.0.2
,它其实是127.0.0.1
的另一个别名。 - 换一个端口。
- 使用兼容性设置,让 mstsc.exe 以另一个系统环境运行。
总结
使用Cloudflare Tunnel 远程桌面,经过测试速度一般,延迟很高,只适合作为学习折腾。