Montar un servidor Git en Synology NAS y respaldarlo con Hyper Backup

Usar Synology NAS como servidor Git ligero y configurar Hyper Backup para proteger los repositorios.

Synology NAS puede funcionar como un servidor Git privado y ligero. Para proyectos personales o equipos pequeños suele ser suficiente: los repositorios quedan dentro de la LAN, el acceso se gestiona con cuentas del NAS y los datos pueden protegerse con las herramientas de copia de seguridad de Synology.

Esta nota resume la configuración básica y el flujo de respaldo con Hyper Backup.

Instalar Git Server

Abre Package Center en Synology DSM e instala el paquete Git Server.

Después de instalarlo, abre Git Server y permite que los usuarios necesarios usen Git por SSH. La cuenta del NAS debe tener acceso SSH y permiso sobre la carpeta donde se guardarán los repositorios.

Preparar El Directorio De Repositorios

Crea una carpeta compartida o un subdirectorio para los repositorios Git, por ejemplo:

1
/volume1/git

Dentro de esa carpeta, crea repositorios bare:

1
git init --bare project.git

Un repositorio bare no tiene working tree. Es el formato adecuado para usarse como remoto.

Conectar Desde Un Cliente

Desde otra máquina, clona el repositorio por SSH:

1
git clone user@nas-ip:/volume1/git/project.git

También puedes añadirlo como remoto en un proyecto local existente:

1
2
git remote add origin user@nas-ip:/volume1/git/project.git
git push -u origin master

Si SSH usa un puerto no estándar, configúralo en SSH o usa una URL remota personalizada.

Permisos

Asegúrate de que el directorio del repositorio pertenece al usuario o grupo correcto. Si varios usuarios necesitan acceso, colócalos en un grupo común y otorga permisos de lectura/escritura sobre la carpeta Git.

Si el push falla, revisa primero:

  • si el inicio de sesión SSH funciona;
  • si el usuario está autorizado en Git Server;
  • si la carpeta tiene permiso de escritura;
  • si el repositorio fue creado como bare;
  • si la URL remota es correcta.

Copia De Seguridad Con Hyper Backup

Cuando los repositorios estén en el NAS, configura Hyper Backup para respaldar la carpeta Git.

En Hyper Backup:

  1. Crea una nueva tarea de backup.
  2. Selecciona el destino, como otro disco, otro NAS, un servidor rsync o almacenamiento cloud.
  3. Selecciona la carpeta de repositorios Git.
  4. Configura la programación.
  5. Activa la retención de versiones si la necesitas.

Esto protege los datos ante fallos de disco, borrados accidentales o pushes incorrectos.

Notas De Restauración

Al restaurar, recupera el directorio completo del repositorio bare. Después prueba:

1
git clone user@nas-ip:/volume1/git/project.git

Si el clone funciona, el repositorio vuelve a estar disponible.

Configurar Hyper Backup hacia un servidor rsync en Ubuntu

El otro dispositivo es solo un servidor Ubuntu y tiene instalado rsync. Esto no significa que pueda usarse directamente como objetivo de Hyper Backup. Cuando Hyper Backup utiliza el protocolo rsync normal, necesita conectarse al rsync daemon que se ejecuta en Ubuntu; el demonio también debe definir un módulo grabable.

El elemento más común que se completa incorrectamente es “carpeta compartida”: no es la ruta absoluta de Ubuntu, sino el nombre del módulo definido entre corchetes en /etc/rsyncd.conf. Este artículo toma la escritura de la copia de seguridad en /srv/hyperbackup de Ubuntu como ejemplo para explicar el proceso completo desde la configuración del servidor hasta la verificación de Synology.

Primero aclare el tipo de destino de Hyper Backup

Al crear una nueva tarea de copia de seguridad de datos en Hyper Backup, si el destino no es Synology, no seleccione “Servidor Synology rsync”. En su lugar, seleccione:

1
rsync 兼容服务器

Este artículo utiliza el modo demonio rsync y el puerto TCP predeterminado es 873. Es adecuado para LAN confiable; Si desea transmitir a través de redes públicas, dé prioridad al uso de soluciones de cifrado VPN, Tailscale o SSH y no exponga 873 directamente a Internet.

Prepare el directorio y la cuenta de ejecución en el lado de Ubuntu

Después de iniciar sesión en Ubuntu, instale rsync y cree una cuenta del sistema que no permita iniciar sesión y solo se use para escribir en el directorio de respaldo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo apt update
sudo apt install -y rsync

sudo useradd --system \
  --home /nonexistent \
  --shell /usr/sbin/nologin \
  rsyncbackup

sudo mkdir -p /srv/hyperbackup
sudo chown -R rsyncbackup:rsyncbackup /srv/hyperbackup
sudo chmod 750 /srv/hyperbackup

Aquí rsyncbackup es la cuenta utilizada por el demonio rsync al escribir archivos localmente en el servidor. No le dé un shell interactivo y no permita que todos puedan escribir en el directorio de respaldo.

Crear módulo demonio rsync

Editar archivo de configuración:

1
sudo nano /etc/rsyncd.conf

Escriba lo siguiente; el segmento de red, el nombre de usuario y la ruta deben reemplazarse según su entorno:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
uid = rsyncbackup
gid = rsyncbackup
use chroot = no
max connections = 4
timeout = 600
log file = /var/log/rsyncd.log
pid file = /run/rsyncd.pid

[hyperbackup]
    path = /srv/hyperbackup
    comment = Synology Hyper Backup
    read only = no
    list = yes
    auth users = knightli
    secrets file = /etc/rsyncd.secrets
    hosts allow = 192.168.8.0/24
    hosts deny = *

[hyperbackup] es un módulo rsync. Asigna el hyperbackup visto por el cliente al directorio real /srv/hyperbackup en el servidor.

Elemento de configuración Función
[hyperbackup] El nombre de la “Carpeta compartida” que se seleccionará en Hyper Backup
path La ubicación en Ubuntu donde realmente se guardan los datos de la copia de seguridad
read only = no Permitir que Hyper Backup escriba
auth users Nombre de usuario de autenticación del protocolo rsync, no usuario de inicio de sesión de Ubuntu
hosts allow Segmento de red al que se le permite acceder al servicio; se puede limitar aún más a una única IP de Synology

Si Synology está fijo en 192.168.8.100, puede cambiar hosts allow Cambie esta dirección para reducir la posibilidad de que otros dispositivos en la LAN detecten el servicio.

Establecer la contraseña del protocolo rsync

La cuenta de autenticación del demonio rsync y la cuenta de inicio de sesión de Linux pueden no tener ninguna relación. Cree un archivo de contraseña:

1
sudo nano /etc/rsyncd.secrets

Presione 用户名:密码 para escribir una cuenta por línea, por ejemplo:

1
knightli:Abcd123456789

Restringir permisos de lectura después guardando:

1
2
sudo chmod 600 /etc/rsyncd.secrets
sudo chown root:root /etc/rsyncd.secrets

No envíe este archivo a Git ni reutilice su contraseña de inicio de sesión de Ubuntu. La “Cuenta de usuario” y la “Contraseña” en la página de Hyper Backup deben completarse con los valores definidos aquí.

Inicie y confirme el demonio rsync

Las unidades systemd proporcionadas por diferentes versiones de Ubuntu o métodos de instalación pueden ser ligeramente diferentes. Primero intente iniciar el servicio proporcionado por el paquete de software:

1
2
3
sudo systemctl enable --now rsync
sudo systemctl restart rsync
sudo systemctl status rsync

Confirme el monitoreo del puerto:

1
sudo ss -lntp | grep ':873'

Normalmente verá resultados similares:

1
LISTEN 0 5 0.0.0.0:873

Si se le solicita rsync.service not found, primero verifique las unidades realmente disponibles en el sistema:

1
systemctl list-unit-files | grep -i rsync

También puede usar el siguiente comando para verificar temporalmente si se puede iniciar la configuración:

1
sudo rsync --daemon --config=/etc/rsyncd.conf

El inicio temporal no se reanudará automáticamente después de reiniciar; Después de confirmar que el método manual está disponible, la configuración de inicio del servicio o socket correspondiente debe completarse en función de los resultados de list-unit-files en lugar de depender de la ejecución manual durante mucho tiempo.

El firewall solo permite Synology

Si Ubuntu tiene UFW habilitado, asumiendo que la IP de Synology es 192.168.8.100, solo permítale acceder a TCP 873:

1
2
sudo ufw allow from 192.168.8.100 to any port 873 proto tcp
sudo ufw status numbered

También verifique el grupo de seguridad del servidor en la nube, el enrutador ascendente o la ACL de VLAN. Cuando ss muestra escucha y Synology aún no puede conectarse, el problema suele estar en una de estas políticas de red.

Primero verifique el módulo y escriba

en la línea de comando. No repita primero la prueba y error en Hyper Backup. Primero enumere los módulos de otra computadora Linux o terminal Synology SSH:

1
rsync rsync://[email protected]/

Después de ingresar la contraseña establecida en /etc/rsyncd.secrets, debería ver:

1
hyperbackup    Synology Hyper Backup

Intente escribir un archivo pequeño nuevamente:

1
2
3
4
echo test > /tmp/rsync-test.txt

rsync -av /tmp/rsync-test.txt \
  rsync://[email protected]/hyperbackup/

Confirme en Ubuntu:

1
ls -l /srv/hyperbackup/

Si puede ver rsync-test.txt, significa que se han abierto el número de cuenta, la contraseña, el módulo, los permisos del directorio y la ruta de la red. Este archivo se puede eliminar una vez completada la prueba.

Cómo completar la página Hyper Backup

Regrese a la página de destino rsync de Synology Hyper Backup y complete lo siguiente.

Campos de página Valores de ejemplo Descripción
Tipo de servidor rsync compatible server El destino es un servidor Ubuntu normal, no otro sistema Synology
IP del servidor 192.168.8.205 Dirección LAN de Ubuntu
Cifrado de transmisión Puedes apagarlo primero en la LAN Apáguelo y luego use rsync/TCP 873 normal; no lo utilices en redes públicas
Puerto 873 puerto predeterminado del demonio rsync
Cuenta de usuario knightli Corresponde a auth users
Contraseña Contraseña en el archivo de contraseña rsync No contraseña de inicio de sesión de Ubuntu
Carpeta compartida hyperbackup Corresponde a [hyperbackup], no es una ruta absoluta
Directorio synology-nas Subdirectorio recién creado en el directorio del módulo

Si el directorio se llena con synology-nas, los datos finales se escribirán:

1
/srv/hyperbackup/synology-nas/

No rellene la “carpeta compartida” con /srv/hyperbackup. El cliente solo puede ver el nombre del módulo a través del protocolo rsync, y la ruta real está determinada por la configuración del lado del servidor.

Preguntas frecuentes Solución de problemas

Hyper Backup no puede ver la carpeta compartida

Primero ejecute el comando de enumeración del módulo. Si no hay hyperbackup:

  1. Compruebe si /etc/rsyncd.conf realmente tiene [hyperbackup];
  2. Verifique si el servicio se ha reiniciado;
  3. Verifique list = yes y hosts allow si se debe bloquear Synology;
  4. Verifique /var/log/rsyncd.log para ver si hay errores de certificación o de ruta.

Se puede conectar pero indica un error de autenticación

Confirme que el nombre de usuario en el lado izquierdo de auth users es exactamente el mismo que /etc/rsyncd.secrets; el archivo de contraseña debe ser 用户名:密码 y el permiso es 600. Preste especial atención a la contraseña de rsync requerida para Hyper Backup, no a la contraseña de inicio de sesión de SSH o Ubuntu.

Autenticación exitosa pero no se puede escribir

Verifique read only = no en el módulo y luego verifique los permisos del directorio local:

1
2
sudo namei -l /srv/hyperbackup
sudo ls -ld /srv/hyperbackup

rsyncbackup Debe tener permisos de recorrido y escritura en la ruta. Si el registro muestra que el disco está lleno, montaje de solo lectura o se produce un error en el sistema de archivos, el problema de almacenamiento debe solucionarse primero para evitar fallas repetidas en la tarea de respaldo.

Si se debe activar el cifrado de transporte

La autenticación con el demonio rsync normal no equivale a un cifrado de transporte completo. La LAN confiable se puede cerrar temporalmente según la evaluación de riesgos; cuando pase por Internet, Wi-Fi público o segmentos de red que no sean de confianza, utilice VPN, Tailscale o cambie a la transmisión cifrada SSH compatible con Hyper Backup. Independientemente del método de transporte utilizado, la tarea de copia de seguridad en sí debería permitir la retención de la versión y ejercicios de recuperación regulares.

Resumen

Synology Git Server es sencillo, pero suficiente para muchos repositorios privados. Los puntos importantes son acceso SSH, permisos correctos, repositorios bare y una tarea fiable de Hyper Backup.