¿Cómo convertir una Raspberry Pi en un servidor de archivos?

¿Siempre has soñado con tener un NAS familiar con tus copias de seguridad y películas? ¿Pero no tienes necesariamente el presupuesto para ello?
La Raspberry Pi te permite hacer eso a un costo menor, y te daré todos los detalles en este post.

¿Cómo convertir tu Raspberry Pi en un servidor de archivos?
Para utilizar una Raspberry Pi como servidor de archivos, existe un servicio llamado Samba.
Una vez instalados y configurados correctamente, los archivos de la Raspberry Pi pueden compartirse con todas las personas de la misma red.

Ahora veremos en detalle una instalación típica, es decir, cómo instalar Samba en Raspberry Pi OS y luego configurarlo.

Y luego veremos cómo habilitar DLNA para que tu Raspberry Pi sea accesible desde tu TV.
También te daré algunos consejos para mejorar esta instalación.

Puedes usar el almacenamiento que quieras para intentar este tutorial, pero si realmente quieres construir un NAS fiable con una Raspberry Pi, te recomiendo que busques algo como este HAT en Amazon, para conectar discos SATA a él, y apilarlos, para que puedas tener redundancia.

¿Por qué utilizar una Raspberry Pi como servidor de archivos?

Uso del servidor de archivos

Un servidor de archivos se utiliza para almacenar y compartir archivos en la red local.
Este servidor te permite, por ejemplo, crear copias de seguridad automáticas de su ordenador en este servidor.

También puedes almacenar archivos que ocupan espacio en tu ordenador pero que no son críticos:
películas
– software
Archivos ISO

Ventajas de Raspberry Pi

Un servidor NAS estándar, costará más de 300 dólares para el nivel básico, hará ruido y consumirá mucha electricidad.

Una Raspberry Pi te costará menos de 50 dólares y no gastará casi nada de energía.
Al final tendrás que añadir el precio de un disco duro si necesitas mucho espacio, pero es razonable.
Una unidad USB de 2TB en él y estás listo para ir (compruebe este en Amazon, la mejor relación calidad-precio).

Esto te permite añadir un pequeño servidor de almacenamiento de copias de seguridad a un coste menor mientras aprende cómo funciona.

¡Hola!
Inscríbete para recibir mis últimos tutoriales cada semana.

Añadir espacio en disco a la Raspberry Pi

Si sigues esta guía sólo para hacer pruebas, no es necesario que lea este párrafo.
Se trata de personas que no tienen suficiente espacio en su tarjeta SD y que quieren tener más espacio libre en el disco.

Una tarjeta SD más grande

La primera posibilidad es utilizar una tarjeta SD de mayor capacidad.

Es posible que tengas una tarjeta SD de 8 o 16 GB en este momento, por lo que va a ser un poco limitado.
Pero hay tarjetas SD que llegan hasta 1 TB y por un precio razonable (este por ejemplo).
Puede valer la pena comprar una tarjeta SD más grande antes de seguir este tutorial.

SanDisk ofrece ahora tarjetas SD de hasta 1TB

Siéntete libre de revisar mi página de recursos (en inglés) si quieres saber qué tarjeta SD recomiendo.

Si eliges esto, no hay nada más que hacer técnicamente que reemplazar la tarjeta SD en la unidad. Y luego retomar el resto de este post.

Disco duro USB

Otra posibilidad es conectar una unidad USB externa a tu Raspberry Pi.

Con el formato de 2,5″ deberías poder encontrar discos de hasta al menos 2TB, lo que empieza a ser una mejor configuración para compartir archivos (Estoy usando este por ejemplo).
También te da la ventaja de poder llevarlo contigo aunque no lleves tu Raspberry Pi.
Y así poder leer el contenido en cualquier ordenador.

La mayoría de las veces su disco duro será reconocido y montado directamente por Raspberry Pi OS.
Se creará un punto de montaje en /media/pi/NAME.
El nombre depende del nombre de su disco duro.

Si tienes algún problema, te recomiendo formatear tu disco en un formato de archivo Linux (EXT4 por ejemplo) y volver a intentarlo.
Los comandos fdisk y mount también podrían servirte en los peores casos.
Aquí explico todo si necesitas ayuda sobre formatear y montar una unidad USB en Raspberry Pi.

¿Un disco duro SATA?

Si quieres algo profesional, puedes añadir una tarjeta para conectar discos duros SATA a tu Raspberry Pi.
Esta tarjeta te permitirá acercarte a un NAS clásico con discos más rápidos y mejor integrados y la posibilidad de gestionar la seguridad con RAID por software.

Esta implementación es otro proyecto, así que te dejo que investigues y vuelvas aquí una vez que tus discos sean funcionales 🙂

Instalar Raspberry Pi OS

Así que tenemos nuestros requisitos previos completados:
– una tarjeta SD
– posiblemente almacenamiento adicional

Descargar Raspberry Pi OS

En primer lugar, tendrás que descargar la última versión de Raspberry Pi OS desde el sitio web oficial.

Si tu objetivo es sólo tener un servidor de archivos, la versión lite es suficiente, y ahorrarás algo de espacio en disco y CPU/ram.
De todos modos haremos todo el resto de este tutorial con SSH, para que no cambie.

Descarga la imagen y continúe

Flashear una tarjeta SD con Raspberry Pi OS

Recomiendo el uso de Etcher.
Si aún no lo has instalado, consíguelo desde the official website.
Es una herramienta que permite flashear una tarjeta SD fácilmente en Linux, Mac o Windows.

  • Inicia Etcher
  • Selecciona la ubicación de la imagen del Raspberry Pi OS
  • Elige tu tarjeta SD
  • Haz clic en Flash

Una vez que la tarjeta SD esté lista, expúlsala e insértala en tu Raspberry Pi.

Primer Arranque

La instalación es automática, tienes que iniciar tu Raspberry Pi, y Raspberry Pi OS se iniciará.

Si eliges el Pi Desktop, aparecerá un asistente de bienvenida:

  • Elige tus preferencias lingüísticas
  • Cambia la contraseña por defecto
  • Conecta al Wi-Fi si es necesario
  • Acepta las actualizaciones del sistema
  • Reiniciar la Raspberry Pi

Si todo ha funcionado bien, sigue adelante.
En caso contrario, será necesario al menos conseguir conectar la red y cambiar la contraseña (el siguiente párrafo puede ayudarte).

Si tienes la versión Lite, tienes que hacer lo mismo dentro de raspi-config.
Lo explico todo aquí si necesitas ayuda.

Habilitar SSH

SSH es un protocolo de conexión remota segura, que permite lanzar comandos desde otro ordenador de la red.

Por defecto, el servicio no se inicia automáticamente en Raspberry Pi.
Así que vamos a SSH y conectarnos a él antes de continuar.

Para activar SSH, abre un terminal y escriba este comando:
sudo service ssh start

Una vez instalado SSH conéctate a él (ssh pi@IP).
Si esto no es fácil para ti, eche un vistazo a este artículo que te guiará a través de esto.

Instalar el servidor de archivos

Ahora que Raspberry Pi OS está listo vamos a crear el servidor de ficheros.

Organización del sistema de archivos

Dependiendo de lo que hayas elegido inicialmente como tipo de almacenamiento, las rutas cambiarán un poco más tarde.
Así que voy a asumir que nuestro espacio de almacenamiento disponible está en /media/share
Sustitúyelo por la carpeta correcta que ha creado.

Si has elegido compartir sus archivos directamente en la tarjeta SD, crea una nueva carpeta de su elección (/media/share por ejemplo):
sudo mkdir /media/share

En otros casos, debes crear un punto de montaje en /media/pi/share o algo parecido.
Más información aquí sobre cómo montar unidades USB en Raspberry Pi.

Instalar Samba

Empieza por comprobar si hay actualizaciones:
sudo apt-get update
sudo apt-get upgrade

A continuación, instala Samba:
sudo apt-get install samba

Una vez que samba está instalado, deberías poder acceder a la Raspberry Pi con el explorador de archivos:

  • Windows:  \\X.X.X.X
  • Linux/Mac:  smb://X.X.X.X

Sustituye X.X.X.X por la dirección IP de la Raspberry Pi.

Pero por ahora, no vemos una carpeta compartida, y no podemos crear archivos.
Vamos a ver cómo arreglar esto.

Configurar Samba para un recurso compartido invitado

Samba ya está disponible, vamos a la configuración.
La configuración dependerá de lo que quieras hacer, pero te explicaré cómo crear una compartición básica:

  • Dar todos los permisos a la carpeta
    sudo chmod 777 /media/share
  • Edite el archivo /etc/samba/smb.conf
    sudo nano /etc/samba/smb.conf
  • Add these lines at the end of the file
    [SharePi]
    comment = RaspberryPi
    public = yes
    writeable = yes
    browsable = yes
    path = /media/share
    create mask = 0777
    directory mask = 0777
  • Guardar y dejar (CTRL+X)
  • Reinicie Samba para aplicar los cambios:
    sudo service smbd restart

Prueba de acceso

Ahora tenemos una carpeta compartida accesible para todos sin necesidad de autenticación.
Para comprobar que esto funciona, conéctate a la unidad de red:

  • Windows: Abrir el explorador de archivos (Win + E) y escriba la siguiente dirección: \\X.X.X.X\SharePi
  • Linux/Mac: Abre el explorador de archivos y escribe la siguiente dirección: smb://X.X.X.X/SharePi

Asegúrate de que la carpeta se abre, y que puedes crear archivos o carpetas, y luego eliminarlos sin problemas de permisos.
Si es así, podemos seguir adelante.

Permisos

Por ahora, nuestra cuota es accesible para cualquiera, incluso sin contraseña.
Si no quieres que tu hermana pequeña borre tu historial de copias de seguridad, tendrás que prohibir el acceso a los invitados.

Configuración

Para solicitar una contraseña al conectarte, edita la opción pública en /etc/samba/smb.conf:

[SharePi] 
comment = RaspberryPi
public = no
writeable = yes
browsable = yes 
path = /media/share
create mask = 0777
directory mask = 0777

También debes decirle a samba que el usuario tiene permiso para conectarse a los recursos compartidos:
sudo smbpasswd -a pi

A continuación, reinicia Samba:
sudo service smbd restart

Si intentas conectarte de nuevo, debería abrirse una ventana de autenticación.
Si no es así, comprueba que no estás ya conectado en modo invitado (primero debes desconectarte, depende de tu OS, así que reinicia tu ordenador si no lo encuentras).
En Ubuntu, tuve que hacer clic en el botón «Eject» delante del montaje en el explorador de archivos.

Añadir otro usuario

Si es necesario, puedes añadir otras cuentas de usuario con diferentes contraseñas:

  • Crear un nuevo usuario:
    sudo adduser yourname
  • Permitir el acceso a samba para ello:
    sudo smbpasswd -a yourname

Ahora puedes conectar con cualquiera de los usuarios.

Pero recuerda que ponemos los derechos de todos en la carpeta /media/share, así que todos los usuarios que crees tendrán los mismos permisos.
Si, por ejemplo, quieres que sólo el usuario «pi» tenga acceso al recurso compartido SharePi, tendrás que cambiarlo así:

chown pi /media/share -R
chmod 700 /media/share -R

A continuación, puedes crear varios recursos compartidos cambiando los permisos de los usuarios para cada uno de ellos.

Por cierto, dependiendo del número de usuarios y del tipo de archivos que alojes en tu Raspberry Pi, instalar un antivirus en ella puede ser algo que valga la pena considerar (en inglés). Linux no es el sistema operativo más expuesto, pero puede proteger a los usuarios de Windows.

Convierte la Raspberry Pi en un servidor multimedia

Ahora que tenemos una ubicación de almacenamiento en red, ¿por qué no la utilizamos para gestionar nuestras descargas y hacerlas accesibles desde nuestro televisor?

Servidor de torrents

Probablemente conozcas el protocolo Torrent, que es un protocolo muy conocido para realizar descargas.
Vamos a ver cómo instalar un servidor Torrent en nuestra Raspberry Pi para automatizar las descargas.

Crea una nueva carpeta para descargar torrents:
sudo mkdir /media/share/torrents
sudo chmod 777 /media/share/torrents

Rtorrent

  • Empieza por instalar rtorrent y screen:
    sudo apt-get install rtorrent screen
  • A continuación, crea su archivo de configuración:
    nano ~/.rtorrent.rc
  • Pega estas líneas:
    directory = /media/share/torrents
    Puedes añadir todas las opciones que te interesen. Aquí encontrará encontrar una lista aquí
  • Iniciar rtorrent:
    screen -s /bin/bash rtorrent
  • Salir de la pantalla sin cerrar rtorrent con CTRL+A y CTRL+D
  • Vuelve a la pantalla con screen -r

La pantalla permite dejar correr rtorrent incluso cuando se desconecta.

Interfaz web

Ahora añadiremos la interfaz de inundación que nos permitirá gestionar todo esto desde un ordenador remoto.

  • En primer lugar, necesitas instalar npm:
    sudo apt-get install npm
  • Luego añade el nod-gyp mod:
    sudo npm install -g node-gyp
  • Ahora, clona el repositorio git de la interfaz web de flood así:
    cd /opt
    sudo git clone https://github.com/jfurrow/flood.git
  • Y ejecuta estos comandos para instalarlo e iniciarlo:
    cd /opt/flood
    sudo npm install --unsafe-perm
    sudo npm run build
    sudo npm start

Este paso le llevará un tiempo, tómate un café.

Una vez finalizada la instalación e iniciada la aplicación, puedes acceder a la interfaz en http://X.X.X.X:3000.

Si necesitas información adicional sobre las opciones de configuración, puedes consultar su página de GitHub.

DLNA

DLNA es una tecnología que permite reproducir un flujo de vídeo en un dispositivo desde un archivo almacenado en otro.
Normalmente, puedes reproducir una película almacenada en tu Raspberry Pi desde tu smart TV o PS4.

El paquete que lo hace posible en Debian se llama minidlna.
Así que lo instalaremos y configuraremos para transmitir el contenido de nuestra carpeta compartida:

  • Instala el paquete:
    sudo apt-get install minidlna
  • Edita el archivo de configuración:
    sudo nano /etc/minidlna.conf
  • Establece la carpeta compartida en la línea que comienza con media_dir=
    media_dir=A,/media/share
    Puedes ponerla como una subcarpeta como /media/share/movies si quieres
  • Inicia el servicio:
    sudo service minidlna start

A continuación, MiniDLNA escaneará su carpeta y la pondrá a disposición de todos sus dispositivos compatibles.

Mejora tu servidor de archivos

Distribución del NAS

Si no quieres gestionar todo esto con complicados comandos y archivos de configuración, hay una solución que te puede interesar.
De hecho, existen distribuciones dedicadas a la gestión de un servidor de archivos, que permiten configurar todo a través de una interfaz web.

Este es el caso de OpenMediaVault (en inglés) que está disponible para Raspberry Pi.
Encontrará las imágenes para descargar en SourceForge.
Edit: Eso ya no está disponible en Sourceforge, ahora puedes instalarlo en Raspberry Pi OS siguiendo esta guía (en inglés). Probablemente voy a hacer un artículo sobre él pronto.

Una vez instalado en una tarjeta SD, dispondrás de una interfaz que te permitirá gestionar sus recursos compartidos, sus usuarios, etc…

RAID o copias de seguridad

En este artículo hablamos sobre el uso de este servidor de archivos como copia de seguridad.
Todavía hay que evitar utilizarlo como servidor de almacenamiento primario.
Copiar todas tus fotos de los últimos diez años sin almacenarlas en otro lugar no parece una excelente idea.

Tanto si has elegido la opción de la tarjeta SD como la del disco duro USB, no son métodos de almacenamiento muy fiables.
Un fallo de hardware llega rápidamente, y la mayoría de las veces perderás todo el contenido.

Si quieres convertirlo en un servidor de almacenamiento primario, no debes olvidar la seguridad.
Es posible instalar múltiples discos en un RAID (con replicación de datos) en Raspberry Pi, ya sea en USB o con una tarjeta SATA adicional.

Pero lo más sencillo es quizás tener copias de seguridad de este servidor en otro lugar.
Podemos imaginar una segunda tarjeta SD en la que se copie regularmente el contenido de la primera. O una segunda Raspberry Pi que sirva de copia de seguridad.

Conclusión

Espero que todo esto te ayude a montar tu servidor de archivos en casa.

En resumen, es sencillo crear un sistema de intercambio de archivos accesible para todos en Raspberry Pi.
Sin embargo, a menudo es necesario dedicar un poco más de tiempo a añadir las opciones necesarias para implementar lo que se desea con éxito.

En cualquier caso, tienes aquí una buena base de información para crear un servidor de intercambio, un servidor de torrents o un servidor multimedia.

Publicaciones Similares