打造个人工作室系列一:思路整理
2023 年 09 月 29 日
作为一个 coder,工作无聊的时候,总想着搞一些 side project 调剂。但是,有时找到灵感,想要动手实验的时候,总是会被各种各样的客观条件限制。比如说,手边没有合适的机器,工作机上有监控,工作机环境不凑手之类。
因此,我想搞这样一套方案,希望能够随时随地做自己想做的工作。不管是在咖啡馆,还是在工作的间隙,只要想到了什么,就可以立刻利用手边的设备完成验证。
很明显,这套方案至少需要以下几个要件:
- 主力工作设备。例如台式机或高性能笔记本电脑。
- 日常便携设备。例如手机、平板或便携本。
- 网络连接方案。用于 2 和 1 之间的连接。
虽然仅靠要件 1 就可以解决所有问题,但这里不对这种方案进行探讨。毕竟这种方案的解决方法只有一个,买一台高性能且相对便携的笔记本。但是,高性能和便携永远是矛盾的。
按这三个要件来考虑的话,各自需要考虑哪些事情呢?
主力工作设备
既然是主力工作设备,性能必须是首要考量,便携性不用考虑太多。我基本只会考虑以下几种:
- 游戏本/设计本。
- 台式机。
- 家用服务器。
另外,由于主力工作设备功耗肯定不会低,因此要考虑远程开机。这样的话需要配置有线网络(WOL),或者无线开机(内置开机卡或智能插座)的方案。
日常便携设备
作为日常便携设备,不需要考虑性能,但需要考虑方便的 I/O。因此以下几种方案值得考虑:
- 便携本已经是一个完整工作环境,随身带个扩展坞和连线,方便外接屏幕就差不多了。
- 平板与便携本比较,主要是缺少键盘,因此需要便携键盘。
- 手机与平板差别主要是屏幕,因此同样需要考虑扩展坞外接屏幕。
所以综合下来,我会考虑手机+便携键鼠+扩展坞。如果是咖啡馆之类没有显示器的场所,可以考虑加一个便携屏。
网络连接方案
如果在家工作,直接使用主力工作设备即可。因此只需要考虑在 Internet 环境下,如何使用日常便携设备连接家里的主力工作设备。这个需求下有太多方案。但是,受限于客观条件,想要简单易用,又想要便宜,还想适应各种网络情况的,这样的方案不存在。
先考虑一下远程连接的建立,可选的方案有:
- 公网 IPv4。家庭使用光猫接入的情况下,基本拿不到;即使能拿到,也有端口限制的问题。以企业方式获取固定 IP 倒是可以,不过要花钱,且受到各种监管,因此不考虑。
- 公网 IPv6。普适性太差。一方面对路由有要求,另一方面对外部网络有要求。毕竟没人可以保证随时可以接入 IPv6 网络。不过将来如果 IPv6 网络发展的好,这种方案应该是最佳。
- 通过 ZeroTier 或类似服务,在 Internet 上建立局域网,通过 ZeroTier 网络转发,也可以自建服务器。对网络基础知识要求较高,性能较难保证。
- Cloudflare Tunnel 直接打洞。与 ZeroTier 方案本质上是类似的,只是使用了 Cloudflare 网络服务,因此性能上应该会稍微好一些。另外打洞概念理解起来也相对简单一些。但连接协议受 Cloudflare Tunnel 节制,非 http(s) 协议两端可能都要使用工具。要想方便使用,可能涉及到二次开发。
这几种方案其实没有优劣,各自适用于不同环境而已。方案 1 本质上是偏商用场景,稳定性高,需要多花钱。方案 2 应该是未来 IPv6 成为主流后的自然选择。方案 3 主要是 ZeroTier 服务器在国内不够多,如果可以自建公网服务器的话,就能保证性能。方案 4 明显最省钱,但也是最折腾的。
我会选方案 4,这样就需要家里有一台 24 小时开机并保持联网的低功耗服务器,用来接收并执行远程开关机指令,转发连接等等。服务器的选择很多,可以用开发板或无风扇主机。
总结
今年基本到了我所有设备换代的时候。在考虑对下一代手机和电脑的需求的时候,才想到了这个题目。接下来应该会在更换新设备之后,整理一下如何实现上面几个方案的过程。这样,换设备才有点意义嘛。对吧😁