在大三下半学期遇到了基于 epoll 的服务器开发需求,由于手里的这台 Mac 闪存容量只有 128G,舍不得再部署一个 Linux 虚拟机,就尝试着利用手里的设备组建了一套跨平台开发方案。此为小记,如有疑问或建议,欢迎留言~
所需材料:
- 笔电 * 1(用作特指,下同)
- Mac * 1
- VPS * 1
WSL + SSH = 本地 VPS
在大二学习专业课程时候,为了使用 SQL Server/VC++ 等环境,在淘宝收了一台不知转手几次的 ThinkPad-X200,配置为 Core Duo P8600 - 4G - 128G,配有指纹识别和 802.11g 支持,价格不到 1K,算是物美价廉。在更换 SSD 之后,系统的瓶颈从 I/O 变到 CPU,相应速度有了质的改变,长时间运行高负载仍然有不错的散热,对比之下,我的这台 Mac 跑几十分钟 OpenGL 实例就能热的煎鸡蛋啦。
使用虚拟机配置 Liunx 或双系统引导是常见做法,不过 Windows 10 引入了 WSL(Windows Subsystem for Linux) 特性,对于我这样偶尔需要的用户最好不过。
安装
WSL 配置简单,在系统设置里打开开发者模式,然后在命令行执行 bash 命令即可开始安装,鉴于网上指南齐全,这里不在赘述安装过程。
配置
使用 SSH 登录 VPS 是非常方便的,若是 WSL 也能通过 SSH 登录,那就再好不过。可惜默认配置是没有办法远程 ssh 登录到笔电的 WSL 的,需要稍做配置,步骤如下。
笔电端:
1 | sudo apt-get update |
当然,最好是在路由器设置中固定笔电的 IP 地址,由于特殊情况,我没有路由器的设置访问权限,只好在笔电这边设置 DHCP 为手动分配固定 IP,也是可行的(不考虑 IP 冲突的可能)。IP 的设置也不再赘述,请自行查阅资料~
Mac 端:
1 | # (可选)配置 RSA 公钥登录 |
远程桌面 + 反向代理 = 云 VPS
仅仅是连接到局域网内的 WSL 是远远不够的,而且由于 WSL 实现的限制,需要笔电开机后手动运行 WSL 并启动 ssh 服务。而这台笔电一直垫在 Mac 下边,每次开盖合盖也不是办法,再三查阅资料,发现了 RD(Remote Desktop)+ WOL(Wake On Lan)的终极解决方案。
而且这样一来就有 Windows 和 WSL 两个环境可以用了,做多平台开发非常方便。
开启 RD(笔电端)
Windows 10 专业版在控制面板-系统信息-远程设置中提供了开启远程桌面的选项,打开之后即可使用。至于家庭版,则需要通过一些工具开启远程桌面,解决方案请自行查询了。
(推荐网线连接,时延小,速度快)
使用 RD(Mac 端)
在 Mac App Store 中,M$ 将官方的 RD 客户端从中国区下架了,如果早些年没有装过的话,可以试着装一下官方的 beta 版。
在 RD 客户端内添加一台远程主机,其中的 PC Name 为笔电的 IP 地址,例 192.168.1.203,登录账户同笔电账户,首次连接时会弹出安全证书警告,点选查看详情后,可以勾选为今后不再提示。
M$ 的RD 客户端在 iOS App Store 也有提供,设置类似,不再赘述。
开启 WOL(笔电端)
如果网卡支持 WOL,可以在网卡设置中开启魔术包(Magic packet)支持,在连接网线和电源的情况下关机后,可以通过其他设备发魔术包进行唤醒。经过目前使用情况来看,即使是关机后再接上电源和网线,也可以进行 WOL 唤醒。当然,有时运气不好 WOL 也会失灵,只能手动开机。
使用 WOL(Mac 端)
免费的 WOL 客户端有很多,使用了一圈下来,还是花几块钱在 App Store 购买了 WOL Wake,方便好用,目前作者还在维护,可以放心入手。
iOS 端推荐使用 Fing 网络扫描工具,支持 WOL 唤醒操作,目前免费。
配置反向代理
目前的路由器都支持 DDNS,最近的 TP-Link 也推出了自己的 DDNS 服务,具体可参考文档。如果能直接使用是再好不过。由于之前提到的特殊情况,我只能用腾讯云的 VPS 做反向代理,测试后发现 1M 的 VPS 带宽也可以流畅跑 RD,没什么问题。
使用到的反向代理工具为 frp,具体安装见文档,这里贴一下我自己的配置。
VPS 端:
1 | [common] |
别忘了在端口设置里设置端口规则,最后执行 nohup ./frps &
,可以说是一劳永逸~
笔电端:
1 | [common] |
如果需要 DNS 或 ssh 的反向代理,类似地可以两边再加规则就可以了。最后运行 frpc.exe 后放到后台,完成。
类似之前的步骤,可以通过 VPS 的约定端口连接到笔电,比如说通过 VPS IP 的 7468 端口 RD 到笔电上。玩法比较多,最近常用的是在教室 RD 回去打开 Word 写文档,不过试了一下打 Gal Game,也是没有问题(反代到笔电的延迟约 100ms
后记:SMB + VPS = 媒体库
有了 RD 和反代之后,笔电就作为下载机常开着,像是 Macross CD 全集,虽然做种的人少,速度慢,用时间去补偿的话还是能搞定的。
笔电在局域网内开启文件夹共享后(开启后记得时常去更新安全补丁 XD),在 Mac 的 Finder 中按 ⌘+K
输入笔电 IP 和账户,可通过 SMB 连接到共享目录。不过似乎 SMB 的速度并不能达到路由器的全速,实测约 20Mbps,如果是大文件拷贝,直接使用移动硬盘说不定还快些。如果只是看视频的话,还是足够的。推荐使用 IINA,并开启缓存和预读取,平滑视频流带宽占用。
别的不多说,硬盘满了,我再买块数据盘去 :D