利用 Cloudflare Tunnel 不用暴露端口实现公网远程桌面

date
Nov 23, 2022
slug
利用 Cloudflare Tunnel 不用暴露端口实现公网远程桌面
status
Published
tags
Fool Around
NAS
summary
使用 Cloudflare Tunnel 的好处在于,全程可以用 docker 部署,不会搞乱你现有的环境。很多操作可以通过网页进行,新手友好。不需要自己折腾 TSL 证书,反向代理等等乱七八糟跟业务关系不大的基础设施。
type
Post

Background

对于没有公网 IP 或者担心在公网上暴露端口的安全性问题的人来说,好像一直没有一个方便的公网远程桌面的方案。frp 算是一个选择,但是配置比较复杂,使用门槛并不低。
使用 Cloudflare Tunnel 的好处在于,全程可以用 docker 部署,不会搞乱你现有的环境。很多操作可以通过网页进行,新手友好。不需要自己折腾 TSL 证书,反向代理等等乱七八糟跟业务关系不大的基础设施。

Solution

下面的操作都建立在你已经有 site 托管在 Cloudflare 上面的前提下

Server 端

进入 Cloudflare Zero Trust Dashboard 在右边找到 Access → Tunnels,然后点 Create a tunnel
输入 tunnel name 点确定之后,可以看到页面上给出了各种安装方式,这里我们参考 docker 的安装方式
当然,这里最重要的就是 token。我更倾向于使用 docker-compose 进行部署
使用 docker-compose up -d 启动后,如果一切正常,你应该能在页面上看到绿色的 ACTIVE 字样
点 Add a public hostname
Subdomain、Domain、Path 是将来公网访问的地址,按需要填就好
Type 选 RDP,URL 选 tunnel 所在网域能访问到机器地址,比如我的 tunnel 跑在家里的 NAS 上,那么这个地址就填写家里局域网内的 IP
填完之后 Save hostname
notion image

Client 端

去下载 cloudflared,比如 Windows 平台就是一个可执行文件,执行如下命令
其中 serverAddress 就是刚才新建的 Public hostname 的地址
port 建议选个 3389 以外的,因为 Windows 远程桌面默认是 3389,用个其他的避免产生冲突
至此准备工作就完成了,在远程桌面里连接 localhost:{{port}} 即可

PS

如果需要暴露的是同一台机器上的其他 docker 服务,我更倾向于把它们加入同一个 docker network

Reference

 

© oddcc 2020 - 2024