Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Создание и подготовка сервера
Сначала нам нужно подготовить сервер для Syncthing.
Чтобы арендовать облачный или выделенный сервер в Simple-Server, необходимо пройти регистрацию.
Переходим по ссылке для регистрации нового пользователя. Мы выберем регистрацию на физическое лицо и заполним следующие данные:
-
ФИО,
-
адрес электронной почты,
-
Номер телефона.
Создание облачного сервера
После создания учётной записи можно приступить к аренде облачного сервера.
-
Переходим на страницу авторизации и входим в аккаунт, используя логин или адрес электронной почты и пароль, либо через Pass, ВКонтакте, GitHub, Google.
-
После успешной авторизации открывается панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить».
-
Выбираем операционную систему для установки на сервер. В нашем случае это будет Ubuntu версии 22.04.
-
Определяемся с регионом, в котором будет размещен сервер. Рекомендуется выбрать регион, находящийся ближе всего к вам.
Переходим на страницу авторизации и входим в аккаунт, используя логин или адрес электронной почты и пароль, либо через Pass, ВКонтакте, GitHub, Google.
После успешной авторизации открывается панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить».
Выбираем операционную систему для установки на сервер. В нашем случае это будет Ubuntu версии 22.04.
Определяемся с регионом, в котором будет размещен сервер. Рекомендуется выбрать регион, находящийся ближе всего к вам.
-
Далее выбираем необходимую конфигурацию для сервера. Для работы Syncthing производительность не имеет большого значения, поэтому выбираем сервер исходя из предпочтительного объема диска. Можно выбрать минимальный тариф и в дальнейшем расширить диск через панель управления.
-
По желанию можно оформить дополнительные услуги, такие как резервные копии и защита от DDoS-атак (последняя доступна только в Санкт-Петербурге).**
** -
Также можно заранее загрузить SSH-ключ, чтобы не входить на сервер с помощью пароля.
-
Можно задать необходимое имя для сервера, которое будет отображаться в панели управления, а также выбрать проект.
-
Для создания сервера необходимо нажать кнопку «Заказать». Если на вашем аккаунте недостаточно средств, появится предупреждение о необходимости пополнить баланс. После оплаты и создания сервера откроется Дашборд сервера, где можно будет найти IP-адрес, логин и пароль для подключения.
Обновление системы и установка необходимых пакетов
Сначала обновите систему и установите требуемые пакеты:
sudo apt update
sudo apt install software-properties-common apt-transport-https wget curl -yУстановка и настройка Syncthing
Теперь приступим непосредственно к установке Syncthing на созданный сервер.
Добавление репозитория Syncthing
Добавьте ключ GPG и репозиторий Syncthing:
Установка Syncthing из репозитория
Обновите пакеты и установите Syncthing:
sudo apt update
sudo apt install syncthing -yЗапуск и настройка службы Syncthing
Запустите и включите службу Syncthing:
sudo systemctl enable syncthing@<username>.service
sudo systemctl start syncthing@<username>.serviceЗамените username на ваше имя пользователя. Проверьте статус службы:
sudo systemctl status syncthing@<username>.serviceДалее нужно настроить работу с веб-интерфейсом Syncthing.
Настройка брандмауэра UFW
Разрешите трафик Syncthing через брандмауэр:
sudo ufw allow ssh
sudo ufw allow 22000/tcp
sudo ufw allow syncthing-gui
sudo ufw enableНастройка Syncthing для доступа по IP-адресу
Откройте файл конфигурации Syncthing и измените настройки:
nano ~/.local/state/syncthing/config.xmlИзмените строку <address>127.0.0.18384:</address> на <address>ip-вашего-сервера:8384</address>.
Сохраните файл и перезапустите службу, заменив username на имя вашего пользователя:
sudo systemctl restart syncthing@username.serviceДоступ к веб-интерфейсу Syncthing
Откройте браузер и перейдите по адресу http://ip-вашего-сервера:8384.
Вы увидите главную страницу. Сначала необходимо установить пользователя и пароль для аутентификации веб-интерфейса. Перейдите в «Settings» (Настройки) и выберите вкладку «GUI» (Графический интерфейс).
Введите имя пользователя в поле «GUI Authentication User» и пароль в поле «GUI Authentication Password». Сохраните настройки.
Теперь вы настроили Syncthing и видите панель управления.
Добавление папок и новых пользователей
Теперь можно приступать к работе Syncthing. Рассмотрим основные настройки и действия, которые могут вам потребоваться.
Отправляющие и принимающие папки
При создании новой папки в Syncthing можно выбрать один из трех типов папок:
- Отправляющая и принимающая (по умолчанию)
- Только отправляющая
- Только принимающая
Вы можете изменить тип папки в любой момент, зайдя в настройки папки и выбрав вкладку «Advanced» (Дополнительно).
Создание и добавление устройств
Чтобы начать синхронизацию файлов между устройствами, необходимо добавить удаленное устройство. На панели управления нажмите «Add Remote Device» (Добавить удаленное устройство) и введите ID устройства.
ID нужно получить на другом устройстве с установленным клиентом Syncthing. На официальном сайте есть ссылки на установку для Windows, Linux, MacOS и Android.
Те же действия необходимо проделать и на удаленном устройстве. Скопировать ID-девайса и добавить его на сервер.
Теперь вы готовы синхронизировать данные между устройствами.
Управление Syncthing через консоль
В Syncthing есть возможность настройки синхронизации без использования веб-интерфейса.
Для запуска Syncthing используйте команду:
Чтобы узнать идентификатор вашего устройства, выполните следующую команду:
Для добавления второго устройства в конфигурацию выполните команду:
syncthing cli config devices add --device-id $DEVICE_ID_BЧтобы поделиться папкой по умолчанию со вторым устройством, используйте команду:
syncthing cli config folders $FOLDER_ID devices add --device-id $DEVICE_ID_BВставьте путь до желаемой директории, которой вы хотите поделиться, вместо $FOLDER_ID.
Доступ к Syncthing по домену
Вы также можете настроить обращение к веб-интерфейсу Syncthing по домену вместо IP-адреса.
Настройка обратного прокси-сервера
Так как интерфейс Syncthing слушает на ip-адрес:8384, он доступен только для подключений по IP. Чтобы получить доступ к веб-интерфейсу Syncthing с удаленного компьютера по домену, можно настроить обратный прокси-сервер с помощью Nginx. В таком случае можно будет убрать из конфигурации Syncthing ранее произведенную настройку с доступом по IP-адресу и заблокировать 8384 порт для внешних подключений.
Nginx — это популярный веб-сервер и обратный прокси-сервер. Чтобы использовать Nginx, установите его, выполнив следующую команду:
Далее создайте конфигурационный файл для сервера:
sudo nano /etc/nginx/conf.d/syncthing.confДобавьте в этот файл следующий контент, заменив syncthing.example.com на ваше предпочитаемое доменное имя. Не забудьте добавить A-запись для этого поддомена. Если у вас нет реального доменного имени, вы можете приобрести его через панель Simple-Server, в разделе «Домены».
Сохраните и закройте файл. Проверьте конфигурацию Nginx и перезагрузите его:
sudo nginx -t
sudo nginx -s reloadПосле того, как вы направите ваше доменное имя на IP-адрес вашего сервера Ubuntu, введите ваше доменное имя в адресную строку браузера, чтобы получить доступ к веб-интерфейсу Syncthing.
Если ваш браузер не может подключиться к веб-интерфейсу Syncthing, возможно, вам нужно открыть порт 80 в брандмауэре. Например, если вы используете UFW, выполните следующую команду:
Защита веб-интерфейса Syncthing с помощью HTTPS
Чтобы зашифровать HTTP-трафик при посещении веб-интерфейса Syncthing через доменное имя, можно включить HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Сначала откройте порт 443 в брандмауэре:
Затем выполните следующую команду для установки клиента Let’s Encrypt (certbot):
Если вы используете Nginx, то также необходимо установить плагин Certbot для Nginx:
sudo apt install python3-certbot-nginxДалее выполните следующую команду для получения и установки TLS-сертификата и подставьте свой домен и почту:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email <you@example.com> -d <syncthing.example.com>--nginx: Использовать плагин для Nginx.--agree-tos: Принять условия обслуживания.--redirect: Принудительно использовать HTTPS с помощью 301 редиректа.--hsts: Добавить заголовок Strict-Transport-Security к каждому HTTP-ответу, заставляя браузер всегда использовать TLS для домена. Защищает от атак SSL/TLS Stripping.--staple-ocsp: Включает OCSP Stapling. Действительный OCSP-ответ прикрепляется к сертификату, который сервер предлагает во время TLS.
Сертификат должен быть получен и автоматически установлен.
Обновите веб-интерфейс Syncthing, и вы увидите, что HTTP-соединение автоматически перенаправляется на защищенное HTTPS-соединение.
Автоматическое продление сертификата
Для автоматического продления сертификатов, выпущенных с помощью Certbot, можно настроить задачу cron. В Certbot уже есть встроенная команда для проверки и продления сертификатов, если они истекают в течение 30 дней. Вот как это сделать:
Убедитесь, что Certbot установлен и доступен для использования.
Откройте crontab для редактирования:
Добавьте следующую строку в crontab для выполнения проверки и продления сертификатов дважды в день. Эта задача будет выполняться в 00:00 и 12:00 каждый день.
0 0,12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"0 0,12 * * *: Запускает задачу в 00:00 и 12:00 каждый день./usr/bin/certbot renew: Команда для проверки и продления сертификатов.--quiet: Убирает вывод ненужной информации, оставляя только ошибки.--post-hook "systemctl reload nginx": Перезагружает Nginx после успешного продления сертификата.
После добавления строки, сохраните изменения и закройте редактор.
Убедитесь, что cron работает и задача добавлена корректно:
sudo systemctl status cronВот и все! Теперь ваши сертификаты будут автоматически проверяться и продлеваться с помощью cron.
Версионирование в Syncthing
Настройка версионирования в Syncthing позволяет сохранить предыдущие версии файлов, обеспечивая защиту данных от случайного удаления или изменения. Следующие шаги помогут вам настроить версионирование файлов в Syncthing:
1. В браузере перейдите по адресу http://ip-вашего-сервера:8384.
2. На главной странице веб-интерфейса найдите папку, для которой вы хотите настроить версионирование.
3. Нажмите на иконку «Редактировать» (значок карандаша) рядом с именем папки.
4. В открывшемся окне настроек папки перейдите во вкладку «Версионирование» (Versioning).
4. Выберите тип версионирования:
- Никакого версионирования (No File Versioning): Этот параметр отключает версионирование.
- Простое версионирование (Simple File Versioning): Сохраняет предыдущие версии файлов на заданное количество дней.
- Сложное версионирование (Staggered File Versioning): Сохраняет несколько версий файлов с различными интервалами времени.
- Версионирование с временной меткой (Timestamp File Versioning): Добавляет временную метку к имени файла при сохранении версии.
- Версионирование через сценарий (External File Versioning): Использует внешний сценарий для управления версиями.
5. Настройте параметры версионирования. В зависимости от выбранного типа, у вас будут различные параметры для настройки. Например, для «Простого версионирования» можно указать количество дней для хранения старых версий файлов. Заполните необходимые поля и параметры, исходя из ваших потребностей.
6. После настройки параметров версионирования нажмите кнопку «Сохранить» (Save) в нижней части окна.
Теперь, когда версионирование настроено, Syncthing будет сохранять предыдущие версии файлов, что позволит вам восстанавливать их в случае случайного удаления или изменения. Эти функции особенно полезны для защиты важных данных и обеспечения дополнительной безопасности при синхронизации файлов между устройствами.
Дополнительную информацию по версированию вы можете найти в документации Syncthing.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.