抽屉里的手机有处理器、闪存、Wi-Fi 和电池,这比大多数人乐于部署的单板计算机硬件更多。它还有屏幕、老化的电池,以及厂商转身之后就不再收到补丁的操作系统。这些都不决定它该成为 VPN 网关还是 NAS。

它该成为 VPN 网关还是 NAS,并不由这个比较来决定,因为比较谈的是能力,而决定谈的是运维。

三项条件决定它。任何一项不成立,这个项目就是周末实验而不是设备,最好在把数据迁上去之前先知道是哪一项不成立。

条件一:角色确实受支持

三种安排常被叫成同一个名字。VPN 客户端保护手机上应用的流量。VPN 服务器接受入站连接。网关把其他设备的流量转发进隧道。它们是不同的项目,一条能用的客户端隧道并不能证明另外两种。

标准 Android 上的应用受后台执行规则约束,开着的终端也不是守护进程。平台自己的 Doze 与 App Standby 指南解释了设备决定闲置时后台进程为何会失去网络访问,而这正是网关里绝不能有的行为。

Android 内部的 Linux 用户空间继承的限制比它消除的更多。chroot 改变文件系统根目录,但仍运行在 Android 的内核、驱动和安全策略之上,所以 chroot 里的 root 并不是平台之上的 root。换掉操作系统反而会让这台特定手机的 modem、存储和供电支持成为你项目的一部分,而机型支持通常正是没人维护的那部分。

条件二:地址可达

网关必须能被依赖它的客户端访问到。家庭路由器里的 Wi-Fi 手机,从该局域网以及路由器转发到的任何地方都能访问,但除非你另行安排,否则从互联网访问不到。

蜂窝网络让这件事更难而不是更容易。许多移动网络把用户放在运营商级 NAT 后面,因此根本没有可转发的入站地址,加一个 modem 也不会产生公网监听。如果需求是从外部远程访问,设计里必须包含中继或两端都向外连接的覆盖网络,而那是第二个需要维护的活动部件。

网络接入也因设备而异。有些手机接受 USB 以太网适配器,有些不行,而 Wi-Fi 又带来自己的延迟和漫游行为。息屏就睡、切换时掉隧道的网关,比没有网关更糟。

条件三:有人负责更新与恢复

这是人们跳过的那一项,也正是它决定东西能不能撑过一年。每个组件都需要有人负责:操作系统构建、换过的内核、服务器软件包、证书,以及你发出去的凭据。

恢复是更难的那一半。没有屏幕、触控面板坏了、电池鼓包之后,你怎么进去?你怎么吊销丢失的客户端身份?当原机是已停产的型号时,你怎么把存储恢复到替代设备上?

供电也属于这里。持续负载意味着持续发热,而老化的电池不是自动 UPS。遵循厂商指引,把任何鼓包或损伤当作停止信号,而不是绕过去处理。

当答案是不行

把三项条件对照你真正需要的东西,讲清具体任务,而不是泛泛的类别。

TaskPhone is reasonable when
Protecting the phone's own trafficThe client is a supported Android app; no forwarding involved
Small lab tunnel inside one LANDowntime is acceptable and you can reach the device to fix it
Household NAS holding the only copyNever; that is a backup problem, not a hardware problem
Unattended remote access for othersYou already own patching, revocation and replacement

专用 Linux 主机也逃不开这张清单。硬件和发行版受支持时,它有更清晰的服务管理器以及存储和网络管理路径,但它仍然需要供电、更新和备份。光有板子不算设备。

所以,当受支持的能力刚好匹配一件不大的任务、实验性停机确实可以接受时,就选手机。当需求是绝不能丢的家庭存储,或别人要依赖的远程访问时,就选别的。两种情况下,决定因素都是一套可复现的安装和你真正测过的恢复流程,再多的免费硬件也替代不了其中任何一个。

相关文章