Termux

Corriendo Linux en Dispositivos Móviles

Termux es una aplicación de Android altamente reconocida por permitir ejecutar un subsistema GNU/Linux en nuestros dispositivos, la forma en como funciona es bastante similar al proceso de instalación de GNU/Linux en cualquier dispositivo, ya que Android maneja un Kernel Linux, viene con una herramienta llamada "Chroot" la cual le permite montar y ejecutar un sistema GNU/Linux de manera controlada, es decir, aislada del sistema principal.

Termux puede ser encontrado en la F-Droid, ya que la versión actual de Play Store no se actualiza correctamente o cuenta con limitaciones:
https://f-droid.org/es/packages/com.termux/
Termux, es una distribución basada en Debian, diseñada en su versión ARM64, y cuenta con varias opciones que nos pueden ayudar a la idea de ejecutar un servidor, como que podemos activar el Wakelock desde notificaciones, así evitando que la aplicación se cierre y podamos mantener nuestros servicios activos.

Lo principal es elegir qué servicio pretendemos alojar en nuestro dispositivo, ya sea alojamiento de archivos, ejecutar un servidor de Minecraft, alojar música de alta fidelidad o algo más complejo.

NOTA: Es ideal tener conocimientos en el manejo de sistemas GNU/Linux para este estilo de proyectos.

Una vez tengamos instalado Termux en nuestro dispositivo, veamos algunas de las opciones que disponemos y como podemos ejecutarlas:

Servidor SSH

Este servicio es recomendable instalarlo independiente del servidor que pensáramos hacer, debido a que nos facilitará el manejo del dispositivo a través de un computador, o nuestro celular en caso de que consideremos necesario tener acceso 24 horas a nuestro servidor desde una terminal.

Para esto, inicialmente debemos actualizar el sistema con los comandos:

Una vez contemos con nuestro sistema de ficheros actualizado, podemos instalar openssh:

apt install openssh

Una vez esté instalado, podemos configurar una contraseña si lo vemos necesario, por lo general recomiendo solo manejar el servicio de ssh a nivel local y cuando sea necesario configurar algo en el servidor, por tanto, no veo necesario una contraseña, pero en caso de que si, solo deben asignar una contraseña al usuario con el comando passwd.

El protocolo se inicia con el comando

sshd

Y a diferencia de el protocolo de computador, se abre en el puerto "8022" por defecto, para conectarnos desde nuestro computador, se utilizará el siguiente comando (nota: sea Windows nuestro computador, abriremos este comando en PowerShell):

ssh <IP DEL DISPOSITIVO> -p 8022

Servidor de Archivos

Por lo general para este estilo de servidores se suelen utilizar sistemas simples como servidores FTP o SFTP, si requerimos de algo más sofisticado como NextCloud, podríamos descargar su software desde la web y ejecutarlo en la terminal.

Explicaremos paso a paso como configurar desde un servidor FTP simple, a algo más complejo como ejecutar el servidor de NextCloud.

Pero antes de pasar a cada servidor, es necesario contar con nuestro sistema actualizado, asi que para evitar mencionarlo en cada sección, asumiremos que el usuario actualizó su sistema ejecutando los comandos:

FTP

Para la instalación de este servicio debemos inicialmente permitir que Termux acceda a los archivos internos del dispositivo, lo cual se hace con el comando:

termux-setup-storage

Posteriormente, instalaremos busybox para poder manejar nuestro servidor:

apt install busybox

Una vez contemos con Busybox instalado, es necesario que nosotros, nos ubiquemos en la carpeta que deseamos se manejen todos los archivos, o que tomemos nota de su ruta, entendamos que termux va a entender el almacenamiento interno de nuestro dispositivo como la ruta /sdcard/

Con eso en mente, el comando para empezar el servidor ftp, se realiza de la siguiente manera:

busybox tcpsvd -vE 0.0.0.0 2121 busybox ftpd -w <ruta a tu carpeta a compartir>

Luego, con cualquier cliente de FTP o desde los dispositivos en red de Windows (del administrador de archivos) puedes conectarte a este dispositivo.

La IP para conectarse es dada por el dispositivo, si necesitas confirmar cual es la IP del dispositivo, el comando ifconfig devolverá tal información, mientras que el puerto será el 2121.

Nextcloud

NextCloud suele ser el favorito para mucha gente que desea hostear una nube virtual desde casa, por lo general su proceso de instalación es sumamente sencillo, y la configuración del mismo también es fácil de llevar a cabo, cuenta con aplicación para poder conectarte al servidor desde otros dispositivos o un manejo desde la red local igualmente.

Iniciaremos instalando las dependencias del paquete:

apt install php wget unzip git php-gd mysqlite

Luego de esto, descargamos la última versión de Nextcloud directamente desde su web oficial:

wget https://download.nextcloud.com/server/releases/latest.zip

Posterior a esto, descomprimiremos la última versión:

unzip latest.zip

Accederemos a la carpeta en donde se descomprime:

cd nextcloud

Y por último, ejecutaremos con php el servidor para que se inicie en el puerto 8080 (puerto por defecto para protocolos web en muchas ocasiones):

php -S 0.0.0.0:8080

Finalmente, accederemos desde el navegador y configuraremos el servicio de Nextcloud desde la web que esto genera, la cual estará dada por la IP del dispositivo en su puerto 8080, recordemos que esto es un protocolo http y no https.

Servidor de Música

Para el manejo de la música, en general siempre ha sido un inconveniente para los usuarios que les gusta la música de alta fidelidad o formato FLAC, porque si bien hay paginas donde descargarla, alojarla siempre es complicado, tener unas cuantas canciones puede pesar incluso 10 GB de almacenamiento, por eso el interés particular en alojar música online y también la rentabilidad de los servicios de streaming como Apple Music, pero a estos mismos suele faltarle mucha de la música que uno necesita.

Por esto mismo, la solución que tomamos algunas personas es alojarla en servidores que nos permitan mantener la comodidad de un buen reproductor de música y a la vez no perder la fidelidad que implica el formato FLAC.

Para esto, se suele utilizar Navidrome, una solución rápida de configurar y muy útil, que genera un servidor de Subsonic, compatible con miles de aplicaciones como puede ser la reconocida aplicación para escuchar música Pixel Player.

Para esto, simplemente debemos instalarlo en nuestro Termux con el comando:

apt install navidrome

para ejecutarlo solo debemos poner el comando:

navidrome

Su configuración completa puedes encontrarla en su documentación oficial, pero su funcionamiento es bastante simple y por lo general con esto basta, al ejecutar el comando el te indica en que puerto y en que IP se está ejecutando por lo general.

Servidor de Minecraft

Configurar un servidor de Minecraft una vez se cuenta con una terminal GNU/Linux es algo relativamente sencillo, sus servidores están pensados para ejecutarse en cualquier sistema operativo, pero es cierto que no genera la mayor de las dificultades para este sistema.

Usaremos un Script que nos automaticé la obtención de versiones, ya sean modificadas o Vanilla, dependencias y configuración de EULA para evitar todo ello, pero si se desea la instalación de un servidor dedicado sin ejecución de lo mismo, puede leer la documentación oficial de como ejecutar un servidor de Minecraft en GNU/Linux, y obtendrá un resultado igual si se usa una guía para alojar el servidor en Debian.

El script que usaremos es el dado a continuación:

curl -s -o ~/x https://raw.githubusercontent.com/ramide1/mc-server-termux/main/install

Posterior a descargarlo, le daremos permisos de ejecución:

chmod +x x

Y lo ejecutaremos:

./x

El script nos pedirá que le indiquemos varias cosas, es recomendable configurar una ruta de instalación que recordemos, después de terminar la instalación o para terminar el proceso de ejecución del servidor recordemos que se utiliza la combinación de teclas "CTRL + C", y en caso de no recordar la ruta, puedes ejecutar pwd una vez terminada la instalación y el te dará la misma. El comando mcserver iniciará automáticamente el servidor, el cual estará alojado en la misma IP y recuerda que en server.properties encontraremos la opción de habilitar a los usuarios que no jueguen en versiones de Minecraft compradas desactivando la opción de online-game y poniendo su valor en false.

El Github del script dado es:
https://github.com/ramide1/mc-server-termux

En caso de tener dudas, revisar su README.

Para acceder a sus servicios fuera de red, leer Conexión fuera de LAN.