📋 前置条件:本篇教程默认已经开通了 Cloudflare 的 Zero Trust 功能。
🔧 1. 创建隧道
🌐 进入 Zero Trust 界面

🎯 创建隧道分为以下四个步骤:
📝 步骤一:选择隧道类型

⚠️ 重要提醒:务必选择 Cloudflared,不要选择 WARP Connector!
🏷️ 步骤二:命名隧道

为隧道命名,名称可以随意填写,基本用不到。
⚙️ 步骤三:安装并运行连接器

💻 本地机器安装
首先在的本地机器安装 cloudflared 程序。 选择本地机器的环境①(此处默认为 Windows),然后②点击下载并安装,后续连接隧道时会用到。
🖥️ 服务器端安装

在的服务器上安装 cloudflared 程序。
📌 注意:此命令会用到 GPG 和 CURL,请确认服务器是否已安装这些工具。
sudo apt update
sudo apt install gpg curl
根据图片的顺序,选择服务器的系统,复制③号命令即可:
然后,复制④号命令运行,这样 cloudflared 的守护进程就会以服务的方式运行。
❌ 重要:务必不要选择手动运行的命令!

✅ 看到 “successfully” 字样即表示安装成功,后续无需再操作服务器。

此时①处会显示连接状态,然后点击②"下一步"。
🌍 步骤四:路由隧道

🔑 这一步非常关键:
- ①子域可以随意填写,建议起个容易记忆的名称,以后会用到
- ②选择在 Cloudflare 托管的域名
- ③选择 SSH 协议
- ④填写服务器地址,除非修改过 SSH 的监听端口,否则使用默认端口
- ⑤保存隧道
🔗 2. 本地机器连接
首先确认已经安装了 cloudflared,打开终端验证:
cloudflared -v
应该正常输出版本号。
💻 重要提醒:以下方法都针对 Windows 环境,其他操作系统请自行调整。
使用代理连接 SSH 有以下几种方法:
🔧 方法一:修改 SSH 配置文件(推荐终端用户)
如果只是简单使用终端连接,可以修改 SSH 配置文件以方便使用。
编辑 %USERPROFILE%\.ssh\config,注意 Host 填写在隧道中设置的域名:
Host your_ssh_domain
User your_ssh_username
ProxyCommand cloudflared access ssh --hostname %h
IdentityFile "your_private_key_path"
Port 22
修改完成后,使用:
ssh your_ssh_domain
即可轻松连接。可能会弹出网页认证,接受即可。
🔀 方法二:端口转发(适用于不支持代理的客户端)
如果使用的 SSH 客户端不支持转发,或者对 SSH 转发的支持有限,可以使用 cloudflared 在后台将远程服务器的端口转发到本地端口。
首先打开终端使用命令:
cloudflared access ssh --hostname your_ssh_domain --url localhost:12345
这样,远程服务器就通过 Cloudflare 代理转发到本地的 12345 端口。接下来只需要在使用的 SSH 客户端连接到:
localhost:12345
然后配置使用服务器的用户名和密钥即可正常登录。
⚠️ 缺点:需要一直开启终端保持 cloudflare 进程运行(当然也可以用 Windows 服务隐藏运行窗口)。虽然占用很小,但如果介意的话,可以尝试第三种方法。
⭐ 方法三:使用 MobaXterm(强力推荐)
🎉 这确实是我至今为止用过最强大的 SSH 客户端,当然还有许多其他功能,但不在本文探讨范围内。
📋 创建 SSH 会话

首先打开①会话配置界面。

如图所示:
- 选择①SSH
- ②设置 your_ssh_domain
- ③新增用户

选择①New

分别填写:
- ①②用户信息,name 可以随意填写(给自己看的)
- ②必须填写要 SSH 登录的用户名
- ③不用填写,因为使用私钥登录
确定后,回到 SSH 会话配置界面继续:

- ④选择用户
- ⑤选择刚才添加的用户
- ⑥设置端口,如果没有修改过,就是 22 端口
- ⑦选择协议
🚨 重要提醒:⑦这一步非常关键!可以选择 None(如果不需要左侧的文件管理器),也可以选择 SCP 协议,但绝对不要选择 SFTP 协议!
❌ SFTP 协议不支持SSH转发!!!
如果选择SFTP协议,连接 SSH 会话时 MobaXterm 会卡死 10~20 秒,虽然最后也能登陆到远程服务器,但左侧的文件管理器同样不会显示。
- ⑧选择用户私钥
- ⑨进入本地转发设置
🌐 网络设置

- ①确认已进入网络配置页
- ②选择 Local
- ③Host 选择 your_ssh_domain
- ④选择要登录的用户
- ⑤选择端口(经过测试,端口可以随意填写,cloudflared 会自行处理,但很玄学的可能会增加些许延迟,还是建议填写实际端口)
- ⑥填写命令:
cloudflared access ssh --hostname %host
这里的 %host 变量就是上面填写的 Host。
🎨 自定义选项

- ①选择 Bookmark settings
- ②填写会话名称,可以随意填写
- ③可以自定义标签页颜色
- ④可以添加到桌面快捷方式
最后选择 OK 完成配置。
🚀 连接服务器

左侧双击新建的会话,即可登录到远程服务器的 SSH。
中间可能会弹出浏览器认证,按提示接受即可。
如果关闭会话后第二次登录 SSH 服务器,会发现上次登录的地址变成了 127.0.0.1 或者 ::1。
🎉 完成!
恭喜,配置成功!
现在可以尽情享受通过 Cloudflare 代理的安全 SSH 连接了。🔐✨