一、前言
(一)浏览前注意事项
需要先注册好cloudflare账户,然后购买个顶级域名。
(二)前置条件
需要满足一下两个条件
-
需要注册cloudflare账户
-
需要一个可用的域名
二、详细步骤
(一)配置被控端(二选一)
配置被控制端cloudflare提供了两种方式,一个是在cloudflare面板里面创建隧道,一个是本地下载cloudflared客户端再用命令创建隧道
1.在cloudflare面板里面创建隧道
(1)登录cloudflare面板-在右侧菜单进入zero trust
https://dash.cloudflare.com/https://dash.cloudflare.com/
(2)在Zero trust面板选择Access--Tunnels(没有创建计划的话就按照官方指引创建一个免费的plan),如下图
(3)按指引创建一个Tunnels即可(可以创建多个Tunnels,按设备创建,因为每个Tunnels都要在设备商运行一个守护进程),如下图
(4)选择需要内网穿透的设备对应的平台,按官方指引下载程序,并执行绑定,Docker版的则下载镜像后运行容器即可,如下图
(5)在这里就可以配置映射了,然后保存即可
配置的域名很重要,记住,在配置控制端要用到
(6)查看设置情况,有需要修改的或者新的应用需要添加的可以直接改,如下图
(7)设备下载cloudflared,然后按指引运行,这里以windows为例
点击链接下载,管理员模式运行cmd,执行命令,回到第六步的界面看状态Healthy就是成功了
cloudflared.exe service install eyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
到这一步就结束了
2.本地下载cloudflared客户端再用命令创建隧道
(1)下面任意一个地址下载cloudflared客户端,选择对应平台和版本安装
(2)执行命令,以windows为例,在管理员模式的CMD执行(下载的cloudflared建议重命名成简短的名字)
# 0. cd到cloudflared下载地址文件夹
cd <cloudflared所在地址路径>
# 1. 登录到账号
cloudflared.exe login
# 2. 创建隧道
cloudflared.exe tunnel create <NAME>
# 3. 手动运行
cloudflared.exe tunnel --hostname <域名> --url rdp://127.0.0.1:3389
##这里的 --url 参数为 service URL,用于指定要代理的服务,格式为 <协议头>://<IP>:<端口>
# RDP
rdp://127.0.0.1:3389
# TCP
tcp://127.0.0.1:554
# HTTP
http://127.0.0.1:80
# Minecraft
tcp://localhost:25565
# MySQL
tcp://localhost:3306
# SSH
ssh://localhost:22
顶级域名要提前托管在cloudflare中
设置的域名很重要,记住,在配置控制端要用到
(二)配置控制端
1.客户端比较简单,同样下载cloudflared客户端,再运行命令即可
下载后,执行命令,这里以windows为例
cloudflared.exe access rdp --hostname <域名> --url localhost:<映射至本地的端口>
到这样就是可用了
随后,在 RDP 客户端(例如windows的远程桌面)中填写 localhost:<本地端口>
即可访问到远程桌面了。
注意:如果此处端口使用
3389
,Windows 自带的 RDP 客户端会阻止连接。
- 访问
127.0.0.2
,它其实是127.0.0.1
的另一个别名。- 换一个端口。
- 使用兼容性设置,让 mstsc.exe 以另一个系统环境运行。
最后编辑于2023/11/14