Старый телефон как VPN-шлюз: три условия для проверки
Старый телефон становится устройством только тогда, когда роль поддерживается, сеть может до него добраться и кто-то отвечает за восстановление. Три условия, одно решение.
Телефон из ящика имеет процессор, флеш-память, Wi-Fi и батарею — это больше аппаратного обеспечения, чем у большинства одноплатных компьютеров, которые люди с удовольствием разворачивают. У него также есть экран, стареющая батарея и операционная система, которая перестаёт получать заплатки, когда производитель идёт дальше. Ничто из этого не решает, должен ли он стать VPN-шлюзом или NAS.
Должен ли он стать VPN-шлюзом или NAS, не решает это сравнение, потому что сравнение о возможностях, а решение об эксплуатации.
Это решают три условия. Если хотя бы одно не выполняется, проект — эксперимент на выходные, а не устройство, и лучше знать, какое условие не выполнено, прежде чем переносить на него данные.
Первое условие: роль действительно поддерживается
Три схемы называют одним и тем же. VPN-клиент защищает трафик приложений на телефоне. VPN-сервер принимает входящие подключения. Шлюз переправляет трафик других устройств в туннель. Это разные проекты, и работающий клиентский туннель ничего не доказывает о двух других.
Приложение на стандартном Android подчиняется правилам фонового выполнения, а оставленный открытым терминал не является демоном. Собственное руководство по Doze и App Standby платформы объясняет, почему фоновый процесс может потерять доступ к сети, когда устройство решает простаивать, и это именно то поведение, которого в шлюзе быть не может.
Пользовательское пространство Linux внутри Android наследует больше ограничений, чем устраняет. chroot меняет корень файловой системы, но по-прежнему работает на ядре Android, его драйверах и его политике безопасности, поэтому root внутри chroot — не root над платформой. Замена операционной системы, наоборот, делает поддержку модема, памяти и питания для конкретного аппарата частью вашего проекта, а поддержка аппаратов обычно та часть, которую никто не сопровождает.
Второе условие: адрес доступен
Шлюз должен быть доступен клиентам, которые от него зависят. Телефон по Wi-Fi внутри домашнего роутера доступен из этой локальной сети и отовсюду, куда роутер переправляет, но не из интернета, если вы это не организуете.
Мобильная сеть делает это сложнее, а не проще. Многие мобильные сети помещают абонентов за NAT операторского уровня, поэтому входящего адреса для переправки вообще нет, и добавление модема не создаёт публичного слушателя. Если требование — удалённый доступ снаружи, в проекте должен быть ретранслятор или оверлейная сеть, к которой обе стороны подключаются наружу, и это вторая движущаяся часть, которую нужно сопровождать.
Сетевое подключение тоже зависит от устройства. Одни телефоны принимают USB-адаптеры Ethernet, другие нет, а Wi-Fi добавляет свою задержку и поведение при роуминге. Шлюз, который засыпает при выключенном экране или теряет туннель во время передачи, хуже, чем отсутствие шлюза.
Третье условие: кто-то отвечает за обновления и восстановление
Это условие люди пропускают, и именно оно решает, проживёт ли вещь год. Каждому компоненту нужен владелец: сборка операционной системы, ядро, если вы его заменили, серверный пакет, сертификаты и учётные данные, которые вы выдали.
Восстановление — более сложная половина. Как войти после перезагрузки без экрана, с разбитой сенсорной панелью или вздувшейся батареей? Как отозвать потерянную личность клиента? Как восстановить хранилище на заменяющем устройстве, когда оригинал — снятая с производства модель?
Питание тоже здесь. Постоянная нагрузка означает постоянный нагрев, а стареющая батарея не является автоматическим ИБП. Следуйте указаниям производителя и считайте любое вздутие или повреждение сигналом к остановке, а не чем-то, что можно обойти.
Когда ответ — нет
Примените три условия к тому, что вам действительно нужно, и будьте конкретны в отношении задачи, а не категории.
| Task | Phone is reasonable when |
|---|---|
| Protecting the phone's own traffic | The client is a supported Android app; no forwarding involved |
| Small lab tunnel inside one LAN | Downtime is acceptable and you can reach the device to fix it |
| Household NAS holding the only copy | Never; that is a backup problem, not a hardware problem |
| Unattended remote access for others | You already own patching, revocation and replacement |
Выделенный хост Linux тоже не избегает списка. У него более понятный менеджер служб и более понятный путь администрирования хранилища и сети, когда аппаратное обеспечение и дистрибутив поддерживаются, но ему всё ещё нужны питание, обновления и резервные копии. Одна лишь плата не является устройством.
Поэтому выбирайте телефон, когда его поддерживаемые возможности подходят для скромной задачи и экспериментальный простой действительно приемлем. Выбирайте что-то другое, когда требование — домашнее хранилище, которое нельзя потерять, или удалённый доступ, от которого будут зависеть другие люди. В обоих случаях решающий фактор — воспроизводимая установка и процедура восстановления, которую вы действительно проверили, и никакое количество бесплатного оборудования не заменяет ни то, ни другое.