求助 !!!CloudFlare + VPS = SSH 连不上了

参考了若干大佬自建 VPS 的做法, 采用 VLESS + TLS + WebSocket + CloudFlare 的方式搭建了节点, 正常上网完全没有问题。
然而, 今天发现不能再用域名 SSH 到 VPS 上了, 其实也正常吧, ping 域名的时候 IP 已经不是 VPS 原生 IP 了, 变成了 CloudFlare 的某个节点 IP。
现在要连 VPS 就只能通过原生 ip 的方式了, 这实在是太不优雅了, 我都花钱买域名了, 怎么我还用不上这个域名了。
也是看过几个参考的解决方法的:

  • 一种比较简单的是让 CloudFlare 通过仅 DNS 的方式代理二级/三级域名。比如原域名为 example.com, 被 CloudFlare 通过 Proxy 的方式代理, 那么再创建一个子域名 ssh.example.com, 并使用 CloudFlare 通过仅 DNS 的方式代理, 后续就可以通过域名 ssh.example.com SSH 连到 VPS 上喽。可行, 但是 CloudFlare 后台会在域名 ssh.example.com 左侧冒一个小叹号, 说是暴露 IP 了, 我很心烦, 不够优雅
  • 还有一种常用的是 CloudFlare tunnel, 这个今天也试了一下, 发现需要在 PC 上装一个 WARP client, 碰巧的是我有好几个设备都有 SSH 的需求, 如果要我每个机子上配置一个 WARP client, 真的有点头疼, 而且这个 WARP 今天也确实没调明白, 反正一直都没连上… :frowning_face:

    这个 WARP 搭配 mihomo tun 到底要怎么用啊啊啊啊啊 :lark_029:

  • 最后一个尝试的方案是: brower ssh, 也是 CloudFlare access 给出的一个方案, 说白了就是在浏览器上通过 CloudFlare 认证的页面登录 VPS, 好处是这个方案不依赖于 SSH 本身, 我看有的教程配好了之后甚至直接关闭 22 端口的, 就再也不暴露 SSH 端口了。但是这个方案最大的问题在于我的 SSH 都是通过 public-key 的方式链接的, 每次登录都需要将 private-key 复制一份, 这实在太丑陋了, 登录页面上说 CloudFlare 找不到 private-key 需要手动复制过去, 所以目前看起来只要能将 private-key 保存在 CloudFlare 上, 这个方案应该就是目前最好的方案了

求助各位大佬, 有没有更好的方案可供参考, 帮帮孩子吧

给几个关键词也行啊

2 个赞

如果非要搞,你可以试试把ssh.example.com添加ns记录解析到其他DNS服务商,然后再@到你的VPS的ip就看不到个小叹号了。

1 个赞

Ssh最终都是通过IP 访问的,直接让本地ssh 工具配置好不更好?省得记,也省了解析

1 个赞

没什么好说的,有强迫症自己去治,但看你这样子还是不忍心
我教你最简单的方法,设置本地host,强制本地解析域名
例如
本地设置:ssh.mydomain.com解析到你的服务器ip,这样就不用在cloudflare设置域名解析了
windows设置host地址: C:*Windows* \System32\drivers\etc*hosts*
ubuntu/debian设置host地址:/etc/hosts
在你所有需要配置的客户端修改这两个文件就行

截图 2024-12-14 23-55-37


搭建自己的个人dns,然后个人域名dns重写也行

提出这个问题的初衷是, 不管 GFW 是否进行了 IP 封锁, 都可以通过 SSH 访问 VPS, 为了达到这个目的, 代理(也许是 CloudFlare)是必不可少的。

目前看下来, 比较简单的方法也许是使用 Connect to SSH with client-side cloudflared (legacy)。需要在 server 以及物理机本身上都安装一个 cloudflared, 同时在 ssh config 中使用 ProxyCommand, 强制使用 cloudflared 进行链接的构建。

但这种方法并不完美, 官方文档给其打上了一个 legacy 的标签, 谁也不知道这个方法到底能用多久, 现在看下来官方更希望通过 WARP 的方式接入 CloudFlared 的节点。

很不幸, 这两天的各种折腾说明 WARP client 无法直接使用, 大概率是 GFW 搞的鬼吧。真正让我难受的是, 我看到有说 WARP 是基于三层协议的, 这意味着 WARP 甚至不能被 mihomo 通过 tun mode 代理 (透明代理)。

本来的构想是: client → WARP → tun by mihomo → VPS server → cloudflare zero trust, 这样就算 WARP 被禁用, 我还是可以通过代理的方式接入

难道说真的需要通过硬件的方式实现所谓的透明代理吗 (可是软路由真的很麻烦啊…)

目前对于 WARP 的了解是比较浅显的, 但愿真的可以通过软件的方法代理 WARP 吧 :bili_046: