Представь, что тебе нужно синхронизировать файлы между сервером на Debian, ноутбуком на Ubuntu и другими устройствами без облачных сервисов. Syncthing — это идеальное решение: open-source, безопасное, с end-to-end шифрованием. Давай разберем, как правильно выполнить установку Syncthing на Debian и Ubuntu, настроить автозапуск и веб-интерфейс.
Что такое Syncthing и зачем он нужен
Syncthing — это децентрализованный инструмент для синхронизации файлов между устройствами. В отличие от облачных сервисов, данные передаются напрямую между твоими устройствами. Это дает:
- Полную приватность (данные не проходят через чужие серверы)
- Контроль над своими файлами
- Работу в локальной сети без интернета
- Кроссплатформенность (Linux, Windows, macOS, Android)
Подготовка системы перед установкой
Перед тем как начать установку Syncthing на Debian или Ubuntu, убедись, что система обновлена:
sudo apt update
sudo apt upgrade -y
Установка зависимостей
Для работы Syncthing потребуются базовые утилиты:
sudo apt install -y curl wget gnupg apt-transport-https
Установка Syncthing на Debian и Ubuntu
Есть несколько способов установки. Рассмотрим самый надежный — через официальный репозиторий.
Добавление GPG-ключа и репозитория
# Добавляем GPG-ключ
curl -s https://syncthing.net/release-key.txt | sudo gpg --dearmor -o /usr/share/keyrings/syncthing-archive-keyring.gpg
# Добавляем репозиторий для Debian/Ubuntu
echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
Установка пакета Syncthing
sudo apt update
sudo apt install -y syncthing
sudo add-apt-repository multiverse
Настройка Syncthing как системного сервиса
Для работы в фоновом режиме настроим Syncthing как systemd сервис. Это позволит ему запускаться автоматически при загрузке системы.
Создание пользователя для Syncthing (рекомендуется)
sudo useradd -r -s /bin/false -m -d /var/lib/syncthing syncthing
sudo chown -R syncthing:syncthing /var/lib/syncthing
Создание systemd сервиса
Создадим файл конфигурации сервиса:
sudo nano /etc/systemd/system/syncthing@.service
Добавь следующее содержимое (или используй готовый файл из пакета):
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
Запуск и включение автозагрузки
# Перезагружаем systemd
sudo systemctl daemon-reload
# Запускаем сервис для пользователя syncthing
sudo systemctl start syncthing@syncthing
# Включаем автозапуск
sudo systemctl enable syncthing@syncthing
# Проверяем статус
sudo systemctl status syncthing@syncthing
Настройка веб-интерфейса и первого подключения
По умолчанию веб-интерфейс доступен только с localhost. Для удаленного доступа нужно изменить конфигурацию.
Редактирование конфигурационного файла
# Останавливаем сервис для редактирования конфига
sudo systemctl stop syncthing@syncthing
# Редактируем конфиг
sudo nano /var/lib/syncthing/.config/syncthing/config.xml
Найди секцию <gui> и измени адрес:
<gui enabled="true" tls="false" debugging="false">
<address>0.0.0.0:8384</address>
<theme>dark</theme>
</gui>
Настройка фаервола (если используется)
# Для ufw (Ubuntu)
sudo ufw allow 8384/tcp
sudo ufw allow 22000/tcp # порт для синхронизации
sudo ufw allow 21027/udp # порт для обнаружения
# Для firewalld (некоторые дистрибутивы)
sudo firewall-cmd --permanent --add-port=8384/tcp
sudo firewall-cmd --permanent --add-port=22000/tcp
sudo firewall-cmd --permanent --add-port=21027/udp
sudo firewall-cmd --reload
Сравнение методов установки
| Метод | Плюсы | Минусы | Рекомендация |
|---|---|---|---|
| Официальный репозиторий | Автообновления, подписанные пакеты | Требует добавления репозитория | Для продакшена |
| DEB пакет вручную | Контроль версии | Нет автообновлений | Для тестирования |
| Docker контейнер | Изоляция, простота | Дополнительные ресурсы | Для Docker-окружений |
Добавление устройств и папок для синхронизации
После настройки сервера зайди в веб-интерфейс (http://IP_СЕРВЕРА:8384) и:
- Скопируй ID устройства из «Remote Devices»
- На другом устройстве в Syncthing добавь новое устройство по этому ID
- Прими приглашение на сервере
- Создай папку для синхронизации и расшарь её на другое устройство
Полезные команды для управления
# Просмотр логов
sudo journalctl -u syncthing@syncthing -f
# Перезапуск сервиса
sudo systemctl restart syncthing@syncthing
# Проверка используемых портов
sudo ss -tulpn | grep syncthing
# Обновление Syncthing
sudo apt update && sudo apt upgrade syncthing
Оптимизация производительности
Для больших объемов данных или медленных дисков:
- Увеличь лимиты inotify:
echo fs.inotify.max_user_watches=204800 | sudo tee -a /etc/sysctl.conf - Настрой игнорирование временных файлов в .stignore
- Используй режим «Send Only» для резервного копирования