You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudflared Tunnel无法正常转发SSH请求的问题求助

问题排查方案

1. 优先修正ProxyCommand拼写错误

你当前SSH Config里的cloudflared acess ssh存在拼写错误,正确命令应为cloudflared access ssh(缺少字母c),这是导致连接中断的高频原因。修正后的ProxyCommand行如下:

ProxyCommand cloudflared access ssh --hostname %h

若客户端机器的PATH未包含cloudflared路径,需指定完整执行路径,例如:

ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h

2. 验证隧道运行状态

  • 在服务器端执行cloudflared tunnel list,确认目标隧道状态为active;
  • 执行cloudflared tunnel info <你的隧道UUID>,检查ingress规则是否正确加载,确认my-uuid.cfargotunnel.com对应的服务为ssh://localhost:22;
  • 重启隧道并查看Debug日志,排查启动异常:
cloudflared tunnel stop <隧道UUID>
cloudflared tunnel run --loglevel debug <隧道UUID>

日志中若出现凭证文件读取失败、ingress规则匹配错误等信息,对应调整路径或修正YAML格式。

3. 检查Cloudflare Access规则(若使用Access)

如果依赖Cloudflare Access进行身份验证,需在Cloudflare控制台确认:

  • 进入Zero Trust > Access > Applications,已为my-uuid.cfargotunnel.com创建Access应用,且规则允许你的客户端访问(如允许指定IP/用户);
  • 若无需Access验证,仅需隧道转发SSH,可调整配置:
    • 服务器端保持原config.yml不变,启动命令改为:
      cloudflared tunnel run <隧道UUID>
      
    • 客户端SSH Config修改为:
      Host my-test
          HostName my-uuid.cfargotunnel.com
          User someuser
          IdentityFile /path/to/key
          ProxyCommand cloudflared tunnel --url ssh://localhost:22 ssh %h %p
      

4. 修正凭证文件权限

服务器端的凭证JSON文件权限必须设为600,否则cloudflared无法读取:

chmod 600 /home/path/to/my-uid.json

5. 同步cloudflared版本

客户端与服务器端的cloudflared版本尽量保持一致,避免兼容性问题:

  • 两端分别执行cloudflared -v查看版本;
  • 版本差异较大时,执行升级命令:
cloudflared update

6. 验证服务器端SSH配置(可选)

虽然局域网连接正常,仍可确认sshd_config关键配置:

  • 确保PubkeyAuthentication yes(密钥登录场景)或PasswordAuthentication yes(密码登录场景);
  • 重启sshd服务:systemctl restart sshd

内容的提问来源于stack exchange,提问作者ibrahim tanyalcin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:13:18