Syncthing – это одноранговый инструмент синхронизации файлов с открытым исходным кодом, предназначенный для безопасной синхронизации файлов на нескольких устройствах. В отличие от облачных сервисов, Syncthing работает напрямую между устройствами, не храня данные на внешних серверах, предоставляя пользователям полный контроль над файлами и конфиденциальность. В работе Syncthing используется зашифрованная связь между устройствами, что обеспечивает безопасную передачу данных. Syncthing можно использовать для синхронизации файлов между компьютерами, мобильными устройствами и даже серверами, что делает его универсальным решением для пользователей, которым нужна надежная, конфиденциальная синхронизация файлов в режиме реального времени. Он прост в настройке, кроссплатформенен и работает в фоновом режиме, автоматически синхронизируя файлы при обнаружении изменений.
В этом руководстве вы узнаете, как установить программное обеспечение Syncthing на серверы AlmaLinux 9. Вы также узнаете, как установить соединение между двумя экземплярами Syncthing и настроить общую папку в Syncthing.
Загрузка двоичного файла Syncthing
Для дистрибутива на базе RHEL необходимо установить syncthing вручную с помощью бинарного файла. Обязательно проверьте официальную страницу syncthing на GitHub, чтобы получить последнюю версию syncthing.
Сначала выполните приведенную ниже команду, чтобы установить пакеты редакторов curl, wget и nano на ваши системы.
sudo dnf install curl wget nano -y
Теперь загрузите бинарный файл syncthing из репозитория GitHub с помощью следующей команды.
curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
После загрузки извлеките файл syncthing tar.gz файл с помощью команды ниже. Затем переместите двоичный файл syncthing в папку /usr/bin/ каталог.
tar xvf syncthing-linux-amd64*.tar.gz sudo mv syncthing-linux-amd64-*/syncthing /usr/bin/
Наконец, проверьте расположение двоичного файла syncthing и его версию с помощью следующей команды.
which syncthing syncthing --version
Из следующего вывода видно, что syncthing xxx установлен по адресу /usr/bin/syncthing.
Запуск Syncthing в качестве службы Systemd
Syncthing можно запускать вручную, но удобнее запускать syncthing как службу systemd. Вы можете управлять службой syncthing с помощью утилиты systemctl.
Выполните следующую команду редактора nano, чтобы создать новый файл службы systemd /etc/systemd/system/[email protected].
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
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Сохраните файл и выйдите из редактора, когда закончите.
И наконец, самое главное, перезагрузите менеджер systemd с помощью следующей команды, чтобы применить изменения в вашей системе.
sudo systemctl daemon-reload
Настройка Firewalld
Теперь, когда вы настроили syncthing как службу systemd, вам нужно открыть порты для syncthing через firewalld. По умолчанию firewalld включает приложение syncthing, вы можете легко включить его.
Выполните приведенную ниже команду, чтобы добавить и включить службы syncthing и syncthing-gui в firewalld.
sudo firewall-cmd --zone=public --add-service=syncthing --permanent sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent
Теперь перезагрузите firewalld, чтобы он вступил в силу, а затем проверьте список включенных служб на firewalld.
sudo firewall-cmd --reload sudo firewall-cmd --list-all
Как видно из следующего результата, профиль синхронизации включен.
Инициализация узла Syncthing
Прежде чем начать подключение экземпляров синхронизации, необходимо инициализировать syncthing для каждого пользователя в вашей системе. В этом примере мы будем использовать два сервера Almalinux с разными пользователями:
- node1 с пользователем Том
- узел2 сервер с пользователем Джерри
Теперь выполните следующую команду, чтобы запустить службу syncthing и инициализировать установку syncthing. Не забудьте изменить пользователя tom с вашим именем пользователя.
sudo systemctl start [email protected]
После запуска службы syncthing новый каталог конфигурации ~/.local/state/synching и будет создан каталог Sync. Проверьте это с помощью команды ниже.
ls -ah ~/Sync ls -ah ~/.local/state/syncthing/
После этого откройте конфигурацию синхронизации ~/.local/state/syncthing/config.xml с помощью команды редактора nano, приведенной ниже.
sudo nano ~/.local/state/syncthing/config.xml
Внутри ‘gui‘ раздел, измените опцию ‘tls=false‘ к ‘tls=true‘, чтобы включить безопасный доступ для синхронизации.
192.168.10.41:8384GENERATED-API-KEY default
Сохраните файл и выйдите из редактора, когда закончите.
Затем выполните приведенную ниже команду, чтобы перезапустить syncthing и применить изменения.
sudo systemctl restart [email protected]
Далее включите и проверьте службу syncthing с помощью приведенной ниже команды. Убедитесь, что вы получили вывод включено и активный (работающий), что подтверждает статус службы синхронизации.
sudo systemctl enable [email protected] sudo systemctl status [email protected]
Настройка пользователя и пароля для Syncthing
Теперь, когда вы запустили и инициализировали syncthing, следующим шагом будет настройка аутентификации пользователей для вашего экземпляра syncthing.
Перед началом работы выполните команду ss, приведенную ниже, чтобы убедиться, что порт 8384 находится в СЛУШАТЬ государство.
ss -tulpn | grep 8384
В следующем выводе видно, что порт 8384 используется системой syncthing.
Откройте веб-браузер и зайдите на IP-адрес сервера, за которым следует порт 8384 (т.е: https://192.168.5.15:8384/). Если установка прошла успешно, вы должны получить страницу приветствия, показанную ниже.
Нажмите на кнопку Настройки меню для настройки аутентификации пользователя.
Нажмите на кнопку ГРАФИЧЕСКИЙ ИНТЕРФЕЙС вкладку, затем введите пользователя и пароль администратора. Обязательно отметьте опцию Использовать HTTPS для графического интерфейса. Нажмите Сохранить , чтобы подтвердить изменения.
Теперь вы будете перенаправлены на страницу входа в систему syncthing. Там введите свое имя пользователя и пароль, затем нажмите Войти.
Если настройка прошла успешно, перед вами откроется панель синхронизации, как показано ниже:
Ниже показана приборная панель syncthing из узел2.
Подключение инстанса Syncthing
На этом этапе вы завершили установку syncthing на оба сервера Almalinux. Пришло время подключить оба экземпляра syncthing, что можно сделать через панель веб-администрирования.
На узел1 приборная панель, нажмите Действие и выберите Показать ID чтобы получить подробную информацию об идентификаторе узла.
Вы можете увидеть идентификатор и qrcode узел1 экземпляр. Скопируйте идентификатор узла1, он понадобится для подключения к узел2 например.
Теперь перейдите к узел2 приборная панель, на Удаленные устройства раздел, нажмите Добавить удаленное устройство.
Вставьте идентификатор узел1, и введите имя как узел1.
Далее перейдите в раздел Совместное использование вкладка. В Нераспределенные папки , отметьте опцию Папка по умолчанию чтобы открыть общий доступ к целевой папке в узел1.
Также не забудьте проверить Автоприем опция для автоматического создания или совместного использования папок, которые node1 рекламирует в пути по умолчанию.
Щелкните . Сохранить для подтверждения.
Вернитесь в узел1 dashboard, и вы должны увидеть сообщения о запросах от узел2. Нажмите Добавить устройство , чтобы подтвердить.
При появлении запроса нажмите Сохранить для подтверждения. Также не забудьте проверить идентификатор устройства узел2.
Далее вы получите еще одно уведомление о том, что узел2 экземпляр будет совместно использовать папку Папка по умолчанию, нажмите Поделиться подтвердить.
По завершении процесса на узле1 вы увидите следующую информацию:
- [Папка по умолчанию с путём /home/tom/Sync это Поделиться С узел2.
- На Удаленные устройства раздел, вы можете увидеть узел2 со статусом Актуально.
Теперь проверьте узел2 приборной панели, вы должны увидеть аналогичную информацию о том, что Папка по умолчанию является общей с узел1. Кроме того, вы можете увидеть на Удаленные устройства раздел узел1 со статусом Актуально.
Тестовая синхронизация файлов
На данном этапе вы завершили настройку общей папки между двумя экземплярами syncthing. Теперь давайте попробуем создать новые файлы в каталоге Shared, чтобы проверить синхронизацию между двумя экземплярами syncthing.
На узел1 сервер, перейдите на ~/Sync каталог и выполните следующую команду для создания новых файлов.
cd ~/Sync/ touch file{1..50}.txt
ls -ah
Теперь перейдите в раздел узел2 сервер и перейдите на ~/Sync каталог. Затем проверьте файлы списка на ~/Sync каталог.
cd ~/Sync ls -ah
Если синхронизация прошла успешно, вы должны увидеть файлы, которые вы создали из каталога узел1 сервер.
Таким образом, установка синхронизации прошла успешно.
Заключение
Поздравляем! Вы успешно установили syncthing на серверы AlmaLinux 9. Вы также узнали, как установить соединение между экземплярами syncthing, настроить общую папку и проверить синхронизацию экземпляров syncthing.
Теперь вы можете добавлять новые устройства и подключаться к текущему экземпляру, чтобы обеспечить общий доступ к файлам и синхронизацию между несколькими устройствами.