使用 Cloudflare Tunnel 实现 VNC 远程桌面的正确姿势是什么?

127 天前
 fuo

我在 Cloudflare 购买了一个域名,想使用一台 Macbook 远程桌面到家里的 Mac mini 来使用,网上翻了很多帖子,说用 Tunnel 可以实现内网穿透,于是折腾了下,下面是具体的步骤:

使用家里的 Mac mini ,作为服务端操作如下:

1 、在 Cloudflare 控制台选择 Zero Trust 新建一个 Tunnel ,并选择 Cloudflared 类型的 Connector ;

2 、在 Public Hostname Page 中设置了 Subdomain 、Domain 参数,Service 选择了 RDP ,URL 设置为 localhost:3389

3 、在 Install and run a connector 的页面,复制安装命令并运行:

brew install cloudflared && 
sudo cloudflared service install eyJhIjoiNGNxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4 、运行完成后,在 Your tunnels 页面能显示出 Connectors 连接成功。

然后使用 Macbook 作为远程桌面的客户端,同样使用 brew 安装好了 cloudflared ,并运行如下命令:

cloudflared access rdp --hostname xxx.xxx.com --url rdp://localhost:3389

输出日志显示启动成功:

INFO Start Websocket listener host=localhost:3389

然后我使用访达的前往服务器功能,输入:vnc://127.0.0.1:3389进行连接,连接失败,并有如下日志输出:

ERR failed to connect to origin error="websocket: bad handshake" originURL=https://xxx.xxx.com

检查了两台 Mac 的防火墙均处于关闭状态,google 了上面的错误日志看到有说是 Cloudflare 的网络设置中没有打开 WebSocket 导致,也检查了一下是默认开启的,现在不太确定是哪里的问题,不知道有没有小伙伴有成功的案例,不胜感激。

1894 次点击
所在节点    Cloudflare
13 条回复
xxgzzzzzz
127 天前
我感觉 zerotier 是最简单最简单的...
或者 wireguard vnt 速度更快点
再或者 如果是 nat1 natmap 可以直连
1423
127 天前
先确定内网能连上吧
而且这个功能也不需要有域名..
fuo
127 天前
@xxgzzzzzz 好的这几个我也去了解下
fuo
127 天前
@1423 测试过了,内网正常连接没问题
1423
127 天前
@fuo #4 cloudflared 只报了一个 err 吗,有没有连接上 edge 的消息(一般是两对 4 个)
oott123
127 天前
虽然说可能不是这个原因,但 vnc 的默认端口是 5900 ,3389 是 rdp …
adrianzhang
127 天前
提醒你一下,最近开会,我的几条 access 都断了。
fuo
127 天前
@1423 终端只输出了这一个 error 就没了
fuo
127 天前
@adrianzhang 啊这,不过我现在连不上已经关了
fuo
127 天前
@oott123 嗯呐我明天试试换个端口看看
idblife
127 天前
tailsacle
xxgzzzzzz
126 天前
@fuo #1 还是 zerotier 无脑入
fuo
126 天前
@xxgzzzzzz 好😭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1057114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX