本文记录如何通过 Cloudflare Tunnel 连接 SSH,并支持两种使用方式:
- 终端直接
ssh连接
- VS Code Remote SSH 远程开发
前置说明
通过 Cloudflare Tunnel 暴露的 SSH 服务,不能像普通服务器一样只靠
ssh 域名 直接连接。客户端本地需要安装 cloudflared,让 SSH 流量先通过 Cloudflare Access / Tunnel 代理,再进入服务器的 SSH 服务。本文统一使用占位信息,真实信息请以管理员单独通知为准:
- 服务器隧道域名:
xxx.5280717.xyz
- 服务器登录用户名:
your_user
- 服务器 SSH 端口:
22
本文不会写入任何服务器密码。即使服务器允许密码登录,也只应在终端交互提示中输入,不要把密码写到 SSH 配置文件、脚本或群聊里。
1. 本地安装 cloudflared 客户端
根据本地电脑系统选择对应安装方式。
1.1 Linux Debian / Ubuntu
1.2 macOS
1.3 Windows
Windows 可以用
winget 安装,也可以下载 Cloudflare 官方 MSI 安装包。1.3.1 方式 A:winget 安装
以管理员身份打开 PowerShell,执行:
1.3.2 方式 B:官方下载 MSI 安装包
如果
winget 安装失败,或者你习惯使用安装程序,可以使用 Cloudflare 官方 MSI:- 系统选择
Windows。
- 架构选择
64-bit。
- 下载下面这个安装包:
下载完成后,双击运行安装程序即可。
如果你是在 Cloudflare Zero Trust 后台复制连接器安装命令,页面可能会提示:
请妥善保管您的令牌。此命令包含允许连接器运行的敏感令牌。任何能访问此令牌的人都可以运行隧道。
这个提醒非常重要。带 token 的命令只用于服务器端运行 Tunnel Connector,不要发到群里,也不要写进博客、截图或公开文档。普通客户端连接 SSH 只需要安装
cloudflared,不需要在本地 SSH 配置里填写这个 token。1.4 验证安装
安装完成后,执行下面命令。如果能输出版本号,就说明安装成功。
Linux / macOS / Windows PowerShell 都可以执行:
2. SSH 连接方式一:临时单次连接
这种方式不需要修改 SSH 配置文件,适合临时测试。
2.1 Linux / macOS
首次连接时会自动唤起浏览器完成 Cloudflare 身份校验。验证通过后,就会进入 SSH 会话。
2.2 Windows
Windows 原生 OpenSSH 对
ProxyCommand 的可执行文件路径更敏感。建议在命令里写 cloudflared.exe 的完整绝对路径,否则可能出现下面错误:先在 PowerShell 中查询
cloudflared 的真实路径:常见安装路径类似下面这样,以你自己电脑的实际输出为准:
然后执行连接命令:
3. SSH 连接方式二:写入 SSH 配置文件
推荐使用这种方式。配置完成后,终端和 VS Code Remote SSH 都可以直接调用,不需要每次输入很长的命令。
3.1 找到 SSH 配置文件
不同系统的 SSH 配置文件路径如下:
- Linux / macOS:
~/.ssh/config
- Windows:
C:\Users\你的用户名\.ssh\config
如果文件不存在,可以手动新建。也可以直接用 VS Code 打开该文件编辑。
3.2 Linux / macOS 配置
把下面内容写入
~/.ssh/config:3.3 Windows 配置
Windows 必须把
ProxyCommand 里的 cloudflared.exe 写成完整路径。请把路径替换为 where.exe cloudflared 查到的实际结果。把下面内容写入
C:\Users\你的用户名\.ssh\config:参数说明:
Host:本地 SSH 里使用的连接名称,建议直接写隧道域名。
User:服务器登录用户名,请替换为管理员提供的用户名。
Port:服务器 SSH 端口,默认是22。
ProxyCommand:让 SSH 通过cloudflared access ssh代理连接。
ServerAliveInterval 15:每 15 秒发送一次心跳,降低空闲断开的概率。
ServerAliveCountMax 3:连续 3 次心跳无响应后断开连接。
3.4 终端连接
配置完成后,在终端直接执行:
如果是首次连接,同样会自动打开浏览器进行 Cloudflare 身份校验。
4. VS Code Remote SSH 连接
完成 SSH 配置文件后,VS Code 可以直接复用同一份配置。
4.1 安装插件
在 VS Code 插件市场安装:
4.2 连接服务器
- 点击 VS Code 左下角远程连接按钮。
- 选择
Connect to Host...。
- 列表中选择
xxx.5280717.xyz。
- 首次连接时按提示完成 Cloudflare 浏览器验证。
- 验证完成后,VS Code 会打开远程服务器窗口。
如果列表中没有出现
xxx.5280717.xyz,说明 VS Code 没有读取到正确的 SSH 配置文件。请确认配置写入的是当前系统用户的 .ssh/config。5. 常见问题排查
5.1 Windows 报 CreateProcessW failed error:2
原因通常是 SSH 客户端找不到
cloudflared.exe。处理方式:
- 执行
where.exe cloudflared。
- 复制输出的完整路径。
- 把 SSH 配置文件里的
ProxyCommand改成完整路径。
Windows 配置里不要只写:
建议写成:
5.2 提示找不到 cloudflared 命令
先关闭所有终端窗口,然后重新打开 PowerShell / Terminal。
如果仍然找不到,检查
cloudflared 安装目录是否已经加入系统 PATH 环境变量。Windows 用户也可以先用下面命令确认:
5.3 连接超时或连接失败
按下面顺序检查:
- 服务器端 Cloudflare Tunnel 是否正在运行。
- Cloudflare Tunnel 的公共主机名服务类型是否为
SSH。
- Tunnel 目标地址是否指向
localhost:22。
- 隧道域名是否已经正确绑定到对应 Tunnel 路由。
- 本地是否能正常打开 Cloudflare 身份验证页面。
5.4 VS Code 一直连接不上
先不要排查 VS Code,先在系统终端执行:
如果终端都连不上,说明问题在
cloudflared、SSH 配置或 Cloudflare Tunnel 上。如果终端能连接,但 VS Code 不能连接,再检查 VS Code Remote SSH 读取的配置文件是否正确。
6. 安全提醒
- 不要把服务器密码写进教程、群聊、脚本或配置文件。
- 不要把自己的 SSH 私钥发给别人。
- 如果管理员提供的是个人账号,请不要多人共用同一个账号。
- 如果连接失败,截图时注意遮住真实域名、用户名、Token、私钥路径和浏览器验证信息。
7. 参考资料
- Cloudflare 官方文档:Downloads - cloudflared
- Cloudflare 官方文档:Connect to SSH with client-side cloudflared