cloudflared内网穿透实现Windows远程桌面
- 个人经常会有远程Windows的需要,没有找到中意的远程软件
- 用过向日葵,三天两头服务器奔溃,账户莫名登录不上,直接劝退。
- TeamViewer就厉害了,识别到国内IP就是特供版,不验证手机号直接不让用,也劝退了。
- Todesk就直接告辞了,你以为在白嫖它的服务,殊不知电脑的网络被它一直在白嫖
- 偶然看到Cloudflare Tunnel穿透,配合Freenom的免费域名,通过windows远程桌面就可以直接远程了
提前准备
- Cloudflare账号,注册地址:https://www.cloudflare.com
- 自定义域名并托管到Cloudflare(使用Freenom免费域名)
- 下载 Cloudflare可执行文件 下载地址:https://github.com/cloudflare/cloudflared/releases
被控端电脑配置
将 下载好的可执行文件(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 | # 隧道的 UUID, 就是登录凭证的json文件名称 |
验证连接情况
被控端
被控端输入如下命令,注意替换配置文件路径
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开机自动发送邮件 食用更佳。