- Sincronización P2P cifrada con control total: sin nube externa y con aprobación de dispositivos.
- Instalación multiplataforma y servicio por usuario; GUI web en el puerto 8384.
- Modos de carpeta (enviar/recibir), patrones ignorados y versionado para afinar el flujo.
- Acceso seguro por LAN/Internet con TLS, UFW, Nginx como proxy y túneles SSH.
Si llevas tiempo buscando una forma de sincronizar archivos entre tus equipos sin depender de la nube, Syncthing es de esas herramientas que te cambia la rutina. Sin servidores de terceros, cifrado de extremo a extremo y control total sobre dónde viven tus datos; eso es justo lo que propone este proyecto.
Vamos a recorrer su instalación y configuración paso a paso, desde GNU/Linux (con instrucciones claras para Ubuntu/Debian, Fedora y Arch/Manjaro) hasta su puesta en marcha, conexión entre dispositivos y ajustes útiles. El objetivo es que termines con una sincronización estable, segura y práctica, ya sea en tu LAN o a través de Internet, con extras como proxy inverso en Nginx, túneles SSH y reglas de cortafuegos.
Qué es Syncthing y cómo funciona
Syncthing es una solución de sincronización de archivos multiplataforma que funciona de manera distribuida, es decir, tus equipos se conectan entre sí y se pasan los datos directamente sin subir nada a servidores ajenos. Nació como software libre, se publica bajo licencia Mozilla Public License 2.0 y está desarrollado en Go.
La comunicación aprovecha su propio protocolo de intercambio de bloques (Block Exchange Protocol), y todo el tráfico se cifra con TLS. Los dispositivos deben aprobarse mutuamente de forma explícita antes de compartir datos, algo que añade una capa de seguridad clave en entornos domésticos y de trabajo.
Además de interoperar con IPv4 e IPv6, Syncthing resuelve bien los entornos con NAT, ofreciendo mecanismos de retransmisión cuando no hay conectividad directa. En caso de conflictos de edición, renombra el archivo más antiguo con un sufijo tipo “conflicto de sincronización” junto con fecha y hora, así tú decides cómo resolverlo.
Para ser ágil, combina compresión de metadatos o de datos completos, reutiliza bloques ya enviados y hace escaneos ligeros cuando detecta cambios locales. El resultado es una sincronización eficiente y bastante transparente incluso en redes modestas.
En el día a día se gestiona desde su interfaz web (GUI), y en GNU/Linux también cuenta con una GUI GTK de escritorio. La consola web por defecto escucha en el puerto 8384 en localhost, y puede exponerse a la LAN o Internet si lo necesitas.

Plataformas y filosofía del proyecto
Syncthing está disponible para GNU/Linux, Windows, macOS e incluso Android, y también cuenta con imágenes para Docker. Su enfoque 100% abierto y multiplataforma lo hace ideal para equipos mixtos, sobremesas, portátiles y móviles.
La idea es que tú proves el hardware (BYO cloud) y la aplicación haga el resto: crear un clúster de dispositivos, elegir qué carpetas compartir y dejar que sincronice. El control sobre dónde se almacenan los datos es tuyo, tal y como insiste el propio proyecto.
Instalación en GNU/Linux
Vamos con los sistemas más comunes. Incluyo métodos actualizados para Ubuntu/Debian, además de alternativas en Fedora y Arch/Manjaro, para que puedas replicar el entorno en todos tus equipos.
Ubuntu, Debian y derivadas
Primero instala las dependencias necesarias para trabajar con repositorios de terceros. Este paso se aplica a Ubuntu, Debian, Linux Mint, MX Linux y similares:
sudo apt update
sudo apt install -y gnupg2 curl apt-transport-https
Ahora añade la clave de publicación y el repositorio oficial de Syncthing. Tienes dos opciones, según tu versión:
Opción moderna (recomendada, Ubuntu 22.04+):
curl -fsSL https://syncthing.net/release-key.txt | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/syncthing.gpg
echo 'deb https://apt.syncthing.net/ syncthing release' | \
sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
Opción heredada (Ubuntu 20.04 y anteriores):
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo 'deb https://apt.syncthing.net/ syncthing release' | \
sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
Instala Syncthing y comprueba la versión. Con esto tendrás el binario listo para usar:
sudo apt install -y syncthing
syncthing --version
Fedora
En Fedora lo encontrarás en los repos oficiales. La instalación es directa con DNF:
sudo dnf install -y syncthing
Arch Linux y Manjaro
En Arch y derivadas puedes instalarlo desde los repos oficiales. Syncthing-gtk puede estar disponible en repos o AUR según tu distro:
sudo pacman -S --needed syncthing
Poner en marcha el servicio y la GUI
La interfaz web escucha por defecto en 127.0.0.1:8384. Puedes arrancar Syncthing manualmente o como servicio, mejor por usuario para evitar privilegios innecesarios.
Arranque por usuario con systemd
La forma recomendada es ejecutar Syncthing con tu usuario normal. Reemplaza ‘usuario’ por tu nombre de login:
sudo systemctl start [email protected]
sudo systemctl enable [email protected]
sudo systemctl status [email protected]
Una variante es el modo de usuario de systemd. Ambas aproximaciones buscan el mismo objetivo: ejecutar el daemon sin root:
systemctl --user enable syncthing
systemctl --user start syncthing
systemctl --user status syncthing
Unidad systemd dedicada (opcional)
Si necesitas una unidad personalizada, puedes crearla en /etc/systemd/system. Esto es útil en servidores o cuando quieres forzar parámetros de inicio:
sudo nano /etc/systemd/system/[email protected]
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
Recarga los servicios y arranca. Con esto tendrás la GUI accesible en la IP configurada y el puerto 8384:
sudo systemctl daemon-reload
sudo systemctl start syncthing@usuario
sudo systemctl status syncthing@usuario
Acceso a la interfaz web y seguridad básica
Abre tu navegador en la máquina local y visita la consola: http://127.0.0.1:8384/. La primera vez te pedirá definir autenticación de acceso, algo muy recomendable para evitar sustos.
Entra en Acciones > Configuración > pestaña GUI y fija un nombre de usuario y contraseña. Guarda los cambios y vuelve a iniciar sesión con tus credenciales. Ya tienes el panel listo.
Conectar dispositivos: ID y aprobación mutua
Syncthing identifica cada nodo con un ID alfanumérico único. Está disponible en Acciones > Mostrar ID y viene acompañado de un código QR, muy práctico cuando uno de los equipos es un móvil Android.
Para añadir un nuevo equipo, haz clic en Añadir dispositivo remoto, pega su ID o selecciónalo de la lista de descubrimiento en la LAN, y guarda. En el otro lado aparecerá una notificación para aceptar la relación; tras aprobarla en ambos extremos, quedarán conectados.
Cuando un conjunto de dispositivos comparte carpetas entre sí se habla de un “clúster”. Todos los miembros del clúster deben tener instalado Syncthing y aprobar mutuamente sus conexiones.
Compartir carpetas y empezar a sincronizar
El flujo básico es muy sencillo: creas una carpeta local, la añades a Syncthing y la compartes con uno o más dispositivos. El receptor elige la ruta donde almacenar esa carpeta compartida y listo, empieza la sincronización.
Desde el panel, pulsa Añadir carpeta, define una etiqueta y una ruta (por ejemplo, ~/syncthing/proyectos). En la pestaña Compartir selecciona los dispositivos con los que quieres sincronizar, y guarda.
En el equipo remoto verás la invitación a “añadir” esa carpeta. Elige la ruta de destino (puede ser diferente a la del origen), confirma y espera a que arranque el primer escaneo.
Si quieres comprobar que todo va fino, en el equipo A crea unos archivos de prueba dentro de la carpeta compartida: deberían aparecer en pocos segundos en el equipo B si ambos están en línea.
cd ~/Sync/
touch {1..20}.txt
Modos de sincronización y opciones avanzadas de carpeta
Syncthing ofrece tres modos por carpeta para controlar el flujo de cambios: Enviar y recibir (por defecto), Solo enviar y Solo recibir. Son ideales para escenarios como “copia desde el móvil al PC” o “repositorio central que no debe alterarse”.
En Editar > Avanzado encontrarás ajustes útiles como el intervalo de escaneo, políticas de verificación y parámetros de metadatos (permisos, propietario, etc.). También puedes fijar un umbral de espacio libre mínimo para no llenar discos por despiste.
La sección Ignore Patterns te deja excluir archivos o rutas concretas (por ejemplo, ‘*.tmp’ o subcarpetas de caché). Y en File Versioning puedes mantener versiones antiguas de ficheros para tener un colchón ante sobrescrituras o borrados involuntarios.
Android, escritorio y otras plataformas
En Android, instala Syncthing desde F-Droid para tener la app libre y mantenerla actualizada. Puedes escanear el QR del ID del equipo de tu PC para conectarlos al vuelo. Desde ahí, compartir la carpeta DCIM/Cámara en modo Solo enviar es una forma estupenda de tener copia de tus fotos en el ordenador.
En Windows y macOS la configuración es similar: arrancas el daemon y entras a la GUI web. Si te gusta una bandeja del sistema con icono y atajos, existen frontends como Syncthing-GTK en GNU/Linux (según distro).
Abrir la GUI a la LAN o Internet con HTTPS
La consola se limita por defecto a localhost. Para atender en la red local, edita el archivo de configuración del usuario (~/.config/syncthing/config.xml) y cambia la sección <gui>. Puedes habilitar TLS y fijar la IP:puerto de escucha:
nano ~/.config/syncthing/config.xml
<gui enabled='true' tls='true' debugging='false' sendBasicAuthPrompt='false'>
<address>192.168.1.50:8384</address>
<apikey>API-KEY-GENERADA</apikey>
<theme>default</theme>
</gui>
Reinicia el servicio y accede con https a la dirección configurada. Recuerda proteger la GUI con usuario y contraseña si la expones fuera de localhost.
sudo systemctl restart [email protected]
Publicar la GUI detrás de Nginx (proxy inverso)
Si prefieres entrar por el puerto 80/443 con tu dominio, pon Nginx delante y redirígelo al backend 8384. Esto además facilita añadir TLS con Let’s Encrypt:
sudo apt install -y nginx
sudo nano /etc/nginx/conf.d/syncthing.conf
server {
listen 80;
server_name syncthing.example.com;
access_log /var/log/nginx/syncthing.access.log;
error_log /var/log/nginx/syncthing.error.log;
location / {
proxy_pass http://127.0.0.1:8384;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo nginx -t
sudo systemctl reload nginx
Con eso, tu consola quedará accesible en http://syncthing.example.com/ (o mejor aún, en https si emites un certificado). Es una forma limpia de centralizar el acceso y los logs.
Acceso remoto con túnel SSH
Si administras un servidor al que entras por SSH, puedes “traerte” el puerto 8384 a tu equipo con un reenvío local. Es cómodo y evita exponer la GUI a Internet:
ssh -L 8384:127.0.0.1:8384 usuario@servidor-remoto
Después, abre http://127.0.0.1:8384 en tu navegador y estarás gestionando la instancia remota. Es una técnica simple, segura y muy útil en producción.
Cortafuegos UFW y puertos necesarios
En Ubuntu puedes habilitar perfiles predefinidos para Syncthing en UFW. Esto abre lo imprescindible para la GUI y la sincronización:
sudo ufw allow syncthing
sudo ufw allow syncthing-gui
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Por debajo, Syncthing usa por defecto el puerto 22000 (TCP/QUIC) para el intercambio y 21027/UDP para el descubrimiento local. Si usas otro cortafuegos, permítelos según tus políticas, y ajusta el puerto de la GUI (8384) si la expones.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.