Как установить Syncthing в Ubuntu 22.04

Syncthing - это замечательный инструмент с открытым исходным кодом, предназначенный для синхронизации файлов на различных устройствах частным, безопасным и надежным образом. Являясь децентрализованной системой, он устраняет необходимость в облачных сервисах, предоставляя вам полный контроль над вашими данными. Используете ли вы Ubuntu Linux 22.04 Jammy Jellyfish или 20.04 Focal Fossa LTS, Syncthing может стать незаменимым дополнением к вашему набору программного обеспечения.

Содержание

Преимущества использования Syncthing

Вот почему вы, как пользователь Ubuntu, можете найти Syncthing особенно полезным:

  • Владение данными: С Syncthing контроль и управление данными остается в ваших руках. Вам не нужно полагаться на сторонние облачные сервисы для синхронизации данных, что означает отсутствие риска нежелательного доступа к данным или утечки.
  • Кросс-платформенная совместимость: Используете ли вы другой дистрибутив Linux, Windows, Mac или даже BSD, Syncthing обеспечивает синхронизацию данных на всех этих платформах.
  • Синхронизация в реальном времени: Все изменения, внесенные в ваши файлы и каталоги, мгновенно синхронизируются на всех подключенных устройствах, что делает работу с данными быстрой и легкой.
  • Безопасность: Syncthing использует первоклассные протоколы безопасности, включая TLS, для безопасной связи между устройствами, обеспечивая сохранность ваших данных.
  • Простая настройка сети: В отличие от некоторых других инструментов синхронизации, Syncthing автоматически управляет обходом NAT и конфигурацией брандмауэра, упрощая процесс настройки.
  • Открытый исходный код: Будучи с открытым исходным кодом, Syncthing приглашает к улучшению, адаптации и проверке глобальное сообщество разработчиков. Такая прозрачность способствует его надежности и долговечности.

Syncthing не просто синхронизирует файлы; он представляет собой новый, ориентированный на конфиденциальность способ работы с данными. Вы можете настроить его под свои нужды, проверить код на наличие проблем и даже внести свой вклад в его развитие. Это инструмент, который растет вместе со своими пользователями, удовлетворяя спрос на безопасную и приватную синхронизацию данных в цифровом мире, который все больше ценит эти качества.

В следующем руководстве мы продемонстрируем, как установить Syncthing на Ubuntu 22.04 Jammy Jellyfish или Ubuntu 20.04 Focal Fossa LTS Linux, используя официальный репозиторий Syncthing APT. Этот метод обеспечит вам доступ к последней версии и позволит легко обновлять ее в будущем с помощью команды apt.

Установка Syncthing в Ubuntu Linux

Шаг 1: Обновление системных пакетов Ubuntu

Первый шаг в этом руководстве по установке включает в себя обновление системных пакетов. Эта мера гарантирует, что ваша система будет обновлена последними патчами, исправлениями и версиями установленного программного обеспечения, минимизируя потенциальные конфликты при установке нового программного обеспечения. Выполните приведенную ниже команду, чтобы выполнить обновление:

Эта команда эффективно получает информацию о новейших версиях пакетов и их зависимостях, а затем обновляет установленные пакеты.

Шаг 2: Установка необходимых пакетов

Далее мы установим некоторые важные пакеты, которые облегчат установку нашего необходимого программного обеспечения, Syncthing. Выполните следующую команду:

Эта команда устанавливает несколько пакетов, в том числе:

  • software-properties-common: содержит полезные сценарии для управления программным обеспечением.
  • apt-transport-https: Это позволяет утилите обработки пакетов APT работать с https URI.
  • wget и curl: Это сетевые утилиты для получения файлов из Интернета.

Шаг 3: Интеграция официального репозитория APT Syncthing

Хотя Syncthing доступен в стандартных репозиториях Ubuntu, эти версии могут быть не такими актуальными, как хотелось бы некоторым пользователям. Поэтому мы решили интегрировать официальный APT-репозиторий Syncthing в нашу систему для получения наиболее актуальных версий.

Сначала мы добавляем ключ GPG, который гарантирует, что данные из репозитория Syncthing являются подлинными и не были подделаны. Выполните следующую команду:

После этого необходимо интегрировать репозиторий той версии Syncthing, которую вы хотите установить. Для большинства пользователей рекомендуется стабильная версия. Однако для тех, кто предпочитает передовые технологии, доступна версия candidate (предварительный релиз).

Импорт стабильной версии Syncthing

Выполните следующую команду, чтобы импортировать стабильную версию:

Импорт кандидатской (предварительной) версии Syncthing

Выполните следующую команду для импорта версии-кандидата:

Шаг 4: Обновление индекса пакетов APT

После интеграции репозитория нужной версии Syncthing необходимо обновить индекс пакетов APT, чтобы включить в него вновь добавленный источник программного обеспечения. Выполните следующую команду:

Шаг 5: Установка Syncthing

Теперь, когда репозиторий Syncthing интегрирован в вашу систему, перейдите к установке Syncthing с помощью следующей команды:

После установки необходимо убедиться, что Syncthing был установлен правильно. Это можно сделать, проверив его версию с помощью следующей команды:

Создание службы Syncthing Systemd Service

В этом разделе мы создадим службу Syncthing для работы в фоновом режиме, независимо от того, вошел пользователь в систему или нет. Это особенно полезно для серверов, где Syncthing должен работать непрерывно. Для управления службой Syncthing мы будем использовать systemd, менеджер систем и служб Linux.

Шаг 1: Понимание файла службы Syncthing Systemd

При установке Syncthing создается файл службы systemd, [email protected], который помещается в каталог /lib/systemd/system. Этот файл является шаблоном, который systemd может использовать для запуска Syncthing в качестве службы. Обозначение @ в файле [email protected] является обозначением учетной записи пользователя, под которой будет работать Syncthing. Например, если ваше имя пользователя - 'linux', служба будет называться [email protected].

Шаг 2: Включение службы Syncthing

Чтобы служба Syncthing запускалась автоматически при загрузке системы, необходимо включить ее с помощью команды systemctl. Замените 'username' на ваше настоящее имя пользователя:

С помощью этой команды Syncthing будет автоматически запускаться при каждой загрузке системы.

Шаг 3: Запуск службы Syncthing вручную

Несмотря на то, что служба настроена на автоматический запуск при загрузке системы, в настоящее время она не запускается сразу после команды enable. Чтобы запустить службу без перезагрузки системы, используйте команду systemctl start. Вот как это сделать:

Например, если ваше имя пользователя - 'user', команда будет выглядеть следующим образом:

Шаг 4: Проверка состояния службы Syncthing

Всегда полезно проверить статус службы, которую вы только что запустили. Вы можете сделать это с помощью следующей команды systemctl:

Например, для имени пользователя 'user' это будет выглядеть следующим образом:

пример синхронизации состояния systemd на ubuntu linux

пример синхронизации состояния systemd на ubuntu linux

Шаг 5: Знакомство с конфигурацией Syncthing

Syncthing хранит свои конфигурационные файлы в каталоге /home/username/.config/syncthing/. В этой директории вы найдете несколько конфигурационных файлов, включая главный конфигурационный файл config.xml. Полезно знать, где находится этот файл, на случай, если вам понадобится изменить или исправить какие-либо настройки. Например, вам может понадобиться изменить IP-адрес по умолчанию (127.0.0.1) на внутренний или внешний IP-адрес.

Кроме того, Syncthing создает домашнюю папку по умолчанию по адресу /home/username/syncthing/. Вы можете изменить ее позже, если она не соответствует вашим потребностям.

Настройка брандмауэра UFW для Syncthing

В этом разделе мы подробно рассмотрим процесс настройки Uncomplicated Firewall (UFW) для Syncthing. Брандмауэры служат в качестве первой линии обороны, ограничивая несанкционированный доступ к вашей системе. Важно убедиться, что брандмауэр правильно настроен, чтобы Syncthing мог нормально взаимодействовать со сверстниками по сети.

Шаг 1: Понимание сетевых требований Syncthing

Прежде чем перейти к конкретным настройкам брандмауэра, важно понять, зачем нам это нужно. Syncthing взаимодействует по сети через TCP-порт 22000. Этот порт должен быть открыт для входящих и исходящих соединений, чтобы Syncthing работал правильно. Если порт заблокирован брандмауэром, Syncthing не сможет установить соединение со своими коллегами, что ограничит его функциональность.

Шаг 2: Разрешение Syncthing через UFW

UFW, или Uncomplicated Firewall, - это упрощенный инструмент управления брандмауэром, доступный в Ubuntu и других дистрибутивах Linux. Он известен своим удобным интерфейсом командной строки, что делает его популярным как среди новичков, так и среди опытных пользователей.

Если вы используете UFW, вам необходимо явно разрешить коммуникационный порт Syncthing. Чтобы открыть TCP-порт 22000 на UFW, выполните следующую команду:

Эта команда указывает UFW на разрешение входящих и исходящих TCP-соединений на порту 22000.

Шаг 3: Активация UFW

Если вы только что установили UFW или никогда не активировали его ранее, вам необходимо сделать это, чтобы правила вступили в силу. Это можно сделать с помощью следующей команды:

После выполнения этой команды UFW будет запускаться при загрузке по умолчанию, и только что созданное правило станет активным.

Шаг 4: Проверка конфигурации UFW

После настройки правил UFW всегда полезно подтвердить, что они были правильно применены. Вы можете проверить состояние UFW и просмотреть его правила с помощью следующей команды:

В выводе будет список текущих правил, включая то, которое разрешает трафик на TCP порт 22000 для Syncthing. Если вы видите там это правило, значит, ваша конфигурация прошла успешно.

Установление соединения и синхронизация с помощью Syncthing WebUI

Суть Syncthing заключается в процессе подключения пиров и синхронизации файлов или папок между ними. В этом разделе мы рассмотрим шаги по подключению двух пиров Syncthing, настройке WebUI и синхронизации данных.

Шаг 1: Настройка нескольких экземпляров Syncthing

Чтобы использовать возможности одноранговой синхронизации файлов Syncthing, необходимо установить его как минимум на два отдельных устройства или сервера. Большим преимуществом Syncthing является его кросс-платформенная совместимость - он поддерживает широкий спектр операционных систем, а не только Linux.

Однако, если вы планируете синхронизировать систему Linux с не-Linux платформой, очень важно настроить режим синхронизации как "Только получение". Это позволит избежать потенциальных проблем с разрешениями файлов между различными операционными системами.

Шаг 2: Доступ к веб-интерфейсу Syncthing

По умолчанию веб-интерфейс Syncthing доступен локально по адресу http://127.0.0.1:8384. Перейдите по этому адресу в своем веб-браузере.

http://127.0.0.1:8384

При первом посещении веб-интерфейса Syncthing запросит у вас разрешение на отправку анонимной статистики использования. Выберите подходящую вам опцию, чтобы продолжить.

Пример:

пример пользовательского интерфейса syncthing по умолчанию после входа в систему после установки на ubuntu linux

Шаг 3: Защита службы Syncthing

Syncthing уделяет большое внимание безопасности. При первом запуске он предложит вам ввести имя пользователя и пароль через уведомление 'GUI Authentication'. Перейдите в "Settings", чтобы установить эти параметры.

На последующем экране настроек GUI установите надежное имя пользователя и пароль. У вас также есть возможность настроить HTTPS для использования графического интерфейса, что повышает безопасность вашего взаимодействия с интерфейсом Syncthing.

После настройки безопасности нажмите "Save", чтобы сохранить конфигурацию.

Шаг 4: Повторите процесс для второго устройства

Теперь повторите все шаги, которые мы только что выполнили, на втором устройстве или сервере, который вы собираетесь использовать в качестве аналога Syncthing. После этого мы готовы к синхронизации файлов и папок между устройствами.

Шаг 5: Синхронизация файлов и папок между устройствами

Теперь, когда у нас есть два активных клиента Syncthing, установленных на разных устройствах, мы можем приступить к настройке синхронизации файлов и папок между этими пирами.

В WebUI первого устройства выберите " Actions > Show ID", расположенный в правом верхнем углу. В результате отобразится ID вашего устройства, который представляет собой длинную строку буквенно-цифровых символов. Скопируйте этот идентификатор.

Затем откройте WebUI второго устройства и выберите "Add Remote Device" в правом нижнем углу. Вставьте сюда скопированный ID устройства, дайте новому устройству узнаваемое имя и нажмите "Save".

Вернувшись к первому устройству, вы должны увидеть попытку подключения второго устройства. Если вы не видите этого, убедитесь, что настройки вашего брандмауэра правильно настроены, чтобы разрешить это соединение.

После успешного подключения вы сможете обмениваться каталогами и файлами между двумя устройствами. Вот как настроить общий каталог:

  1. В WebUI первого устройства выберите " Add a Folder".
  2. Выберите каталог, который вы хотите синхронизировать со вторым устройством. Присвойте папке уникальный идентификатор и задайте соответствующий путь.
  3. Перейдите на вкладку " Sharing" и выберите удаленное устройство, с которым вы хотите открыть общий доступ (в нашем случае второе устройство).
    Нажмите " Save".

Теперь снова переключитесь на второе устройство. Вы увидите уведомление о том, что первое устройство пытается предоставить общий доступ к каталогу.

Настройка разрешений Syncthing

Эффективное управление разрешениями Syncthing является ключом к бесперебойной синхронизации файлов между устройствами. В некоторых случаях могут возникнуть трудности при отправке или получении данных между удаленными узлами, в основном из-за конфликтов разрешений. Этот раздел посвящен преодолению этих проблем и обеспечению бесперебойной связи между узлами Syncthing.

Шаг 1: Установите пакет списка контроля доступа (ACL)

Системы Linux используют списки контроля доступа (ACL) для определения разрешений для каждого файла и каталога, тем самым улучшая присущую им модель разрешений. Для настройки этих расширенных разрешений мы используем команду setfacl, которая является частью пакета acl.

Установите пакет acl с помощью следующей команды:

Шаг 2: Настройка расширенных разрешений

Теперь вы будете использовать команду setfacl для изменения ACL папки Syncthing. Замените "username" на ваше имя пользователя Linux и "/folder/path/" на путь к вашей папке Syncthing:

Здесь -R делает команду рекурсивной, -m служит для изменения ACL, а u:username:rwx дает пользователю права на чтение, запись и выполнение в папке.

Шаг 3: Автоматизируйте разрешения с помощью задания Cron

Если у вас есть файлы, которые часто меняются и приводят к проблемам с разрешениями, подумайте о настройке задания Cron. Cron - это планировщик заданий на основе времени в Linux, который можно использовать для автоматизации выполнения команды setfacl.

Откройте редактор crontab с помощью следующей команды:

Чтобы установить задание cron, которое будет изменять разрешения папки каждые 5 минут, добавьте в файл crontab следующую строку:

Шаг 4: Включите игнорирование разрешений в Syncthing

Последний шаг включает в себя настройку в веб-интерфейсе Syncthing. Перейдите к опциям "Advanced" в Syncthing WebUI и включите функцию "Ignore Permissions". Это может решить возможные проблемы с разрешениями.

Однако имейте в виду, что использование функции "Игнорировать разрешения" не отменяет необходимости настройки ACL. Обе эти стратегии часто работают совместно для обеспечения бесперебойной работы Syncthing.

Пример:

пример игнорирования разрешений для синхронизации между пирами с помощью gui на ubuntu linux

Настройка Nginx в качестве обратного прокси для Syncthing

Использование возможностей Nginx в качестве обратного прокси для Syncthing может дать множество преимуществ, включая упрощенную настройку сети, повышенную безопасность и потенциальный прирост производительности. В этом руководстве мы рассмотрим процесс настройки Nginx для этой цели.

Шаг 1: Установите Nginx PPA

Первой задачей является установка Nginx, высокоэффективного веб-сервера с открытым исходным кодом и обратного прокси. Для нашей установки мы рекомендуем использовать персональный архив пакетов (PPA), предоставленный Ондржеем Сури, который известен своими постоянными обновлениями и расширенными возможностями.

У вас есть два варианта: установить последнюю стабильную версию Nginx или последнюю основную версию, в зависимости от ваших требований. Выполните одну из следующих команд:

Чтобы установить последнюю стабильную версию:

Или последнюю основную версию:

Шаг 2: Обновление списка источников

После добавления PPA необходимо обновить список источников в системе с помощью следующей команды:

Шаг 3: Установите Nginx

Теперь вы готовы установить Nginx с помощью следующей команды:

Шаг 4: Создание серверного блока для Syncthing

Серверные блоки в Nginx функционируют аналогично виртуальным хостам в Apache и используются для инкапсуляции деталей конфигурации. Создайте новый серверный блок для Syncthing, открыв новый файл конфигурации:

В этом файле введите следующую конфигурацию серверного блока Nginx:

Если ваша конфигурация Syncthing отличается от стандартной, вам может понадобиться изменить строку "proxy_pass". После внесения необходимых изменений сохраните файл с помощью (CTRL+O) и выйдите с помощью (CTRL+X).

Шаг 5: Проверка конфигурации Nginx

Прежде чем начать использовать новую установку Nginx, необходимо проверить правильность синтаксиса конфигурации. Это можно сделать, выполнив следующую команду:

Эта команда проверит ваши конфигурационные файлы на наличие синтаксических ошибок и сообщит вам, если таковые будут обнаружены. Если синтаксис верен, она выдаст результат, подобный приведенному ниже:

Шаг 6: Перезапуск службы Nginx

После проверки конфигурации вы можете перезапустить службу Nginx, чтобы изменения вступили в силу:

Шаг 7: Доступ к серверу Syncthing

После успешной настройки вы можете получить доступ к серверу Syncthing по URL http://syncthing.example.com. Если у вас нет доменного имени, вы можете получить доступ к серверу, используя IP-адрес внешнего сервера.

Обратите внимание, что домен syncthing.example.com должен быть заменен на ваше реальное доменное имя или IP-адрес сервера. Убедитесь, что ваше доменное имя правильно направлено на ваш сервер, если вы используете домен.

Заключение

В заключение, процесс установки Syncthing в дистрибутиве Ubuntu Linux предлагает отличный баланс контроля, безопасности и гибкости. Это тщательная процедура, требующая внимания к деталям, но результат стоит затраченных усилий. В этом руководстве подробно рассмотрены установка Syncthing, настройка разрешений Syncthing и настройка Nginx в качестве обратного прокси для Syncthing. Стремление упростить и демистифицировать эти процедуры должно повысить ваши навыки и опыт управления сервером.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий