Files
obsidian-vault/family/documents/vault-sync/2026-08-31-syncthing-truenas-incident.md
T

67 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags: [syncthing, truenas, debug, incident]
created: 2026-08-31
status: diagnosed
---
# Incident: Syncthing не синкается с TrueNAS (после restore)
**Дата диагностики:** 2026-08-31
**Симптом:** "Syncthing не конектится к TrueNAS; TrueNAS не в нашей сети, доступен через внешний адрес". В UI папка не синкается / процентов нет.
## Краткий вывод
**Соединение НЕ сломано.** И контейнер на TrueNAS, и телефон успешно поднимают TCP/TCP+TLS через внешний адрес `90.189.160.148:22000` (`syncthing.mallexxx.duckdns.org`). **Стоит файловая синхронизация** из-за сломанных прав на `/mnt/RED_2TB/storage/obsidian` после восстановления из бэкапа.
## Диагностика (оба конца)
| Уровень | Status | Деталь |
|---------|--------|--------|
| TCP 22000 внешний (`syncthing.mallexxx.duckdns.org`) | ✅ | `Connection succeeded` |
| SSH TrueNAS (`mallexxx.duckdns.org`) | ✅ | IP 192.168.2.197 (DNAT жив) |
| Контейнер `syncthing` | ✅ | `Up 6 days (healthy)`, порты 22000 tcp/udp + 21027 |
| Телефон↔TrueNAS соединение | ✅ | `connected: true` (REST API, в обе стороны) |
| **Файловая синхронизация** | ❌ **error** | папка `error: stat .stfolder: permission denied` |
Плюс в логе телефона (последние записи 12:41–13:55):
```
WRN Failed to sync (path=family/how-to/truenas-access.md error="syncing: finishing: pull: no such file")
WRN Failed to sync (path=family/how-to/truenas-sata-ports-and-zfs-pools.md ...)
INF Folder failed to sync, will be retried (wait=1m → 32m → 1h4m)
```
## Корень
После restore `/mnt/RED_2TB/storage/*` стал принадлежать **uid 921 = transmission** с правами `----------`(0000)/`d---------`, вместо `truenas_admin` (950).
```
d--------- 7 921 921 ... /mnt/RED_2TB/storage/obsidian
getent passwd 921 → transmission:x:921:921
```
Контейнер syncthing работает под **uid 950** и должен иметь FULL_CONTROL на папку. Из-за нулевых прав не читает даже `.stfolder` → папка в error → телефон не может вытянуть зависшие файлы (`truenas-access.md`, `truenas-sata-ports-and-zfs-pools.md`) → вся папка стоит.
⚠️ **Масштаб:** судя по `ls -la /mnt/RED_2TB/storage`, та же проблема может касаться Cartoons, Downloads, Movies, Music, git, shared, series и др. — всё 921/0000. Проверить другие сервисы.
## План фикса (НЕ выполнен — требует подтверждения + бэкап ACL)
1. Снять бэкап текущих ACL:
`getfacl -R /mnt/RED_2TB/storage/obsidian > /mnt/RED_2TB/backup/_acl_obsidian_$(date +%F).facl`
2. Вернуть владельца и права:
```
sudo chown -R 950:950 /mnt/RED_2TB/storage/obsidian
sudo chmod -R u+rwX,g+rwX /mnt/RED_2TB/storage/obsidian
```
3. Рестарт контейнера: `docker compose -f /mnt/RED_2TB/docker/syncthing/docker-compose.yml restart`
4. Дождаться `Completed scan`, проверить статус папки через REST.
## Затрагиваемые файлы (лог телефона)
- `family/how-to/truenas-access.md`
- `family/how-to/truenas-sata-ports-and-zfs-pools.md`
## Техническая карта Syncthing
- Устройства sync: `XJRJQB2-...` = контейнер TrueNAS (myID), `C6DYBCZ-...` = телефон SM-S931B (v2.1.3)
- Folder ID: `k5vyy-gzdgj`, label `Obsidian Vault`, path `/var/syncthing/obsidian-vault`
- GUI на TrueNAS: 'syncthing-admin', apikey в config.xml
## Связанные заметки
- [[syncthing-truenas-android]] — основная документация по этой схеме