我最近配置了一台新的 PC,整体配置还是不错的。
新 PC 的使用体验十分良好,以至于我想随时通过其他设备远程访问到机器,毕竟在云平台上使用相同配置的虚拟机每个月大概是需要几千元人名币的。
出于个人隐私和成本的考虑,我没有使用 Teamviewer 和向日葵等商业应用。
远程登录 Windows 设备最主流的方式是通过微软提供的 RDP 协议,在 Windows 设备上,可以通过内置的“远程桌面连接”应用;在安卓和 iOS 等移动设备上,可以从应用商店下载“Microsoft 远程桌面应用”。
值得注意的是,如果想要其他设备远程访问到你的 Windows PC,系统版本需要是专业版,普通的家庭版是不提供这个能力的。
Windows 10/11 系统是可以开启 openssh server 的。
开启后就可以通过 ssh 客户端远程连接 Windows PC 了。
设置好 RDP 和 openssh server 后,就可以在局域网内远程登录到 Windows 设备了。但如果想要在公网机器上自由远程访问,则需要一点额外的配置,毕竟国内的家庭宽带通常是不提供固定的公网 IP 的。这种将局域网设备的端口暴露到公网上就是典型的内网穿透的应用场景了。
可以使用内网穿透服务将 3389 端口(RDP)和 22 端口(sshd)暴露到公网上。
内网穿透最简单的方式是使用ngrok等现成服务,操作流程比较简单。使用这些服务需要注意保护好个人隐私。
如果有一台在公网上的云服务器的话,完全可以自己搭建内网穿透服务。有很多工具可以用,我比较喜欢的是使用 rust 编写的 rathole。
云服务器上暴露的端口最好不要继续使用 3389 和 22 端口(当然 22 端口可能已经在使用中了),以免被一些恶意访问骚扰。
可以使用 nssm 将 rathole 应用封装为一个 Windows 服务,从而可以开机自动启动(以及一些意外情况下的自动重启)。
NSSM - the Non-Sucking Service Manager
通过简单的配置,我们可以从任何地方远程访问自己的 Windows 设备。