• 个人经常会有远程Windows的需要,没有找到中意的远程软件
  • 用过向日葵,三天两头服务器奔溃,账户莫名登录不上,直接劝退。
  • TeamViewer就厉害了,识别到国内IP就是特供版,不验证手机号直接不让用,也劝退了。
  • Todesk就直接告辞了,你以为在白嫖它的服务,殊不知电脑的网络被它一直在白嫖
  • 偶然看到Cloudflare Tunnel穿透,配合Freenom的免费域名,通过windows远程桌面就可以直接远程了

提前准备

被控端电脑配置

将 下载好的可执行文件(cloudflared-windows-amd64.exe) 复制到 自己定义的目录 并改短名称为(cloudflared.exe),方便操作

在当前目录打开 cmd 窗口,输入如下命令进行登录验证,会自动打开游览器进行登录

1
cloudflared.exe login

登录完成之后会在 C:\Users\%USERNAME%\.cloudflared 目录下生成登录凭证

创建隧道,随意自定义名称

1
cloudflared.exe tunnel create <NAME>

配置 DNS 记录(使用Freenom免费域名),就是上一步创建的隧道名称

1
cloudflared.exe tunnel route dns <NAME> diy.domain.cf

配置完成之后,可以在控制台看到记录

cloudflared.exe 同级目录创建一个 config.yaml 文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
# 隧道的 UUID, 就是登录凭证的json文件名称
tunnel: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
# 鉴权文件的全路径,注意替换为自己的
credentials-file: C:\Users\%USERNAME%\.cloudflared\xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.json

ingress:
# 你的freenom二级域名
- hostname: diy.domain.cf
service: rdp://localhost:3389
# 默认错误404
- service: http_status:404

验证连接情况

被控端

被控端输入如下命令,注意替换配置文件路径

1
cloudflared.exe --config=D:\Config\config.yaml tunnel run

控制端

同样下载可执行文件,并在目录打开 cmd。输入如下命令,即可启动 Start Websocket listener

  • hostname 填写自定义的域名
  • url 填写映射的本地端口,如localhost:3000
1
cloudflared.exe access rdp --hostname diy.domain.cf --url localhost:3000

再打开 windows远程桌面 -> 输入 localhost:3000 能连接的话就说明配置没问题了

配置开机自启

被控端如果还需要手动执行命令,那不是脱裤子放屁。

肯定是需要注册成Windows服务,自动启动滴!

首先 以管理员身份打开 cmd, 进入cloudflared.exe所在目录,执行如下命令,注册成服务

1
cloudflared.exe service install

打开注册表(regedit.exe),在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 找到 Cloudflared
将 ImagePath 修改为 D:\Config\cloudflared.exe --config=D:\Config\config.yaml tunnel run 注意替换自己路径

再打开Windows服务(services.msc),找到 cloudflared agent 右键 重新启动。自启就配置完成啦!!!

建议配合笔者之前写的 Windows开机自动发送邮件 食用更佳。