Cómo reutilizar un teléfono Android viejo como servidor web
(far.computer)Esta guía explica cómo convertir un teléfono Android sin uso en un pequeño servidor casero con postmarketOS, basándose en el caso de alojar una página web en un Fairphone 2 de 2015. El objetivo es reducir los residuos electrónicos y fomentar la reutilización. Como resultado, puedes obtener un pequeño servidor casero capaz de ejecutar servicios básicos.
Qué necesitas
- Un teléfono Android que no uses
- Cargador y fuente de alimentación
- Conexión WiFi
- Una computadora con Linux (nativo o en máquina virtual)
Paso 1: instalar postmarketOS
Primero, instala postmarketOS en el teléfono. Revisa en la página de dispositivos si tu dispositivo tiene soporte adecuado y mantén esa página abierta durante toda la instalación.
Después de instalar pmbootstrap, genera la imagen y flashea el dispositivo.
Generar la imagen:
- Actualizar los ports e inicializar la información del dispositivo:
$ pmbootstrap pull $ pmbootstrap init- Ingresa el nombre clave del dispositivo tal como aparece en la página del dispositivo.
- Para la interfaz de usuario, elige
console(opción mínima) ofbkeyboard(incluye teclado en pantalla).
- Generar la imagen:
$ pmbootstrap install
Flashear la imagen:
- Revisa en la página del dispositivo cómo arrancar en modo flash (normalmente encendiendo mientras mantienes presionado el botón de "volume down").
- Conecta el teléfono a la computadora y arráncalo en modo flash.
- Sigue las instrucciones de la sección 'Installation' de la página del dispositivo.
- Flashear el sistema de archivos raíz:
$ pmbootstrap flasher flash_rootfs - Reinicia el dispositivo y verifica que postmarketOS inicie correctamente.
Paso 2: configurar el servidor
Inicia sesión en el teléfono con postmarketOS instalado. El usuario/contraseña predeterminados son user / 147147.
- Iniciar sesión por SSH con el teléfono conectado a la computadora:
$ ssh user@172.16.42.1 - Conectarse a la red WiFi:
$ nmcli device wifi connect your_wifi_network --ask
Ahora ya tienes listo el servidor local en el teléfono. Comando para verificar la dirección IP local del teléfono:
$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1
(normalmente con formato 192.168.1.x). Conecta el teléfono en un lugar seguro y accede por WiFi:
ssh user@192.168.1.x
Paso 3: servir una página web
Configura un servidor web para alojar una página sencilla.
- Crear el directorio
/var/www/html/:sudo mkdir -p /var/www/html/ - Crear un archivo HTML simple de Hello World:
$ sudo sh -c 'echo "<h1>hello world</h1>" > /var/www/html/index.html' - Agregar una regla de nftables para permitir paquetes entrantes al puerto 80 (en el archivo
/etc/nftables.d/99_http.nft):inet filter input tcp dport 80 ct state new accept - Reiniciar nftables:
$ sudo systemctl restart nftables - Ejecutar el servidor web:
$ httpd -h /var/www/html/ - Probarlo: verificar con curl desde la computadora:
(debería mostrar el texto$ curl 192.168.1.x<h1>hello world</h1>). También puedes comprobarlo ingresando la dirección IP en el navegador web de un dispositivo conectado a la misma red WiFi. (El servidor HTTP no se reinicia automáticamente al reiniciar el sistema).
Extra: acceso remoto
Por seguridad, no abras el puerto 22 de SSH a internet; mejor configura el acceso VPN del router (la mayoría lo soporta desde la interfaz web). Después de conectarte por VPN, accede por SSH desde la red local. Si abres el puerto 22 a internet, desactiva el inicio de sesión con contraseña y configura claves SSH.
Extra: mantenimiento
Actualizar paquetes:
$ sudo apk update
$ sudo apk upgrade
Siguientes pasos
En la sección avanzada (todavía en construcción) aprenderás a configurar un dominio y HTTPS, y a hacer que el servidor HTTP siga ejecutándose después de reiniciar.
Esta guía fue creada por Louis Merlin bajo la licencia CC BY-NC-SA 4.0.
4 comentarios
A mí me gustan estas cosas.
Para empezar de forma ligera, algo como termux también está bien. Se puede usar para cosas como levantar Grafana en una tablet que no uses.
Sin embargo, Android OS reacciona de forma hostil a funcionar como servidor.
Tomando como referencia un Note10 restaurado de fábrica en 2024,
si los procesos hijos pasan de 6, los mata.
Si permanece mucho tiempo en estado idle, también los mata.
Pasa así incluso si desactivas por completo todas las optimizaciones relacionadas con la batería.
Yo solo logré hacerlo correr hasta 72 horas sin tocar la pantalla táctil, y después de eso me rendí.
¿Han probado desactivar el
phantom process killer?¿La batería aguantará bien?
Seguro se va a hinchar.