本文由 简悦 SimpRead 转码, 原文地址 blog.dollcode.cn

个人经常会有远程 Windows 的需要,没有找到中意的远程软件 用过向日葵,三天两头服务器奔溃,账户莫名登录不上,直接劝退。

  • 个人经常会有远程 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
tunnel: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx

credentials-file: C:\Users\%USERNAME%\.cloudflared\xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.json

ingress:

- hostname: diy.domain.cf
service: rdp://localhost:3389

- 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 开机自动发送邮件 食用更佳。