远程桌面解决方案

鉴于有好多人问我这个问题,写一个博客。
所谓一个完整的远程桌面解决方案,应该包括两个部分:远程启动和远程操作。
##远程操作
这个是比较重要的,所以先讲。
推荐的软件是两个,Teamviewer 或者微软自家的 RemoteDesktop,都是全平台的,包括 PC/Android/iOS。(WP 是什么?能吃吗)
首先是 Teamviewer,功能非常强大,与其说是远程桌面软件,还不如说是远程协作软件。对个人非商业使用免费,也没有什么功能上的限制(使用时间超过了两三个小时会切断一次,但是可以重连),并且能够自动穿透内网,开机自启动。总之就是不需要设置,就可以很开心的使用。
巨硬的 RemoteDesktop 也不错。作为远程桌面的基本功能可以保证,但扩展功能,比如 VPN,文件共享之类的功能没有 TeamViewer 强大。不过只支持局域网,当然实际上如果有路由管理权限的话弄个 DMZ 或者端口映射也可以在外网使用。好处是直接连接,不像 TeamViewer 要绕道中间服务器,所以有时候在速度上秒杀 TV。(尽管如此,一打开游戏就黑屏所以也不能远程打游戏,十分遗憾)
具体来说,TeamViewer 的使用方法是下载安装(然而有些地方上 TV 官网要翻墙),然后把电脑和账户绑定,授权轻松访问,设置开机启动。
RDP 的话在系统属性内勾选允许远程桌面即可。有防火墙和 360 的可能还需要设置一下例外。如果两台电脑不在一个网段,需要在路由器中设置 3389 的端口转发。

##远程启动
这个稍微麻烦一点。
首先要明确不是所有的主板都支持关机状态远程唤醒,不过我很怀疑是不是只有我手上那台六岁的破戴尔不支持。
首先从操作系统入手,Windows 下,在设备管理器里打开网卡,把属性里所有和网络唤醒(wake on lan)/幻数据包(magic packet)有关的选项都启用。每款网卡不一样,总之先大致勾一下,不行再谷歌。
然后进 BIOS ,把里面所有相关的电源管理和网络唤醒的设置都弄好。不同 BIOS 不一样,通常来说会分布在几个不同的地方。华硕某主板的设置如下,供参考:

  • Deep S4: Enabled
  • Power on by PCI-E/PCI: Enabled
  • Network Stack Driver Supporte: Enabled

如果目标是内网的电脑,还需要进路由器管理界面,设置 LAN 口的静态地址分配和 ARP(IP 和 MAC 绑定)。注意这里必须写网卡本身的 MAC,在 windows 设备管理器里更改的 MAC 地址在 BIOS 阶段是无效的。
这时候,就可以进行测试了。首先进行局域网内的休眠唤醒测试。在手机上下任意一个 WOL app(我用的这个),填上电脑对应的内网 IP 地址和 MAC 地址,端口 7~9 任选。把电脑休眠,把手机连上和电脑在同一个局域网内(同一个路由器下),通过 app 发送 WOL 包,目标电脑应该就被唤醒了。如果没有成功,就是各个位置的 IP/MAC 有错误,或者 windows 下的网卡设置有问题。
成功之后,测试局域网内的关机唤醒测试。关闭电脑,再次发送 WOL 包。如果失败,检查 BIOS 设置,或者作出结论主板不支持。
如果局域网内的测试成功了,就可以尝试外网唤醒。进路由器管理界面,设置端口转发(或者叫端口映射)从外部的任意端口映射到自己内网 IP 的 7~9(网上是这么说的,我测试 7~11 都是可以的)。然后用手机连上外网,进行测试。注意外网不能在 app 里勾选『打开广播』,否则会失败。
这时候如果出问题了,就是防火墙的问题(我猜的)。

以上。