SSD Nodes Learn 🎉 VPS desde $4.99/mes
Guías Matt ConnorPor Matt Connor

Syncthing o Nextcloud para sincronizar archivos en una VPS

Syncthing sincroniza entre pares sin copia central; Nextcloud ofrece servidor, cuentas, enlaces y acceso web. Elija según sus clientes y recuerde que ninguno es una copia de seguridad.

Syncthing frente a Nextcloud: la diferencia que determina la elección

Syncthing frente a Nextcloud se reduce a una diferencia estructural, y todo lo demás se deriva de ella. Syncthing funciona entre pares. Cada dispositivo contiene la carpeta completa y ninguna copia es la fuente autorizada. Nextcloud funciona como servidor. Una máquina contiene los archivos, las cuentas de usuario controlan el acceso y los clientes descargan copias.

Por eso Syncthing no tiene enlaces para compartir ni una vista web de los documentos. No existe una copia central que servir, así que el navegador no tiene nada que solicitar. Nextcloud ofrece ambas funciones, pero para ello necesita un entorno de ejecución de PHP, un servidor de bases de datos, un servidor web y un reverse proxy para TLS (seguridad de la capa de transporte).

Elija Syncthing cuando todos los dispositivos implicados sean suyos. Elija Nextcloud cuando un navegador u otra persona necesite acceder a los archivos.

Qué hace realmente la VPS en cada diseño

Una VPS con Nextcloud almacena tus datos. Si eliminas la copia local del portátil, el archivo sigue en el servidor porque el servidor siempre fue la copia original.

Una VPS con Syncthing desempeña una función diferente: es un nodo siempre activo. Syncthing transfiere los datos directamente entre dos dispositivos que están conectados al mismo tiempo. Por tanto, dos portátiles que nunca están encendidos a la vez no pueden sincronizarse, por mucho que esperes. Añade un tercer nodo en una VPS que nunca se apaga y el problema desaparece. El portátil A envía los cambios a las 09:00, el portátil B los recibe a las 22:00 y la VPS conserva la carpeta entre ambas operaciones.

Es una función realmente útil y una afirmación más limitada que «alternativa a Dropbox». Syncthing nunca te proporcionará un enlace para enviárselo a un cliente. Si ese es tu requisito, detente aquí y lee la comparativa de alternativas autoalojadas a Dropbox.

El coste de cada opción en un VPS pequeño

Syncthing es un único binario de Go. Escucha en un socket, mantiene un índice de los archivos en una base de datos local y eso constituye toda la pila. Desde la versión 2.0, ese índice usa SQLite en lugar de LevelDB, por lo que actualizar una instalación 1.x ejecuta una migración única en el primer inicio. En un conjunto grande de carpetas, la migración puede tardar mucho tiempo. Espere a que termine. No es necesario instalar nada más ni aplicar parches a ningún otro componente.

Nextcloud necesita más recursos. En agosto de 2026, Nextcloud 35 admite PHP 8.3 a 8.5 con MariaDB o PostgreSQL, servido mediante Apache 2.4 o nginx con php-fpm. El manual de administración recomienda "un mínimo de 512MB de RAM por proceso", y php-fpm ejecuta varios procesos de trabajo al mismo tiempo.

En un VPS de 1 GB, Syncthing funciona con margen y Nextcloud queda justo de recursos. Esto no convierte a Nextcloud en una opción incorrecta. Implica un compromiso mayor, con cuatro componentes que mantener actualizados en lugar de uno. La opción basada en contenedores de la guía de Nextcloud en un VPS sobre Docker, TLS y copias de seguridad es la forma menos problemática de gestionar esa carga.

Instalar Syncthing en el VPS

Ubuntu incluye un paquete syncthing, pero está muy por detrás de la versión publicada por el proyecto. Use el repositorio propio del proyecto.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
syncthing --version

syncthing --version debería mostrar una línea que empiece por syncthing v2. Si aparece v1, apt sigue prefiriendo el paquete de la distribución. Asigne una prioridad mayor al repositorio del proyecto e instale de nuevo.

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

Ejecútelo como un servicio del sistema con una cuenta de usuario normal, para que se inicie durante el arranque aunque no haya ninguna sesión iniciada.

sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.service

systemctl status debería mostrar active (running). Los archivos de configuración e índices se guardan en /home/youruser/.local/state/syncthing, y el archivo de configuración es config.xml. Las instalaciones creadas antes de Syncthing 1.27 los guardan en ~/.config/syncthing, así que compruebe ambas rutas antes de copiar datos entre máquinas.

A continuación, abra los puertos. Syncthing usa 22000/TCP para el protocolo de sincronización, 22000/UDP para su transporte QUIC y 21027/UDP para el descubrimiento local. El descubrimiento usa broadcast y multicast, que no atraviesan Internet, por lo que en un VPS sólo necesita los dos primeros.

sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status

ufw status debería mostrar ambas reglas. Si muestra Status: inactive, ufw no está filtrando nada y el firewall de red de su proveedor es el único que se aplica. Compruebe también ese panel, porque en la mayoría de los hosts es un control independiente. Si un dispositivo remoto se queda en Disconnected mientras el servicio está en ejecución, normalmente significa que uno de esos dos firewalls sigue cerrado.

Acceder a la GUI de Syncthing sin publicarla

La GUI web (interfaz gráfica de usuario) escucha en 127.0.0.1:8384 de forma predeterminada, por lo que sólo responde desde el propio servidor. Esta configuración predeterminada es una medida de protección, porque la GUI contiene una clave de API (interfaz de programación de aplicaciones) que puede modificar todas las rutas de carpetas del sistema.

No la exponga a Internet como primer paso. La documentación explica claramente qué implica enlazarla a una dirección de red: «especificar la dirección LAN de su equipo NO restringirá el acceso únicamente a los dispositivos de su red local». En su lugar, reenvíe el puerto mediante SSH desde su equipo portátil.

ssh -L 8384:127.0.0.1:8384 youruser@your.vps.example

Abra http://127.0.0.1:8384 en el navegador local mientras la sesión siga activa. El túnel se cierra con la sesión SSH, por lo que después no queda nada escuchando.

Si necesita que la GUI sea accesible directamente, configure primero las credenciales. El servidor no tiene navegador, así que debe hacerlo desde la línea de comandos.

sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service

-H es importante porque, sin él, sudo conserva el directorio personal de root y usted edita el config.xml equivocado. Un guion aislado como valor de contraseña hace que syncthing generate lea la contraseña desde la entrada estándar. Así, no queda registrada en el historial del shell y el valor se cifra antes de escribirlo en el archivo. Active HTTPS en la configuración de la GUI cuando pueda iniciar sesión.

Por qué Syncthing propaga los errores

La propia sección de preguntas frecuentes de Syncthing responde a la cuestión de las copias de seguridad: «Syncthing no es una buena aplicación de copia de seguridad porque todos los cambios realizados en los archivos (modificaciones, eliminaciones, etc.) se propagan a todos los dispositivos».

Si elimina por accidente una carpeta en su portátil, Syncthing funciona exactamente como está diseñado. Elimina esa carpeta en todas partes, en cuestión de segundos. Sincronizar significa mantener el mismo estado, incluido coincidir en que un archivo ya no existe.

El versionado de archivos es la medida de mitigación, pero está desactivado a menos que lo active. La documentación indica que el versionado «de forma predeterminada es "sin versionado de archivos"; es decir, no se conservan copias antiguas de los archivos». Hay cuatro estrategias disponibles para cada carpeta. Trash Can conserva una copia de cada archivo eliminado o reemplazado por un cambio remoto. Simple conserva un número determinado de versiones antiguas por archivo. Staggered reduce el historial a medida que envejece: conserva copias horarias durante un día, copias diarias durante un mes, y así sucesivamente. External delega cada decisión en un comando que usted escribe. Las copias antiguas se guardan en un directorio .stversions dentro de la carpeta compartida.

Configure Staggered en el peer del VPS y deje desactivado el versionado en los portátiles. De este modo, el peer siempre activo conserva el historial y los portátiles ocupan menos espacio.

Nextcloud gestiona esto mejor, pero tampoco es una copia de seguridad. Los archivos eliminados van a una papelera y la aplicación Versions conserva las ediciones, pero ambos mecanismos eliminan datos automáticamente a medida que se llena el disco. Si un proceso del portátil cifra los archivos, sincronizará esas versiones cifradas y las copias correctas desaparecerán según su propia política de retención.

Cualquiera de las dos herramientas necesita una copia de seguridad real por debajo: instantáneas creadas por un programa independiente, escritas en una ubicación a la que el cliente de sincronización no pueda acceder y restauradas al menos una vez para comprobar que la restauración funciona. La comparación entre restic y BorgBackup explica cuál conviene utilizar con el directorio de datos.

Diferencias entre los conflictos de ambas herramientas

Ambas herramientas crean un archivo de conflicto cuando los dos lados modifican el mismo archivo entre sincronizaciones. La diferencia está en quién lo ve.

Syncthing cambia el nombre de la copia perdedora a <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>. Pierde la copia con la fecha de modificación más antigua. Cuando las fechas son idénticas, pierde el dispositivo cuyo ID de dispositivo tiene el valor más grande en sus primeros 63 bits. La elección es arbitraria, pero el resultado es el mismo en todos los peers. Aquí aparece el comportamiento que suele resultar inesperado: esos archivos «se tratan como archivos normales después de crearse, por lo que se propagan entre dispositivos». Todos los peers reciben la copia en conflicto. Eliminarla requiere una sola eliminación que se sincroniza, pero primero la verá en todos sus equipos.

El cliente de escritorio de Nextcloud escribe <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>, por ejemplo mydata (conflicted copy 2018-04-10 093612).txt, y de forma predeterminada no carga ese archivo. El manual del cliente explica el motivo: la persona que realizó el cambio es la más adecuada para resolverlo, y mostrar el conflicto a otros usuarios sólo genera confusión. Establezca OWNCLOUD_UPLOAD_CONFLICT_FILES=1 en el entorno del cliente si desea el comportamiento contrario.

Por tanto, un conflicto de Syncthing es un evento que afecta a todo el clúster, mientras que un conflicto de Nextcloud permanece en un solo equipo de escritorio.

Los tipos de carpeta hacen que Syncthing sea más seguro en un servidor

Syncthing tiene tres tipos de carpeta. Elegir el adecuado en el VPS elimina toda una clase de accidentes.

  • Send & Receive es el tipo predeterminado. Los cambios se replican en ambas direcciones.
  • Send Only ignora todo lo que envía el clúster. Úselo cuando un dispositivo sólo deba publicar datos. Cuando deja de estar sincronizado, la interfaz gráfica muestra un botón rojo "Override Changes", que envía el estado local a todos los dispositivos.
  • Receive Only aplica los cambios del clúster y nunca vuelve a enviar las ediciones locales. Úselo en un VPS que funcione como archivo. Las ediciones locales muestran en su lugar un botón rojo "Revert Local Changes".

Una carpeta Receive Only en el VPS con el versionado Staggered activado proporciona un espejo con versiones. Una eliminación en un portátil sigue aplicándose, porque una eliminación es un cambio válido del clúster, pero la copia anterior se guarda en .stversions en lugar de desaparecer.

Qué opción debe elegir

Las 7 filas siguientes cubren los motivos por los que realmente se plantea esta pregunta.

ChartWhich tool fits which job
The data behind this chart
[
  {
    "label": "Keep two of my own laptops in sync",
    "pick": "Syncthing",
    "notes": "No accounts to manage. The VPS is the peer that is always awake."
  },
  {
    "label": "Send a download link to a client",
    "pick": "Nextcloud",
    "notes": "Syncthing has no public link sharing at all."
  },
  {
    "label": "Open a file from a borrowed browser",
    "pick": "Nextcloud",
    "notes": "The Syncthing GUI shows sync state, never file contents."
  },
  {
    "label": "Sync 200 GB between machines I own",
    "pick": "Syncthing",
    "notes": "Peers transfer directly. The VPS copy is optional."
  },
  {
    "label": "Phone photo upload with a store app",
    "pick": "Nextcloud",
    "notes": "The official Syncthing Android app ended in December 2024."
  },
  {
    "label": "Calendar and contacts alongside files",
    "pick": "Nextcloud",
    "notes": "Syncthing syncs files. That is the entire feature set."
  },
  {
    "label": "1 GB VPS with nothing else to spare",
    "pick": "Syncthing",
    "notes": "One Go binary against PHP plus a database plus a web server."
  }
]

Observe la primera fila. Mantener sincronizados dos portátiles propios apunta a Syncthing, y ese es el caso en el que un VPS se justifica como el equipo remoto que nunca duerme. Todas las filas que incluyen un navegador, un enlace u otra persona apuntan en la otra dirección.

Si Nextcloud sigue siendo la opción preferida, pero le preocupa su consumo de recursos, la comparación entre Seafile y Nextcloud es lo siguiente que debe leer, porque Seafile conserva el modelo de servidor, pero utiliza un motor de sincronización diferente.

Ejecutar ambos en un mismo VPS

No son excluyentes. Usar Syncthing para mover archivos entre sus propios equipos mientras Nextcloud gestiona el uso compartido y los calendarios es una configuración habitual.

Si lo hace, siga una regla: nunca apunte Syncthing al directorio de datos de Nextcloud. Nextcloud registra cada archivo en su base de datos. Por eso, los archivos que aparecen en el disco desde fuera permanecen invisibles en la interfaz web hasta que la base de datos se actualiza. Desde el directorio de instalación de Nextcloud:

sudo -u www-data php occ files:scan --all

Ese comando muestra el número de archivos y carpetas que ha explorado. Ejecutarlo con un temporizador es una solución provisional, no un diseño adecuado. Asigne a cada herramienta su propio directorio. Si todavía está decidiendo qué debe alojar en el servidor, la guía sobre qué alojar por cuenta propia en 2026 es un mejor punto de partida que elegir primero una herramienta de sincronización.

FAQ

¿Puede Syncthing sustituir a Dropbox?

Sólo para mantener sincronizados tus propios dispositivos. Syncthing no ofrece enlaces públicos para compartir ni cuentas de usuario, y su interfaz web nunca muestra el contenido de los archivos porque no existe una copia central que un navegador pueda solicitar. La aplicación oficial para Android se dejó de publicar después de su lanzamiento de diciembre de 2024 y ya no está disponible en Play Store, por lo que la compatibilidad con teléfonos depende ahora de un fork de la comunidad. Si necesitas enviar un enlace a otra persona, necesitas un servidor, lo que significa usar Nextcloud o una solución similar.

¿Syncthing es una copia de seguridad?

No, y el proyecto lo indica directamente. Las eliminaciones y modificaciones se propagan a todos los dispositivos, por lo que una eliminación accidental desaparece de todas partes en cuestión de segundos. Activar el versionado de archivos por carpeta, especialmente Staggered en un peer siempre activo, proporciona una ventana de recuperación mediante el directorio .stversions. No sustituye a las snapshots creadas por una herramienta independiente en un almacenamiento separado.

¿Por qué no puedo ver mis archivos en la GUI web de Syncthing?

Porque la GUI es un panel de control del estado de sincronización, no un explorador de archivos. Muestra carpetas, dispositivos, progreso de transferencia y cantidad de conflictos, pero nunca enumera ni abre el contenido de los archivos. Esto se debe al diseño peer to peer: tus archivos están en tus dispositivos y la GUI del VPS sólo administra el proceso que los mueve entre ellos.

¿Qué puertos necesita Syncthing abiertos en un VPS?

22000/TCP para el protocolo de sincronización y 22000/UDP para el transporte QUIC. El puerto 21027/UDP se utiliza para la detección local mediante broadcast y multicast, que no atraviesa Internet, por lo que debes dejarlo cerrado en un servidor público. Deja la GUI en el puerto 8384 vinculada a 127.0.0.1 y accede a ella mediante un túnel SSH. Comprueba también el firewall de red de tu proveedor, además de ufw, porque son controles independientes.

¿Puedo ejecutar Syncthing y Nextcloud en el mismo VPS?

Sí, y es razonable en un servidor con 2 GB de RAM o más. Mantén separados sus directorios. Nextcloud indexa los archivos en su base de datos, por lo que todo lo que Syncthing escriba en el almacenamiento de Nextcloud seguirá sin aparecer en la interfaz web hasta que se ejecute occ files:scan. Además, dos herramientas escribiendo en un mismo directorio generan archivos de conflicto que ninguna de las dos espera.