最近把家里的迷你小主机从 Ubuntu 又重装回了 Windows 系统。考虑到大多数小服务都迁到云服务器上了,这台机器目前只跑着局域网的 Jellyfin,换回 Windows 的话好处是可以更方便地 RDP 上去,GUI 操作还是比命令行要轻松得多。加上赛博菩萨 Cloudflare 提供了免费的 Tunnel,除了 frp 之外也是一种可以一试的远程访问方式。 (这不得梭几股 NET 支持一下 > <
创建和配置 Tunnel
在 Cloudflare 控制台找到 ZeroTrust
功能并开通,可以选择免费的 Plan,此时可能必需要绑定一种支付方式,不过不会实际扣钱。然后创建 Tunnel。因为主机是 Windows 系统所以这里只能选择 Cloudflared 类型的 Connector, Linux 可以选择 WARP 这个还没有尝试过。
接下来要配置家庭主机,根据提示,下载相应系统的 Cloudflared 程序并运行即可,运行的命令会包含一个 token 用于连接到创建的这个 Tunnel,页面中有非常详细的提示。对于 Windows 来说,这步操作后系统中就会多了一个 Cloudflared 的服务,并且开机自启。
然后继续在 CF 控制台中配置如何访问这个 Tunnel。选择 Public Hostname,如果域名本身 DNS 托管在 CF,直接填一下就行。因为目的是转发 RDP,所以 service type 这里要选择 RDP。默认端口是 3389。
使用客户端连接
客户端机器上也要安装 Cloudflared ,然后连接到这个 Tunnel。这里 hostname 是刚才控制台指定的域名, url则是映射到本机。
.\cloudflared.exe access rdp --hostname lab.example.com --url rdp://localhost:3089
接下来就可以在远程的这台客户端机器上 RDP 连接 homelab 啦。比如通过 Windows 的远程桌面或者 mac 上的 MS Remote Desktop。注意机器地址就是 localhost:3089
,对应上面命令中配置的 url。
RDP 的一些踩坑
整个配置 Tunnel 和客户端连接的流程其实非常简单,按照 CF 控制台页面的提示一步一步操作就行。但是因为是新装的 Windows 系统,反倒踩了一些 RDP 的坑。
- 要确保系统防火墙允许 3389 端口
- 用于登录的用户需要在 Remote Desktop User中,可以通过 此电脑 → 管理 → 本地用户和组 → 用户 → 找到你的账户 → 隶属于 查看是否包含 Remote Desktop User,如果不在,需要操作添加一下。
- 在 Windows 设置-账户中,需要取消“仅允许 Windows Hello 登录”,注销登录后让这个账号使用密码登录到系统中一次。这样远程的时候,可以使用账号密码登录。比如如果已经登录了微软账号 [email protected],那么 RDP 时,使用 [email protected] 和这个账号的微软密码登录即可。RDP 的密码不是 Windows Hello 的 PIN。
这个我没有遇到过,但看网上有人遇到过,可以一并检查一下:
打开“本地组策略编辑器” Windows 设置 → 安全设置 → 本地策略 → 安全选项 → 网络访问: 本地帐户的共享和安全模型;从“仅来宾”修改为“经典”即可
都配置完成之后连上 RDP 的那一刻感觉还是不错的,happy RDP!