使用家里的 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 导致,也检查了一下是默认开启的,现在不太确定是哪里的问题,不知道有没有小伙伴有成功的案例,不胜感激。