Разное

Syncthing install freebsd: Syncthing on FreeBSD | 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗

Содержание

Настраиваем Syncthing. Синяя изолента в мелком бизнесе и дома / Хабр


У меня тут внезапно завалялся гайд по настройке syncthing. Я уверен, что многим это может пригодиться.

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


Syncthing, как и обычный torrent может пролезть практически через любые барьеры в виде файерволлов, NAT и тому подобное. В случае серых IP-адресов полагается на централизованные релеи и сервера-анонсеры. При этом можно спокойно поднять их самостоятельно, что дает полную независимость от инфрастуруктуры разработчиков. Все узлы в кластере равноправны. Можно задать двустороннюю и одностороннюю синхронизацию, когда изменения на удаленных копиях не затронут оригинал. Умеет версионирование. Красота, одним словом.

В моем случае решалась задача ежедневного создания резервных копий баз данных. 3 независимых отделения в разных концах города. Интернет через Yota-модем, воткнутый в Mikrotik. Канал узкий и нестабильный по ширине. Основная идея, которая была реализована — обмен по принципу torrent-протокола копиями баз по ночам, когда нагрузка на сеть минимальна, а базы никто не трогает. В результате, каждое подразделение хранит копии двух соседних. Хорошая избыточность и географическая распределенность, что уже спасло однажды, когда сервер внезапно был убит ударом молнии.

Устанавливаем. По умолчанию я имею в виду сервер на базе deb-based Linux, хотя у syncthing есть и версии для Windows и Android. Для продакшена добавим репозитории из стабильной ветки и установим:

# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

# Add the "stable" channel to your APT sources:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing

Теперь надо разобраться с демонами. Подобный софт не должен работать от имени root. Все созданные в результате синхронизации файлы должны принадлежать локальному пользователю. Поэтому есть два варианта — автоматический запуск как системный сервис либо в качестве пользовательского сервиса. Второй вариант будет работать только тогда, когда пользователь залогинился через ssh или авторизировался в локальной системе. Нас интересует системный демон и для этого лучше всего подойдет глубоко любимый общественностью systemd. Пути могут немного отличаться в разных дистрибутивах. Данный мануал применим к Debian и Ubuntu 16.04 Server. Для начала создаем юнит:

sudo nano /etc/systemd/system/[email protected]

И вносим туда следующее содержимое:

[Unit]

Description=Syncthing - Open Source Continuous File Synchronization for %I

Documentation=man:syncthing(1)

After=network.target

[email protected]

[Service]

User=%i

ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0

Restart=on-failure

SuccessExitStatus=3 4

RestartForceExitStatus=3 4

[Install]

WantedBy=multi-user.target

Теперь остается лишь активировать сервис от имени нужного пользователя и можно настраивать ноду.

sudo systemctl enable [email protected]
sudo systemctl start [email protected]

Интерфейс доступен по адресу 127.0.0.1:8384. Если вы хотите заходить с другой машины — придется поправить конфиг ~/.config/syncthing/config.xml. Дальнейшие настройки предельно просты — добавляются доверенные ноды по уникальному ключу, а затем расшариваются нужные каталоги в режиме одно- или двусторонней синхронизации. При необходимости можно вручную указать ip адрес и порт ноды, без этого для установления связи будет использоваться сеть серверов-анонсеров и релеев. Более того, вы можете поднять анонсеры и релеи на своей инфраструктуре, что позволяет использовать ПО в рамках разветвленной локальной сети компании.

В любой момент можно удобно просмотреть список синхронизируемых файлов. Крайне полезный и удобный в настройке получился софт. Ресурсы потребляет достаточно экономно. прямо сейчас в режиме ожидания ест около 15 мегабайт RAM и доли процента процессорного времени. Общий объем данных в кластере в районе 500 ГБ.

Всем удачи в экспериментах. Прочной изоленты.

Update 1

Спасибо datacompboy. Нашел интересный флаг для игнорирования удаления в мастер-ноде.

ignoreDelete is an advanced folder setting that affects the handling of incoming index updates. When set, incoming updates with the delete flag set are ignored.

Некоторая проблема в том, что с точки зрения других нод, это будет рассинхроном.

Assume two devices, “Alice” and “Bob”, are sharing a folder. Bob has set ignoreDelete.

New and updated files are synchronized as usual between Alice and Bob. When Bob deletes a file, it is deleted for Alice as well. When Alice deletes a file, Bob ignores that update and does not delete the file.

In this state, Bob is fully up to date from his own point of view, as is Alice from her own point of view.

However from the point of view of Alice, who deleted a file and propagated the update, Bob is now out of date because he is yet to remove the file that was deleted.

From the point of view of Bob, who ignored the delete entry from Alice, Alice is now out of date because she is missing the file that was deleted

.

Update 2

Дополнение от Stam_emg.
Для того, чтобы автоматически подтверждать клиентов, можно сделать так:

Надо включить режим Introducer на раздающем сервере, тогда при добавлении папки на клиенте он на сервер добавится без подтверждений.

docs.syncthing.net/users/introducer.html

свободная программа для синхронизации и резервного копирования — «Хакер»

Для синхронизации и резервного копирования файлов созданы десятки программ и онлайновых сервисов. Самый популярный из облачных хостингов — Dropbox, а для синхронизации по локальной сети часто используют BitTorrent Sync, Owncloud и Sparkleshare. Но все эти проекты имеют определённые недостатки. Например, BitTorrent Sync работает по проприетарному протоколу с закрытыми исходниками, да и криптографические методы там немного странные. С остальными сервисами тоже не всё в порядке, поэтому появление новой альтернативы не может не радовать.

Проект Syncthing — работа плодовитого программиста Якоба Борга. Хотя первая версия программы ещё не увидела свет, но судя по истории релизов, этот день не за горами. Якоб Борг, похоже, работает круглосуточно.

Для синхронизации файлов между узлами в P2P-сети написан простой, эффективный, открытый и безопасный протокол обмена блоками Block Exchange Protocol (BEP). Утилита Syncthing — это образцовая реализация данного протокола, хотя его можно использовать в любом программном обеспечении. Программа выпускается под Mac OS X, Windows, Linux, FreeBSD и Solaris, работает в локальной сети или через интернет, легко настраивается через веб-интерфейс.

От использования протокола BitTorrent решено отказаться по понятным причинам. Неизвестно даже, используется ли он в программе BitTorrent Sync.

Syncthing синхронизирует файлы между пирами по защищённым каналам TLS с использованием протокола обмена ключами с совершенной прямой секретностью, дабы исключить возможность прослушивания. Аутентификация каждого узла в сети происходит с помощью надёжного криптографического сертификата. Только после этого узел может присоединиться к файлообменному кластеру. Для обмена файлами нужно всего лишь сообщить ID своего компьютера тому человеку, с которым хотите организовать совместное хранилище. Синхронизация происходит по дате последнего изменения файлов, версионность пока не поддерживается, зато есть поддержка синхронизации на уровне блоков, то есть при маленьком изменении в большом файле будет обновляться только небольшая часть файла.

Разработка идёт полностью открыто, весь исходный код публикуют на Github. Протокол тоже полностью открыт, так что любые баги можно сразу обнаружить и исправить.

Советы по работе программы проще всего получить на форумах пользователей с тематическими подразделами по каждому вопросу.

Установка и настройка GNOME | Все о FreeBSD

Установка оконной системы XORG

Для обеспечения работоспособности GNOME достаточно установить минимальную сборку XORG из порта x11/xorg-minimal. Установка предложенной сборки Иксов имеет две особенности, первая из которых заключается в необходимости указания типа видеодрайвера в команде установки (если не указать тип видеодрайвера, будет установлен предлагаемый по умолчанию видеодрайвер vesa), вторая — в необходимости самостоятельного выбора и установки шрифтов с поддержкой русского языка. С учетом этих нюансов для установки минимальной сборки XORG, а также наиболее оптимальных TrueType-шрифтовLiberation и растровых шрифтов Terminus на компьютер с видеокартой на базе контроллера Intel следует выполнить команды:

1. # cd /usr/ports/x11/xorg-minimal

2. # make VIDEO_DRIVER=intel config-recursive install clean

3. # cd ../../x11-fonts/liberation-fonts-ttf

4. # make install clean

5. # cd ../terminus-font

6. # make install clean

При конфигурировании портов достаточно установить галочку [X] FIXED_MOUNTPOINTS use fixed mountpoints в окне Options for hal x.x.x.
После завершения установки нужно добавить в файл /etc/rc.conf строки, обеспечивающие автоматический запуск dbus и hald:

1. dbus_enable=»YES»

2. hald_enable=»YES»

и запустить эти демоны командами

 # /usr/local/etc/rc.d/dbus start 

# /usr/local/etc/rc.d/hald start

Какая-либо дополнительная настройка и отладка конфигурации Иксов не требуется.

Установка графической оболочки GNOME

Как и в случае XORG, я предлагаю установить минимальную сборку GNOME из порта x11/gnome2-lite. Из-за того, что предложенная сборка GNOME не имеет в своем составе такие компоненты, как GNOME Assistive Technology Service Provider Interface (подсистема переадресации событий интерфейса пользователя к доступным приложениям и адаптивным / вспомогательным технологиям), GNOME Display Manager (GDM) (менеджер входа в систему), GNOME Power Manager (подсистема управления питанием), File Roller (менеджер архивов для среды GNOME), Freedesktop sound themes (базовый набор тем звукового уведомления о событиях) и Seahorse (подсистема безопасного хранения паролей и ключей шифрования), придется установить их самостоятельно. С учетом перечисленных особенностей для установки минимальной сборки GNOME необходимо выполнить команды:

01. # cd /usr/ports/x11/gnome2-lite

02. # make config-recursive install clean

03. # cd ../gdm

04. # make install clean

05. # cd ../../accessibility/at-spi

06. # make install clean

07. # cd ../../sysutils/gnome-power-manager

08. # make install clean

09. # cd ../../security/seahorse

10. # make config-recursive install clean

11. # cd ../../archivers/file-roller

12. # make install clean

13. # cd ../../audio/freedesktop-sound-theme

14. # make install clean

В процессе выбора опций сборки портов следует убрать галочку [ ] MAPI Depend on evolution-mapi (pulls in samba4) в окне Options for gnome2-lite x.x.x. Кроме этого, я предпочитаю отказываться от всего, что так или иначе касается не используемого мной протокола IPv6.
После завершения установки нужно добавить в файл /etc/rc.conf строки, обеспечивающие автоматический запуск GDM с локалью ru.RU-UTF8:

1. gdm_enable=»YES»

2. gdm_lang=»ru_RU.UTF-8″

и запустить его командой

 # /usr/local/etc/rc.d/gdm start

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

Включение простейших визуальных эффектов

Для включения таких возможностей стандартного оконного менеджера Metacity, как отбрасывание теней, прозрачность и предварительный просмотр содержимого окон при переключении между ними комбинацией клавиш <Alt>+<Tab>, достаточно выполнить команду:

# gconftool-2 -s -t bool /apps/metacity/general/compositing_manager true

Сразу после выполнения указанной команды Вы увидите приятное улучшение внешнего вида всех компонентов GUI.

Настройка параметров рендеринга шрифтов

Даже с учетом того, что статья FreeBSD: Настройка шрифтов в десктопных приложениях готовилась во время использования KDE, ее рекомендации прекрасно подошли для GNOME. Во избежание возможных вопросов достаточно добавить, что настройка параметров рендеринга шрифтов в GNOME отличается от аналогичной процедуры для KDE только используемой терминологией. На этот раз придется включить Субпиксельное сглаживание, выбрать Слабое утончение и изменить значение DPI на 96. Для внесения таких изменений в конфигурацию GNOME достаточно выполнить команды:

1. # gconftool-2 -s -t string /desktop/gnome/font_rendering/antialiasing rgba

2. # gconftool-2 -s -t string /desktop/gnome/font_rendering/hinting slight

3. # gconftool-2 -s -t float /desktop/gnome/font_rendering/dpi 96

Если Вы используете Epiphany, Chromium или любой другой браузер на базе WebKit, в дополнение к перечисленным инструкциям придется создать в домашней папке пользователя, от имени которого выполняется работа в GNOME, файл .fonts.conf, который должен иметь такое содержимое:

01. <?xml version=»1.0″?>

02. <fontconfig>

03. <match target=»font» >

04. <edit mode=»assign» name=»rgba»><const>rgb</const></edit>

05. <edit mode=»assign» name=»hinting»><bool>true</bool></edit>

06. <edit mode=»assign» name=»hintstyle»><const>hintslight</const></edit>

07. <edit mode=»assign» name=»antialias»><bool>true</bool></edit>

08. <edit mode=»assign» name=»lcdfilter»><const>lcddefault</const></edit>

09. </match>

10. </fontconfig>

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

Шпаргалка по работе с портами FreeBSD

За несколько лет работы с FreeBSD 8/9 собрал множество заметок по работе с софтом в FreeBSD. Собрав их все в месте выкладываю в одном посте.

Поиск порта можно осуществить четырьмя способами:

Установка и конфигурирование  портов

Процедура установки

Рассмотрим процедуру инсталляции порта по этапам.

1. Конфигурирование порта:

#: make config

2. Конфигурирование и установка необходимых зависимостей порта

#: make configure

3. Сборка 

#: make

4. Установка

#: make install

5. Очистка созданных во время компиляции и конфигурирования файлов

#: make clean

Операции можно сократить:

#: make configure && make && make install && make clean

Полезные опции утилиты make

Просмотреть получившуюся конфигурацию (созданную командой make config) порта можно командой:

#: make showconfig

Загрузка всех зависимых портов:

#: make fetch-recursive

У каждого порта можно узнать список его  зависимостей:

#: make all-depends-list

#: make run-depends-list

#: make build-depends-list

Удаление файлов созданных во время сборки зависимых портов:

#: make clean-depends

Переустановка пакета:

#: make reinstall

Обновление установленного порта

Для поддержания системы в актуальном состоянии необходимо периодически производить обновление установленных пакетов. Это можно сделать с помощью утилиты portupgrade (/usr/ports/sysutils/portupgrade/)

Обновление порта:

#: portupgrade название_программы

Если вы хотите обновить только определенное приложение, но не полностью базу данных, используйте portupgrade pkgname, с флагом -r, если portupgrade должен отработать все пакеты, которые зависят от указанного, и использовать флаг -R для отработки всех пакетов, которые требуют указанные пакеты.

Так же можно обновить пакет перейдя в его директорию в папке /usr/ports/ и выполнив:

#: portupgrade 

Обновление дерева портов через portsnap 

Для первого запуска:

#: portsnap fetch

#: portsnap extract

Для всех последующих запусков:

#: portsnap fetch

#: portsnap update

Или

#: portsnap fetch update

Обновление портов с помощью portupgrade

#: portsnap fetch update

#: portupgrade -arR

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

Ключи portupgrade:

-a — обновление всех портов, для которых portversion выявила «старение» по сравнению с текущим деревом;

-r — рекурсивное обновление всех портов, которые зависят от установленных и обновляемых;

-R — рекурсивное обновление всех портов, от которых зависят пакеты, установленные в системе.

Две последние опции могут показаться тавтологичными, но это не так: только их сочетание позволяет корректно обновить все установленные ранее пакеты (да и то не всегда — в некоторых случаях может потребоваться ручное вмешательство). 

Устранение возможных неполадок и пере конфигурирование собранного порта.

Варианты развития событий:

Вариант 1 — необходимо пере конфигурировать пакет.

Необходимо удалить собственную заданную с помощью make config конфигурацию:

#: make rmconfig

Затем можно начинать с начало всю процедуру инсталляции

Вариант2 — необходимо пересобрать порт с другим набором зависимостей или конфигурациями этих зависимостей.

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

… Found saved configuration for <имя пакета> …

Один раз заданные опции порта хранятся в /var/db/ports//options .

Для того чтобы иметь возможность заново переконфигурировать все зависимости пакета следует файл options удалить

Удаление портов

Удаление портов с помощью утилиты pkg_deinstall

Ключ -r

Удалить все пакеты, которые от него не зависят без учета зависимостей от него других пакетов. Т. е. удаляет порт и все, что от него зависит — рекурсия к листьям.

Ключ -R

Удалить пакеты и пакеты, которые от него зависят — рекурсия к корню. При этом пакеты используемые в других портах будут пропущены (если pkg_deinstall без ключа -f).

Аудит установленных портов и зависимостей между ними

Утилита pkg_tree

Утилита pkg_tree строит визуальное дерево пакетов и их зависимостей.

#: cd /usr/ports/ports-mgmt/pkg_tree ; make install clean

Используемые ключи:

  1. -v — зависимости зависимостей.
  2. -t — чтобы показывать только верхнего уровня пакетов.
  3. -b — чтобы показать только нижний уровень пакеты.
  4. -t -q — даст список верхнего уровня пакетов без их зависимостей, установка только этих пакетов должны установить всех установленных пакетов.

Список установленных пакетов и портов:

#: pkg_info

Поиск установленных пакетов по части названия

Для поиска пакета с помощью утилиты pkg_info необходимо ввести не только полное название, но и версию пакета, что иногда может вызвать трудность.

C ключом -x можно указать только первую часть названия пакета:

#: pkg_ingp -xc lynk

Как узнать какие файлы относятся к данному пакету:

#: pkg_info -xL имя_пакета

Как узнать какому пакету необходимо обновление:

#: pkg_version -v | grep «need»

Синхронизация файлов с помощью rsync по ssh Linux/FreeBSD

Для копирования файлов по сети используется много инструментов. Наиболее распространенный из них — ftp, многие используют и scp. Для синхронизации данных используется rsync.

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

Помимо указанных выше преимуществ, у rsync есть возможность передачи данных по защищенному соединению — ssh, это, несомненно, плюс к безопасности этой программы. Также, rsync сначала записывает передаваемую информацию во временный файл, чтобы исключить потерю информации в случае непредвиденных обстоятельств(отключение интернета или электричества).

Если имеется доступ по ssh к серверу, это наиболее простой способ для осуществления синхронизации. Rsync по ssh — это частный случай использования, общий вид команды выглядит так:

rsync [ОПЦИИ] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ИСТОЧНИК… [ПОЛУЧАТЕЛЬ]
Pull (копирование файлов с удаленной системы на локальную)

rsync [ОПЦИИ] ИСТОЧНИК 1 [ИСТОЧНИК N] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ПОЛУЧАТЕЛЬ
Push (копирование файлов с локальной машины на удаленную)

В официальной документации по rsync «Push» — это копирование файлов с локальной машины на удалённую, а «Pull» — с удалённой на локальную.
Обязательным параметром является «ИСТОЧНИК», их может быть несколько.

Основные ключи:

-a,  режим архивирования, включает ключи -rlptgoD;
-r,  каталоги копируются рекурсивно;
-l,  копировать символические ссылки «как есть», то есть rsync не будет следовать по ним, обращаясь к файлам;
-p,  сохранение прав доступа к файлам;
-t,  сохранение времени модификации файлов;
-g, -o, сохранение владельца и группы файла;
-D,  сохранение файлов устройств и специальных файлов;
-u,  режим обновления, пропускаются файлы на получателе, имеющие более позднюю дату модификации, чем в источнике;
-v,  выводит имена копируемых файлов;
-q,  не выводит сообщения об ошибках;
-z,  включение режим сжатия;
-P,  отображение прогресса при копировании;
-с,  проверка файлов по контрольной сумме, а по размеру и дате модификации. Дополнительная нагрузка на процессор, сильно увеличивает время синхронизации;
—ignore-errors,  продолжение копирования и удаления даже после появления ошибок;
—max-delete,  максимальное число удаляемых за один раз файлов и каталогов;
—files-from=FILE,  задается список файлов и директорий для копирования в файле;
-e ssh,  использование при копировании ssh;
—bwlimit=KBPS,  ограничение скорости копирования.

Примеры:

# rsync -zavP /backup/file1/ /backup/file2/ [email protected]:/backup
Скопируется на сервер 192.168.0.1 содержимое папок /backup/file1/ /backup/file2/ в папку backup

# rsync -zavP /backup/file1 /backup/file2 [email protected]:/backup
В этом примере уже скопируются сами папки

Как ограничить скорость передачи файлов? Нужно поставить опцию —bwlimit :

# rsync -zavP —bwlimit=100 /backup/file1/ [email protected]:/backup

Как синхронизировать файлы с проверкой по контрольной сумме?

# rsync -сzavP /backup/file1/ [email protected]:/backup

Как скопировать файлы с удаленной машины на локальную?

# rsync -zavP [email protected]:/backup /backup/file1/

Как исключить файл или директорию при копировании?

# rsync -azVP —exclude /temp/ /home/data/ [email protected]:/backup
Исключаем директорию /temp

Как использовать нестандартный порт ssh при копировании rsync?

# rsync -zavP ‘-e ssh -p 12345’ /var/lib/ [email protected]:/backup

синхронизации на FreeBSD | 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗

Эта статья покажет вам, как настроить Syncthing в системе FreeBSD.

Одно предупреждение в начале — все символы> и <в файле конфигурации Syncthing были изменены на} и {соответственно. Это из-за ограничения WordPress . Помните, что конфигурация Syncthing — это файл XML.

Для большинства моих личных нужд резервного копирования я всегда использую rsync (1) , но на ограниченных устройствах, таких как телефоны или планшеты, это настоящий PITA.Таким образом, для автоматического импорта фотографий и других файлов с таких устройств я предпочитаю использовать инструмент Syncthing.

Если вы еще не слышали об этом, я процитирую сайт Syncthing https://syncthing.net/. «Syncthing заменяет проприетарные службы синхронизации и облачные службы чем-то открытым, надежным и децентрализованным. Ваши данные — это только ваши данные, и вы заслуживаете выбора, где они будут храниться, будут ли они переданы третьей стороне и как они передаются через Интернет ». … и Wikipedia «Syncthing — это бесплатное приложение для одноранговой синхронизации файлов с открытым исходным кодом, доступное для Windows, Mac, Linux, Android, Solaris, Darwin и BSD.Он может синхронизировать файлы между устройствами в локальной сети или между удаленными устройствами через Интернет. Безопасность данных и безопасность данных заложены в конструкции программного обеспечения ».

Можно спросить, чем он отличается, например, от Nextcloud. Что ж, с Nextcloud в вашем распоряжении почти «весь» облачный стек с пользовательскими приложениями. С Syncthing у вас есть инструмент синхронизации между устройствами и ничего более.

Изначально я хотел — аналогично Nextcloud на FreeBSD — установить все в FreeBSD Jail.Проблема в том, что Syncthing не работает в виртуализации FreeBSD Jails, как я понял после нескольких часов попыток выяснить, что не так. Интерфейс управления Syncthing работал, как ожидалось, и был доступен, но Syncthing на мобильном телефоне Android не смог подключиться / синхронизироваться с экземпляром Syncthing в FreeBSD Jail. Конечно, я мог подключиться к интерфейсу управления Syncthing с телефона, но все равно не смог сделать резервную копию с использованием протокола Syncthing. Зная это ограничение, у вас есть 3 варианта на выбор:

  • Настройте синхронизацию на хосте FreeBSD, как и любую другую службу.
  • Используйте виртуализацию FreeBSD Bhyve для экземпляра Syncthing.
  • Используйте пакет / порт VirtualBox для экземпляра Syncthing.

Я выбрал первый вариант. На самом деле это то же самое для Bhyve и VirtualBox, но требуется дополнительная работа со слоем виртуализации. Я буду использовать мобильный телефон на базе Android в качестве примера для клиента Syncthing, но вы также можете синхронизировать данные между компьютерами.

Еще одна вещь: не существует таких понятий, как сервер Syncthing и клиент Syncthing.Все экземпляры / установки Syncthing одинаковы. Вы можете просто добавить / удалить устройства и каталоги для синхронизации между этими устройствами. Я использовал термин «клиент» выше, чтобы показать, что я буду автоматизировать копирование файлов с телефона на сервер FreeBSD с помощью экземпляра Syncthing, не более того.

Вот несколько основных шагов, которые я проделал на хосте FreeBSD. Такие вещи, как база данных псевдонимов, часовой пояс, DNS и базовые настройки FreeBSD в файле ядра /etc/rc.conf .

 #  newaliases -v 
/ etc / mail / aliases: 29 псевдонимов, самые длинные 10 байт, всего 297 байт

#  ln -s / usr / share / zoneinfo / Europe / Warsaw / etc / localtime 

#  дата 
Пт 17 августа, 22:05:18 CEST 2018

#  echo nameserver 1.1.1.1> /etc/resolv.conf 

#  ping -c 3 freebsd.org 
PING freebsd.org (96.47.72.84): 56 байт данных
64 байта из 96.47.72.84: icmp_seq = 0 ttl = 51 time = 117.918 мс
64 байта из 96.47.72.84: icmp_seq = 1 ttl = 51 time = 115.169 мс
64 байта из 96.47.72.84: icmp_seq = 2 ttl = 51 time = 115.392 мс

--- статистика пинга freebsd.org ---
3 пакета передано, 3 пакета получено, потеря пакетов 0,0%
туда и обратно мин. / сред. / макс. / стандартное отклонение = 115,169 / 116,160 / 117,918 / 1,247 мс
 

… и основной файл конфигурации FreeBSD.

 #  cat /etc/rc.conf
  # СЕТЬ
  имя хоста = blackbox.local
  ifconfig_re0 = "inet 10.0.0.100/24 ​​вверх"
  defaultrouter = "10.0.0.1"

# DAEMONS | ДА
  zfs_enable = ДА
  sshd_enable = ДА
  ntpd_enable = ДА
  syncthing_enable = ДА
  syslogd_flags = "- s -s"

# DAEMONS | нет
  sendmail_enable = НЕТ
  sendmail_submit_enable = НЕТ
  sendmail_outbound_enable = НЕТ
  sendmail_msp_queue_enable = НЕТ

# ДРУГИЕ
  dumpdev = НЕТ
  update_motd = НЕТ
  virecover_enable = НЕТ
  clear_tmp_enable = ДА

 

Сначала мы переключимся с ежеквартального на последнюю ветку pkg (8) , чтобы получить самые последние пакеты.

 #  grep url: /etc/pkg/FreeBSD.conf 
  url: "pkg + http: //pkg.FreeBSD.org/$ {ABI} / ежеквартально",

#  sed -i 's / квартал / последний / g /etc/pkg/FreeBSD.conf 

#  grep url: /etc/pkg/FreeBSD.conf 
  url: "pkg + http: //pkg.FreeBSD.org/$ {ABI} / latest",
 

Теперь мы загрузим pkg (8) , а затем обновим его базу данных до последней доступной.

 #  env ASSUME_ALWAYS_YES = да обновление пакета -f 
Загрузочный pkg из pkg + http: // pkg.FreeBSD.org/FreeBSD:11:amd64/latest, подождите ...
Проверка подписи с помощью доверенного сертификата pkg.freebsd.org.2013102301 ... выполнено
[syncthing.local] Установка pkg-1.10.5_1 ...
[syncthing.local] Извлечение pkg-1.10.5_1: 100%
Обновление каталога репозитория FreeBSD ...
pkg: Ошибка загрузки репозитория FreeBSD: не удалось получить доступ к файлу репо (/var/db/pkg/repo-FreeBSD.sqlite): такого файла или каталога нет
[syncthing.local] Получение meta.txz: 100% 944 Б 0,9 КБ / с 00:01
[syncthing.local] Получение packagesite.txz: 100% 6 MiB 352.7кБ / с 00:19
Обработка записей: 100%
Обновление репозитория FreeBSD завершено. Обработано 32388 пакетов.
Все репозитории обновлены.
 

… а затем установить Syncthing из пакетов pkg (8) .

 #  pkg install -y syncthing 
Обновление каталога репозитория FreeBSD ...
Репозиторий FreeBSD обновлен.
Все репозитории обновлены.
Будет затронут 1 следующий пакет (из 0 проверенных):

Новые пакеты для УСТАНОВКИ:
        синхронизация: 0,14.48

Количество устанавливаемых пакетов: 1

Для этого потребуется на 88 МБ больше места.
15 МиБ для загрузки.
[1/1] Получение syncthing-0.14.48.txz: 100% 15 MiB 525.3kB / s 00:29
Проверка целостности ... выполнено (0 конфликтующих)
[1/1] Установка syncthing-0.14.48 ...
===> Создание групп.
Создание группы "синхронизация" с gid "983".
===> Создание пользователей
Создание пользователя, «синхронизирующего» с uid «983».
[1/1] Извлечение syncthing-0.14.48: 100%
Сообщение от syncthing-0.14.48:

ВНИМАНИЕ: эта версия не имеет обратной совместимости с 0.13.x, 0.12.x, 0.11.x
ни выпусков 0.10.x!

Для получения дополнительной информации прочтите:

https://forum.syncthing.net/t/syncthing-v0-14-0/7806
https://github.com/syncthing/syncthing/releases/tag/v0.13.0
https://forum.syncthing.net/t/syncthing-v0-11-0-release-notes/2426
https://forum.syncthing.net/t/syncthing-syncthing-v0-12-0-beryllium-bedbug/6026
 

Пакет Syncthing создал для нас синхронизирующих пользователя и группу .

 #  синхронизация идентификаторов 
uid = 983 (синхронизация) gid = 983 (синхронизация) группы = 983 (синхронизация)
 

Посмотрите, насколько мала Syncthing, это все файлы, установленные пакетом net / syncthing .

 #  информация о пакете -l синхронизация 
syncthing-0.14.48:
        / USR / местные / бен / stbench
        / USR / местные / бен / stcli
        / USR / местные / bin / stcompdirs
        / usr / местный / bin / stdisco
        / USR / местные / бен / stdiscosrv
        / USR / местные / бен / стивентс
        / USR / местные / бен / stfileinfo
        / USR / местные / бен / stfinddevice
        / USR / местные / бен / stgenfiles
        / USR / местные / bin / stindex
        / USR / местные / бен / strelaypoolsrv
        / USR / местные / бен / strelaysrv
        / USR / местные / бен / stsigtool
        / USR / местные / бен / sttestutil
        / USR / местные / бен / stvanity
        / usr / местный / bin / stwatchfile
        / USR / местные / бен / синхронизация
        / usr / local / etc / rc.d / синхронизация
        /usr/local/etc/rc.d/syncthing-discosrv
        /usr/local/etc/rc.d/syncthing-relaypoolsrv
        /usr/local/etc/rc.d/syncthing-relaysrv
        / usr / local / share / doc / syncthing / АВТОРЫ
        / usr / local / share / doc / syncthing / ЛИЦЕНЗИЯ
        /usr/local/share/doc/syncthing/README.md
 

Как показано выше, у нас уже есть syncthing_enable = YES , добавленный в файл /etc/rc.conf .

 #  /usr/local/etc/rc.d/syncthing rcvar 
# синхронизация
#
syncthing_enable = "НЕТ"
#   (по умолчанию: "")

#  grep syncthing_enable / etc / rc.conf 
  syncthing_enable = ДА
 

Также из сценария запуска Syncthing rc (8) вы можете проверить другие параметры запуска.

 #  меньше -N /usr/local/etc/rc.d/syncthing 
(...)
      9 # Добавьте следующие строки в /etc/rc.conf.local или /etc/rc.conf
     10 #, чтобы включить эту услугу:
     11 #
     12 # syncthing_enable (bool): по умолчанию установлено NO.
     13 # Установите ДА, чтобы включить синхронизацию.
     14 # syncthing_home (путь): каталог, в котором выполняется синхронизация конфигурации
     15 # данные сохранены.16 # По умолчанию: / usr / local / etc / syncthing
     17 # syncthing_log_file (путь): файл журнала синхронизации
     18 # По умолчанию: /var/log/syncthing.log
     19 # syncthing_user (пользователь): настроить пользователя на запуск синхронизации.
     20 # По умолчанию "синхронизация".
     21 # syncthing_group (группа): установить группу для запуска синхронизации.
     22 # По умолчанию "синхронизация".
(...)
 

Syncthing требует / var / log / syncthing.log файл журнала. Теперь давайте создадим его и установим для него подходящего владельца и права.

 #  ls /var/log/syncthing.log 
ls: /var/log/syncthing.log: нет такого файла или каталога

# :> /var/log/syncthing.log 

#  chown syncthing: syncthing /var/log/syncthing.log 

#  ls -l /var/log/syncthing.log 
-rwxr-xr-x 1 синхронизация syncthing 0 2018.08.19 01:06 /var/log/syncthing.log
 

Поскольку мы будем использовать этот файл журнала, нам также необходимо позаботиться о его ротации, для этого мы воспользуемся встроенным демоном FreeBSD newsyslog (8) .

 #  cat> /etc/newsyslog.conf.d/syncthing << __EOF
# logfilename [owner: group] размер подсчета режима при флагах [/ pid_file]
/var/log/syncthing.log синхронизация: синхронизация 640 7 100 * JC
__EOF 

#  cat /etc/newsyslog.conf.d/syncthing 
# logfilename [owner: group] размер подсчета режима при флагах [/ pid_file]
/var/log/syncthing.log синхронизация: синхронизация 640 7 100 * JC

#  newsyslog -v | grep синхронизация 
Обработка / etc / newsyslog.conf.d / syncthing
/var/log/syncthing.log: размер (Кб): 0 [100] -> пропуск
 

Давайте попробуем запустить Syncthing в первый раз.

 #  начало синхронизации службы 
Запускаем синхронизацию.
демон: pidfile `` /var/run/syncthing.pid '': в доступе отказано
/usr/local/etc/rc.d/syncthing: ВНИМАНИЕ: не удалось запустить синхронизацию
 

Похоже, что rc (8) Syncthing startup не создает файл PID автоматически, давайте создадим его.

# :> / var / run / syncthing.pid 

#  chown syncthing: syncthing /var/run/syncthing.pid 

#  ls -l /var/run/syncthing.pid 
-rwxr-xr-x 1 синхронизация syncthing 0 2018.08.19 01:08 /var/run/syncthing.pid
 

Теперь попробуем снова запустить синхронизацию.

 #  начало синхронизации службы 
Запускаем синхронизацию.
 

Лучше. Посмотрим, какие порты он использует.

 #  sockstat -l -4 | grep синхронизация 
синхронизация синхронизация 27499 9 tcp46 *: 22000 *: *
синхронизация синхронизация 27499 10 udp4 *: 18876 *: *
синхронизация синхронизация 27499 13 udp4 *: 21027 *: *
Синхронизация 27499 20 tcp4 127.0.0.1: 8384 *: *
 

… и проверьте его файл журнала.

 #  cat /var/log/syncthing.log 
[начало] 01:08:40 ИНФОРМАЦИЯ: Создание ключа ECDSA и сертификата для синхронизации ...
[MPN4S] 01:08:40 ИНФОРМАЦИЯ: синхронизация v0.14.48 "Dysprosium Dragonfly" (go1.10.3 freebsd-amd64) root @ 111amd64-default-job-12 2018-08-08 09:19:19 UTC [noupgrade]
[MPN4S] 01:08:40 ИНФОРМАЦИЯ: Мой идентификатор: MPN4S65-UQWC5SP-3LR2XDB-T5JNYET-VQEQC3X-DSAUI27-BQQKZQE-BWQ3NAO
[MPN4S] 01:08:41 ИНФОРМАЦИЯ: Производительность однопоточного SHA256 составляет 131 МБ / с с использованием minio / sha256-simd (89 МБ / с с использованием crypto / sha256).[MPN4S] 01:08:41 ИНФОРМАЦИЯ: папка по умолчанию создана и / или связана с новой конфигурацией
[MPN4S] 01:08:41 ИНФОРМАЦИЯ: Конфигурация по умолчанию сохранена. Отредактируйте /usr/local/etc/syncthing/config.xml по вкусу или используйте графический интерфейс
[MPN4S] 01:08:42 ИНФОРМАЦИЯ: скорость хеширования составляет 112,85 МБ / с.
[MPN4S] 01:08:42 ИНФОРМАЦИЯ: Обновление версии схемы базы данных с 0 до 2 ...
[MPN4S] 01:08:42 ИНФОРМАЦИЯ: обновлен тип символической ссылки для 0 записей индекса и добавлено 0 недопустимых файлов в глобальный список
[MPN4S] 01:08:42 ИНФОРМАЦИЯ: завершено обновление версии схемы базы данных с 0 до 2.
[MPN4S] 01:08:42 ИНФОРМАЦИЯ: Нет сохраненных метаданных папки для "по умолчанию": пересчет
[MPN4S] 01:08:42 ВНИМАНИЕ: Создание ужасного 

Nextcloud 13 на FreeBSD | 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗

Сегодня я хотел бы поделиться настройкой Nextcloud 13, работающей в системе FreeBSD.Чтобы сделать вещи более интересными, он будет работать внутри FreeBSD Jail. Я не буду описывать здесь саму установку Nextcloud, поскольку она достаточно велика для нескольких сообщений в блоге.

Официальная документация Nextcloud 13 рекомендует следующую настройку:

  • MySQL / MariaDB
  • PHP 7.0 (или новее)
  • Apache 2.4 (с mod_php)

Я предпочитаю базу данных PostgreSQL MySQL / MariaDB и предпочитаю быстрый и экономичный веб-сервер Nginx Apache, поэтому моя установка основана на следующих компонентах:

  • PostgreSQL 10.3
  • PHP 7.2.4
  • Nginx 1.12.2 (с php-fpm)
  • Memcached 1.5.7

Подсистема Memcached наименее важна, ее можно легко заменить на что-то более современное, например, Redis. Я предпочитаю не использовать сторонние инструменты для управления FreeBSD Jails. Не потому что они плохие или что-то в этом роде. Есть очень много вариантов для хорошего управления FreeBSD Jails, и я хочу предоставить ОБЩИЙ пример для Nextcloud 13 в Jail, а не для конкретного инструмента управления.

Начнем с подготовки хоста FreeBSD с необходимыми настройками. Нам нужно разрешить использование сырых сокетов в Jails. Для будущих необязательных обновлений Jail мы также позволим использовать chflags (1) в Jails.

 хост #  cat >> /etc/sysctl.conf << __EOF 

  # РАЗРЕШЕНИЯ ДЛЯ СЫРЬЯ В ТЮРЬМЕ 
  security.jail.allow_raw_sockets = 1 

  # РАЗРЕШИТЬ ОБНОВЛЕНИЯ В ТЮРЬМЕ 
  security.jail.chflags_allowed = 1 
  __EOF 

host #  безопасность sysctl.jail.allow_raw_sockets = 1 
security.jail.allow_raw_sockets: 0 -> 1

хост #  sysctl security.jail.chflags_allowed = 1 
security.jail.chflags_allowed: 0 -> 1 

Я бы также включил ограничения rctl (8) для удобных ограничений ресурсов в хост-системе.

 хост #  cat >> /boot/loader.conf << __EOF 

  # ОГРАНИЧЕНИЯ РЕСУРСОВ RACCT / RCTL 
  kern.racct.enable = 1 
  __EOF  

Полный джейл после завершения установки занимает меньше 800 МБ, если вы удалите ненужные части после завершения установки.С полным деревом портов FreeBSD и текущей информацией о portsnap (8) требуется около 1,6 ГБ места.

  МБ ПУТЬ DESC 
1670 / jail / nextcloud (завершить Nextcloud 13 Jail)
 726 / jail / nextcloud / usr / ports (можно удалить после установки)
 178 / jail / nextcloud / var / db / portsnap (можно удалить после установки)
 

Я использовал свой ноутбук в качестве хоста Jail. Вот почему Jail будет настроен на использование беспроводного интерфейса wlan0 и 192.168.43.100 адрес.

Чтобы различать команды, которые я набираю на хосте , системе и nextcloud.local Jail, я использую два разных приглашения, таким образом должно быть очевидно, какую команду выполнять и где.

Команда в системе хоста .

 host #  команда  

Команда на nextcloud.local Jail.

 root @ nextcloud: / #  команда  

Вот запущенный джейл и его процессы.

 хост #  jls 
   JID IP-адрес Имя хоста Путь
    10 192.168.43.100 nextcloud.local / jail / nextcloud 
 host #  ps axwww -o% cpu, rss, time, command -J nextcloud 
% CPU RSS ВРЕМЯ КОМАНДА
 0,0 2032 0: 00.01 / usr / sbin / syslogd -s -s
 0,0 5504 0: 00.00 / usr / sbin / sshd
 0.0 2056 0: 00.01 / usr / sbin / cron -s
 0.0 24196 0: 00.04 postgres: процесс контрольной точки (postgres)
 0.0 23040 0: 00.04 postgres: процесс записи (postgres)
 0.0 23036 0: 00.07 postgres: процесс записи wal (postgres)
 0.0 23328 0: 00.06 postgres: процесс автоочистки (postgres)
 0.0 12764 0: 00.24 postgres: процесс сборщика статистики (postgres)
 0.0 23204 0: 00.00 postgres: bgworker: средство запуска логической репликации (postgres)
 0.0 23036 0: 00.23 / usr / local / bin / postgres -D / var / db / postgres / data
 0.0 6072 0: 00.00 nginx: главный процесс / usr / local / sbin / nginx
 0.0 6548 0: 00.00 nginx: рабочий процесс (nginx)
 0.0 7604 0: 00.15 nginx: рабочий процесс (nginx)
 0.0 6548 0: 00.00 nginx: рабочий процесс (nginx)
 0.0 6544 0: 00.00 nginx: рабочий процесс (nginx)
 0.0 17600 0: 01.25 / usr / local / bin / memcached -l 192.168.43.100 -d -P /var/run/memcached/memcached.pid
 0.0 31372 0: 00.01 php-fpm: главный процесс (/usr/local/etc/php-fpm.conf) (php-fpm)
 0.0 31388 0: 00.00 php-fpm: пул www (php-fpm)
 0.0 31388 0: 00.00 php-fpm: пул www (php-fpm)
 0.0 31388 0: 00.00 php-fpm: пул www (php-fpm)
 0.0 31388 0: 00.00 php-fpm: бассейн www (php-fpm) 

Сначала мы подготовим Jail для установки Nextcloud 13.Для этого создадим несколько наборов данных ZFS. Я буду использовать мой локальный пул ZFS. Я также создам набор данных ZFS для данных PostgreSQL с размером записи 8k.

 хост #  zfs create -o mountpoint = / jail local / jail 
хост #  zfs create -o mountpoint = / jail / nextcloud local / jail / nextcloud 
host #  zfs create -o mountpoint = / jail / nextcloud / var / db / postgres / data -o recordsize = 8k local / jail / nextcloud / pgsql 
host #  zfs get -r recordsize local / jail 
ИМЯ СОБСТВЕННОСТЬ СТОИМОСТЬ ИСТОЧНИК
размер локальной / jail-записи 128K по умолчанию
local / jail / nextcloud recordize 128K по умолчанию
local / jail / nextcloud / pgsql recordize 8K локальный 

Теперь загрузим базу FreeBSD по пути / jail / nextcloud .

 хост #  cd / jail / nextcloud 
хост #  fetch -o - http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/11.1-RELEASE/base.txz | tar --unlink -xpJf - -C / тюрьма / nextcloud 
- 100% 99 МБ 689 кбит / с 02m28s
хост #  ls / jail / nextcloud 
.cshrc bin / АВТОРСКИЕ ПРАВА и т. д. / libexec / mnt / proc / root / sys usr /
.profile загрузки / dev / lib / media / net / rescue / sbin / tmp / var /
 

У нас есть базовая тюрьма FreeBSD, полученная по пути / jail / nextcloud , давайте настроим хост для этой тюрьмы.

У нас будет настроен только один Jail (для простоты), nextcloud.local Jail.

 хост #  cat >> /etc/jail.conf << __EOF
nextcloud {
  host.hostname = nextcloud.local;
  ip4.addr = 192.168.43.100;
  interface = wlan0;
  путь = / тюрьма / nextcloud;
  exec.start = "/ bin / sh / etc / rc";
  exec.stop = "/ bin / sh /etc/rc.shutdown";
  exec.clean;
  mount.devfs;
  allow.raw_sockets;
  allow.sysvipc;
}
__EOF
  

После создания / изменения файла / etc / jail.conf не должно быть запущенных Jails.

 хост #  jls 
   JID IP-адрес Имя хоста Путь
 

Позволяет включить Jails в хост-системе.

 хост #  cat >> /etc/rc.conf << __EOF
# ТЮРЬМЫ
  jail_enable = ДА
__EOF
  

Теперь мы можем запустить nextcloud.local Jail впервые.

 host #  service jail start nextcloud 
Стартовые тюрьмы: nextcloud.
 хост #  jls 
   JID IP-адрес Имя хоста Путь
     1 192.168.43.100 nextcloud.local / jail / nextcloud
 

Теперь давайте настроим имя nextcloud.local как на хосте , , так и на хосте и Jail.

 хост #  cat >> / etc / hosts << __EOF

# NEXTCLOUD
192.168.43.100 nextcloud.local nextcloud
__EOF
  
 хост #  jexec 1 / bin / csh 

корень @ nextcloud: / #  cat >> / etc / hosts << __EOF

# NEXTCLOUD
192.168.43.100 nextcloud.local nextcloud
__EOF
  

Следует помнить, что в FreeBSD Jail нет localhost ( 127.0.0.1 ). Jail только сам настраивает IP-адрес для прослушивания ( 192.168.43.100 в нашем примере). Это важно, потому что если вы настроите службы на хосте, который прослушивает localhost ( 127.0.0.1 ), они будут работать как обычно, когда вы сделаете то же самое в FreeBSD Jail, вы не сможете подключиться к ним (даже из эта самая тюрьма).

Давайте сделаем базовую настройку Nextcloud Jail.

 хост #  jexec 1 / bin / csh 

корень @ nextcloud: / #  newaliases -v 
ВНИМАНИЕ: имя локального хоста (nextcloud) не определено; см. cf / README: КТО Я?
/ etc / mail / aliases: 29 псевдонимов, самые длинные 10 байт, всего 297 байт

корень @ nextcloud: / #  cp / usr / share / zoneinfo / Europe / Warsaw / etc / localtime 
 

Давайте создадим основной файл /etc/rc.conf для Out Jail. Я оставлю некоторые службы закомментированными, поскольку они еще не настроены для работы, мы не хотим здесь имитировать Debian и запускать службы с конфигурациями по умолчанию 🙂

 корень @ nextcloud: / #  cat >> / etc / rc.conf << __EOF
# DAEMONS | да
  syslogd_flags = "- s -s"
  sshd_enable = ДА
# php_fpm_enable = ДА
# postgresql_enable = ДА
# postgresql_class = postgres
# postgresql_data = / var / db / postgres / data
# memcached_enable = ДА
# memcached_flags = "- l 192.168.43.100"
# nginx_enable = ДА

# DAEMONS | нет
  sendmail_enable = НЕТ
  sendmail_submit_enable = НЕТ
  sendmail_outbound_enable = НЕТ
  sendmail_msp_queue_enable = НЕТ

# ДРУГИЕ
  clear_tmp_enable = ДА
  clear_tmp_X = ДА
  extra_netfs_types = NFS
  dumpdev = НЕТ
  update_motd = НЕТ
  keyrate = быстро
__EOF
  

Поскольку мы отключим sendmail (8) , нам нужно убедиться, что / var / spool / clientmqueue не заполнится со временем.Давайте настроим для этого простую работу cron.

 root @ nextcloud: / #  cat> /etc/cron.d/sendmail-clean-clientmqueue << __EOF 
  # ЧИСТАЯ ОТПРАВКА 
  0 * * * * корень / bin / rm -r -f / var / spool / clientmqueue / * 
  __EOF  

Так как у нас есть базовая конфигурация, давайте перезапустим наш Jail.

 корень @ nextcloud: / #  выход 

хост #  перезапуск службы jail nextcloud 
Остановка тюрем: nextcloud.
Стартовые тюрьмы: nextcloud.хост #  jls 
   JID IP-адрес Имя хоста Путь
     2 192.168.43.100 nextcloud.local / jail / nextcloud

хост #  jexec nextcloud / bin / csh

  

После перезапуска у нас остается только демон sshd (8) , который прослушивает соединения.

 корень @ nextcloud: / #  sockstat -l4 
КОМАНДА ПОЛЬЗОВАТЕЛЯ PID FD ПРОТО ЛОКАЛЬНЫЙ АДРЕС ИНОСТРАННЫЙ АДРЕС
корень sshd 97823 3 tcp4 192.168.43.100:22 *: *

 

Давайте настроим сетевое соединение в Jail, так как оно понадобится для получения пакетов из Интернета.

 корень @ nextcloud: / #  echo nameserver 1.1.1.1> /etc/resolv.conf 

root @ nextcloud: / #  пинг -c 3 -t 3 freebsd.org 
PING freebsd.org (8.8.178.110): 56 байт данных
64 байта из 8.8.178.110: icmp_seq = 0 ttl = 52 time = 180,860 мс
64 байта из 8.8.178.110: icmp_seq = 1 ttl = 52 time = 180,373 мс
64 байта из 8.8.178.110: icmp_seq = 2 ttl = 52 time = 181,363 мс

--- статистика пинга freebsd.org ---
3 пакета передано, 3 пакета получено, потеря пакетов 0,0%
туда и обратно min / avg / max / stddev = 180.373 / 180,865 / 181,363 / 0,404 мс
 

Поскольку мы хотим, чтобы последних пакетов , можно установить это в конфигурационном файле репозитория pkg (8) .

 root @ nextcloud: / #  grep ежеквартально /etc/pkg/FreeBSD.conf 
  url: "pkg + http: //pkg.FreeBSD.org/$ {ABI} / ежеквартально",

корень @ nextcloud: / #  sed -i 's / квартал / последний / g /etc/pkg/FreeBSD.conf 

root @ nextcloud: / #  grep latest /etc/pkg/FreeBSD.conf 
  url: "pkg + http: //pkg.FreeBSD.org/$ {ABI} / latest",
 

Теперь давайте настроим pkg (8) и загрузим последние метаданные репозитория.

 root @ nextcloud: / #  обновление пакета -f 
Инструмент управления пакетами еще не установлен в вашей системе.
Вы хотите загрузить и установить его сейчас? [г / н]:  y 
Загрузочный pkg из pkg + http: //pkg.FreeBSD.org/FreeBSD: 11: amd64 / latest, подождите ...
Проверка подписи с помощью доверенного сертификата pkg.freebsd.org.2013102301 ... выполнено
[nextcloud] Установка pkg-1.10.5 ...
[nextcloud] Извлечение pkg-1.10.5: 100%
Обновление каталога репозитория FreeBSD ...
pkg: Ошибка загрузки репозитория FreeBSD: доступ к файлу репо (/ var / db / pkg / repo-FreeBSD.sqlite) не удалось: нет такого файла или каталога
[nextcloud] Получение meta.txz: 100% 944 Б 0,9 КБ / с 00:01
[nextcloud] Получение packagesite.txz: 100% 6 MiB 530,8 КБ / с 00:12
Обработка записей: 100%
Обновление репозитория FreeBSD завершено. Обработано 31134 посылки.
Все репозитории обновлены.
 

… и обновленное дерево портов FreeBSD.

 root @ nextcloud: / #  portsnap fetch extract 
Поиск зеркал portsnap.FreeBSD.org ... Найдено 6 зеркал.
Получение открытого ключа из ec2-eu-west-1.portsnap.freebsd.org ... готово.
Получение тега моментального снимка с ec2-eu-west-1.portsnap.freebsd.org ... готово.
Получение метаданных снимка ... выполнено.
Получение снимка, созданного в понедельник, 2 апреля, 02:06:03 CEST 2018:
7cd019f9e1af8a9d637a56ba3d2bbc2025f54d9931cd8b100% из 79 МБ 624 кбит / с 02m10s
Извлечение снимка ... готово.
Проверка целостности снимка ...
(...)
Создание новых файлов INDEX ... готово.

root @ nextcloud: / #  portsnap fetch update 
Поиск зеркал portsnap.FreeBSD.org ... Найдено 6 зеркал.
Получение тега снимка из ec2-eu-west-1.portsnap.freebsd.org ... готово.
Дерево портов не изменилось с момента последнего снимка.
Никаких обновлений не требуется.
Дерево портов уже обновлено.
 

По умолчанию пакет Nextcloud 13 в репозитории построен с использованием MySQL 5.6 и более ранней версии PHP 5.6, поэтому мы не можем использовать пакеты для всего, некоторая (автоматическая) компиляция неизбежна.

 корень @ nextcloud: / #  cd / usr / ports / www / nextcloud 

root @ nextcloud: / usr / ports / www / nextcloud #  make run-depends-list | grep -m 1 php 
/ USR / порты / lang / php56

root @ nextcloud: / usr / ports / www / nextcloud #  make run-depends-list | grep -m 1 база данных 
/ USR / порты / базы данных / mysql56-клиент
 

Давайте проверим, какие версии пакетов по умолчанию для портов FreeBSD.[A-Z] + _ DEFAULT ‘/usr/ports/Mk/bsd.default-versions.mk | столбец -t
APACHE_DEFAULT? = 2,4
BDB_DEFAULT? = 5
FIREBIRD_DEFAULT? = 2,5
FORTRAN_DEFAULT? = Gfortran
FPC_DEFAULT? = 3.0.4
GCC_DEFAULT? = 6
GHOSTSCRIPT_DEFAULT? = Agpl
LAZARUS_DEFAULT? = 1.8.2
LINUX_DEFAULT? = C6_64
LINUX_DEFAULT? = C6
LUA_DEFAULT? =

Синхронизация | Загрузок

Интеграции

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

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

Android

Приложение для Android доступно в Google Play и F-Droid.

Базовая синхронизация

Это базовый дистрибутив Syncthing, обеспечивающий командную строку / демон вроде
исполняемый файл и пользовательский веб-интерфейс.

Синхронизация v1.11.1

Если вы не знаете, что загружать и работаете на обычном компьютере,
используйте сборку «64-бит (x86-64)» для вашей операционной системы. Если ты
работает в необычной системе, такой как NAS, обратитесь к своему поставщику.

Пакеты Debian / Ubuntu

Вы можете выбрать между «стабильной» (последняя версия) или «кандидатом» (ранее.
релиз-кандидат) треков. Стабильный канал обновляется обычно каждый первый раз.
Вторник месяца.

  # Добавьте "стабильный" канал к вашим источникам APT:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
  

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

  # Добавьте канал "кандидата" к вашим источникам APT:
echo "deb https://apt.syncthing.net/ кандидат на синхронизацию" | sudo tee / etc / apt / sources.list.d / syncthing.list
  

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

  # Добавить ключи релиза PGP:
curl -s https://syncthing.net/release-key.txt | sudo apt-key добавить -

# Увеличить предпочтение пакетов Syncthing ("закрепление")
printf "Пакет: * \ nPin: origin apt.syncthing.net \ nPin-Priority: 990 \ n" | sudo tee /etc/apt/preferences.d/syncthing

# Обновите и установите синхронизацию:
sudo apt-get update
sudo apt-get install syncthing
  

В зависимости от вашего дистрибутива вы можете увидеть ошибку, подобную следующей
при запуске apt-get:

  E: Драйвер метода / usr / lib / apt / methods / https не найден.N: Установлен ли пакет apt-transport-https?
E: не удалось получить https://apt.syncthing.net/dists/syncthing/InRelease
  

Если да, установите пакет apt-transport-https и повторите попытку:

  sudo apt-get install apt-transport-https
  

Если вы настаиваете, вы также можете использовать указанные выше URL-адреса с http вместо https.


Серебряные спонсоры

Начало работы — документация Syncthing v1

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

Лучший способ следовать этому руководству — выполнить установку на обеих машинах.
и настроить их параллельно. Если обе машины недоступны
одновременно это нормально, результаты будут немного меньше
сразу очевидно.

Киноверсия этой расшифровки стенограммы доступна на YouTube (предоставлено
@theincogtion).Это видео
показывает, как установить Syncthing в Ubuntu / Debian / Mint с помощью PPA, также доступен
на немецком. В этом видео показано, как установить Syncthing
в Windows, также доступно на немецком языке.

Установка

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

Синхронизация

Скачайте последнюю версию Syncthing для своей операционной системы и распакуйте
это (если вы используете Debian / Ubuntu, вы можете использовать репозиторий Debian). Будет двоичный файл с именем syncthing (или syncthing.exe на
Windows).Начните это так, как вам удобнее;
двойной щелчок должен работать в любой графической среде, но я буду использовать
командная строка, чтобы лучше проиллюстрировать, что происходит. При первом запуске Syncthing будет
сгенерируйте файл конфигурации, несколько ключей, а затем запустите графический интерфейс администратора в вашем
браузер. В командной строке будет напечатано что-то вроде следующего:

> синхронизация
[монитор] 22:56:32 ИНФОРМАЦИЯ: вывод журнала сохранен в файл "C: \ Users \ User \ AppData \ Local \ Syncthing \ syncthing.log"
[monitor] 22:56:32 INFO: папка по умолчанию создана и / или связана с новой конфигурацией
[начало] 22:56:32 ИНФОРМАЦИЯ: синхронизация v1.7.1 "Fermium Flea" (go1.14.4 windows-386) [email protected] 2020-07-11 18:17:41 UTC
[начало] 22:56:32 ИНФОРМАЦИЯ: папка по умолчанию создана и / или связана с новой конфигурацией
[начало] 22:56:32 ИНФОРМАЦИЯ: Конфигурация по умолчанию сохранена. Отредактируйте C: \ Users \ User \ AppData \ Local \ Syncthing \ config.xml по вкусу (с остановленным Syncthing) или используйте графический интерфейс
[6FOKX] 22:56:33 ИНФОРМАЦИЯ: Мой идентификатор: 6FOKXKK-SKUBWFW-GSKX6IQ-ZC4SYUZ-5IEVZKE-TC42AAX-HW7IBW4-GAZFAQ7
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Производительность однопоточного SHA256 составляет 123 МБ / с при использовании crypto / sha256 (108 МБ / с при использовании minio / sha256-simd).[6FOKX] 22:56:34 ИНФОРМАЦИЯ: скорость хеширования составляет 106,31 МБ / с.
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Общая скорость отправки не ограничена, скорость приема неограничена
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Использование сервера обнаружения https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Использование сервера обнаружения https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Использование сервера обнаружения https: // discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Готово к синхронизации «Папка по умолчанию» (по умолчанию) (sendreceive)
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: запускается прослушиватель QUIC ([::]: 22000)
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: запускается прослушиватель TCP ([::]: 22000)
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: запускается ретранслятор (динамический + https: //relays.syncthing.net/endpoint)
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: завершено первоначальное сканирование папки sendreceive "Папка по умолчанию" (по умолчанию)
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: GUI и API прослушивают 127.0.0.1: 8384
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: доступ к графическому интерфейсу пользователя через следующий URL-адрес: http://127.0.0.1:8384/
[6FOKX] 22:56:34 ИНФОРМАЦИЯ: Меня зовут «Этот компьютер»
[6FOKX] 22:56:45 ИНФОРМАЦИЯ: quic: //0.0.0.0: обнаружено 22000 типов NAT: Симметричный NAT
[6FOKX] 22:56:45 ИНФОРМАЦИЯ: quic: //0.0.0.0: 22000 разрешенный внешний адрес quic: //125.190.151.7: 59296 (через stun.syncthing.net:3478)
[6FOKX] 22:56:46 ИНФОРМАЦИЯ: Обнаружено 0 служб NAT
 

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

Настройка

Графический интерфейс администратора запускается автоматически и остается доступным на
http: // localhost: 8384/. Файлы cookie необходимы для правильного функционирования графического интерфейса пользователя; убедитесь, что ваш браузер их принимает. Это должно выглядеть примерно так:

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

Чтобы Syncthing могла синхронизировать файлы с другим устройством, необходимо
нужно рассказать об этом устройстве. Это достигается путем обмена
«Идентификаторы устройств». Идентификатор устройства — это уникальный криптографически безопасный
идентификатор, который генерируется как часть генерации ключа первым
как только вы начнете синхронизацию. Он напечатан в журнале выше, и вы можете
увидеть его в веб-интерфейсе, выбрав «Действия» (вверху справа) и «Показать идентификатор».

Два устройства будут только подключаться и разговаривать друг с другом, если они оба настроены с использованием идентификаторов друг друга. Поскольку конфигурация должна быть взаимной для
соединение, ID устройств не нужно держать в секрете. По сути, они являются частью открытого ключа.

Чтобы два устройства могли общаться друг с другом, нажмите «Добавить удаленное устройство».
в правом нижнем углу на обеих сторонах и введите идентификатор устройства на другой стороне.
Вам также следует выбрать папки, которыми вы хотите поделиться.Устройство
имя не является обязательным и носит чисто косметический характер. Его можно будет изменить позже, если
требуется.

После того, как вы нажмете «Сохранить», новое устройство появится в правой части
GUI (хотя и отключенный), а затем через минуту или около того подключитесь к новому устройству.
Не забудьте повторить этот шаг для другого устройства.

На этом этапе два устройства совместно используют пустой каталог. Добавление файлов в
общий каталог на любом устройстве синхронизирует эти файлы с
Другая сторона.

Если вы используете версию Syncthing, которая добавляет функции, специфичные для ОС (например,грамм. приложение для Android) вам может потребоваться доступ к веб-интерфейсу, чтобы включить синхронизацию папок и другие параметры конфигурации.


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

Manpage Ubuntu: syncthing-faq — часто задаваемые вопросы

Источник: syncthing_0.14.49 + ds1-3_amd64

 
НАЗВАНИЕ
       syncthing-faq - Часто задаваемые вопросы

 
ЧТО ЭТО СИНХРОНИЗАЦИЯ?
       Syncthing - это приложение, которое позволяет синхронизировать файлы на нескольких устройствах.
       Это означает, что создание, изменение или удаление файлов на одном компьютере будет
       автоматически копироваться на другие ваши устройства.Мы считаем, что ваши данные - это только ваши данные
       и вы заслуживаете того, чтобы выбрать, где его хранить. Поэтому Syncthing не загружает ваш
       данные в облако, но обмениваются вашими данными между вашими машинами, как только они подключены к сети
       в то же время.

 
IS IT «СИНХРОНИЗАЦИЯ», «СИНХРОНИЗАЦИЯ» ИЛИ «СИНХРОНИЗАЦИЯ»?
       Это  Syncthing , хотя репозиторий команд и исходного кода написан , что означает синхронизацию , поэтому он может
       называться таким же образом.Это определенно не SyncThing, хотя
       аббревиатура  st  используется в некоторых случаях и в именах файлов.

 
КАК ДЕЙСТВУЕТ СИНХРОНИЗАЦИЯ ОТЛИЧАЕТСЯ ОТ BITTORRENT / RESILIO SYNC?
       Они разные и не связаны. Синхронизация и BitTorrent / Resilio Sync достигают
       некоторые из тех же вещей, а именно синхронизация файлов между двумя или более компьютерами.

       BitTorrent Sync, теперь называемый Resilio Sync, представляет собой проприетарный одноранговый файл.
       инструмент синхронизации доступен для Windows, Mac, Linux, Android, iOS, Windows Phone,
       Amazon Kindle Fire и BSD.[1] Syncthing - это инструмент для синхронизации файлов с открытым исходным кодом.

       Syncthing использует открытый и документированный протокол, а также механизмы безопасности в
       использование четко определено и видно в исходном коде. Resilio Sync использует недокументированный,
       закрытый протокол с неизвестными свойствами безопасности.

       [1]  https://en.wikipedia.org/wiki/Resilio_Sync 

 
ЧТО ЧТО СИНХРОНИРОВАНЫ?
       Следующие вещи  всегда  синхронизированы:

       · Содержимое файла

       · Время изменения файла

       Следующее может быть синхронизировано или нет, в зависимости:

       · Права доступа к файлам (если поддерживается файловой системой.В Windows только бит только для чтения
         синхронизировано.)

       · Символические ссылки (синхронизируются, кроме Windows, но никогда не используются).

       Следующие  не синхронизированы ;

       · Владельцы файлов или каталогов и группы (не сохраняются)

       · Время изменения каталога (не сохраняется)

       · Жесткие ссылки (отслеживаются, не сохраняются)

       · Расширенные атрибуты, вилки ресурсов (не сохраняются)

       · ACL для Windows, POSIX или NFS (не сохраняются)

       · Устройства, FIFO и другие специальные функции (игнорируются)

       · Редкая разреженность файлов (станет разреженной, если она поддерживается ОС и файловой системой)

 
ЯВЛЯЕТСЯ СИНХРОНИЗАЦИЯ БЫСТРО?
       Синхронизация файлов сегментов на части, называемые блоками, для передачи данных с одного устройства на
       еще один.Таким образом, несколько устройств могут распределять нагрузку синхронизации аналогичным образом.
       к торрент-протоколу. Чем больше у вас устройств в сети, тем быстрее будет дополнительное устройство
       получит данные, потому что небольшие блоки будут извлекаться со всех устройств параллельно.

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

 
ПОЧЕМУ — это THE SYNC SO SLOW?
       При устранении неполадок, связанных с медленной синхронизацией, необходимо проверить несколько вещей.

       Прежде всего убедитесь, что вы не подключены через реле.В списке «Удаленные устройства»
       в правой части графического интерфейса дважды проверьте, что вы видите «Адрес: <некоторый адрес>» и , а не 
       «Реле: <какой-то адрес>». [образ]

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

       Во-вторых, если одно из устройств является машиной с очень низким энергопотреблением (Raspberry Pi или телефон,
       или NAS или аналогичный), вероятно, вы ограничены процессором на этом устройстве.Смотрите следующий
       Вопрос по причинам, по которым Syncthing нравится более быстрый процессор. Вы можете убедиться в этом, посмотрев на
       Загрузка ЦП в графическом интерфейсе. Если оно постоянно на уровне 100% или близко к нему, вы ограничены
       скорость процессора. В некоторых случаях более низкое значение использования ЦП также может указывать на ограничение
       ЦП - например, постоянное использование 25% на четырехъядерном ЦП, вероятно, означает, что Syncthing
       делать что-то, что не может быть распараллелено и, следовательно, ограничено одним ядром процессора.

       В-третьих, убедитесь, что сетевое соединение в порядке.Такие инструменты, как iperf или просто Интернет
       Здесь можно использовать тест скорости для проверки производительности.

 
ПОЧЕМУ IT ИСПОЛЬЗУЕТ SO МНОГОЕ CPU?
       1. При обнаружении новых или измененных файлов или при первом запуске синхронизации ваш
          файлы хешируются с использованием SHA-256.

       2. Данные, которые отправляются по сети, (необязательно) сжимаются и зашифровываются с использованием
          АЕС-128.При получении данных их необходимо расшифровать.

       3. Необходимо выполнить определенную работу по отслеживанию текущего и
          доступные версии каждого файла в базе данных индекса.

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

       Хеширование, сжатие и шифрование требуют процессорного времени.Кроме того, использование графического интерфейса вызывает определенные
       объем дополнительной загрузки ЦП для расчета представленных сводных данных. Однако обратите внимание, что
       когда все равно  в   синхронизация  использование ЦП должно быть незначительным.

       Чтобы свести к минимуму влияние этого, Syncthing пытается снизить приоритет процесса, когда
       начиная.

       Чтобы еще больше ограничить количество процессора, используемого при синхронизации и сканировании, установите среду
       переменной  GOMAXPROCS  на максимальное количество ядер ЦП, которое Syncthing должно использовать в любой момент
       момент.Например,  GOMAXPROCS = 2  на машине с четырьмя ядрами ограничит синхронизацию до no
       более половины мощности центрального процессора системы.

       Чтобы уменьшить скачки ЦП из-за активности сканирования, используйте плагин уведомлений файловой системы. Этот
       доставляется по умолчанию через Synctrayzor, Syncthing-GTK и на Android. Для других настроек
       рассмотрите возможность использования  syncthing-inotify  < https://github.com/syncthing/syncthing-inotify >.

 
ДОЛЖЕН Я СОХРАНИТЬ МОЙ УСТРОЙСТВО IDS СЕКРЕТНО?
       Нет.Идентификаторы не важны. По идентификатору устройства можно найти IP-адрес для
       это устройство, если на нем включено глобальное обнаружение. Знание идентификатора устройства вам не поможет
       установить соединение с этим устройством или получить список файлов и т. д.

       Чтобы установить соединение, оба устройства должны знать идентификатор другого устройства.
       На практике невозможно подделать идентификатор устройства. (Чтобы подделать идентификатор устройства, вам необходимо
       создайте сертификат TLS с этим конкретным хешем SHA-256.Если вы можете это сделать, вы можете
       подделать любой сертификат TLS. Мир это твоя устрица!)

         СМОТРЕТЬ   ТАКЖЕ: 
          идентификаторы устройств

 
ЧТО ЕСЛИ ЕСТЬ ЕСТЬ A КОНФЛИКТ?
       Syncthing действительно распознает конфликты. Когда файл был изменен на двух устройствах
       одновременно и содержание фактически отличается, один из файлов будет переименован в
         <имя файла>.синхронизация-конфликт- <дата> - <время>.  . Файл со старым временем модификации
       будет отмечен как конфликтующий файл и будет переименован. Если время модификации
       равно, файл, исходящий от устройства, которое имеет большее значение, чем первые 63
       биты для его идентификатора устройства будут помечены как конфликтующий файл. Если конфликт между
       модификация и удаление файла, измененный файл всегда выигрывает и
       воскресил без переименования на устройстве, с которого был удален.Помните, что файлы   .sync-conflict-  -  обрабатываются как обычно
       файлы после того, как они созданы, поэтому они распространяются между устройствами. Мы делаем это, потому что
       конфликт обнаружен и разрешен на одном устройстве, создавая файл  sync-конфликт , но
       это такой же конфликт везде, и мы не знаем, какой из конфликтующих
       files - «лучший» с точки зрения пользователя.Более того, если есть что-то такое
       автоматически вызывает конфликт при изменении, которое вы получите
         конфликт-синхронизации -... конфликт-синхронизация   -...- конфликт-синхронизация  файлов.

 
КАК DO I ОБСЛУЖИВАТЬ A ПАПКА ИЗ A ЧИТАТЬ ТОЛЬКО ФАЙЛОВАЯ СИСТЕМА?
       Для синхронизации требуется «маркер папки», чтобы указать, что папка присутствует и исправна.По умолчанию это каталог с именем  .stfolder , который создается Syncthing, когда
       папка добавлена. Если эта папка не может быть создана (вы обслуживаете файлы с компакт-диска или
       что-то) вместо этого вы можете установить расширенную конфигурацию  Marker   Name  на имя какого-либо файла или
       папка, которая, как вы знаете, всегда будет существовать в папке.

 
Я ДЕЙСТВИТЕЛЬНО НЕНАВИЖУ THE .STFOLDER СПРАВОЧНИК, МОЖЕТ Я УДАЛИТЬ ЭТО?
       См. Предыдущий вопрос.
AM I УДОБНО ДО ИСПОЛЬЗОВАТЬ ВЛОЖЕННЫЕ СИНХРОНИЗАЦИЯ ПАПКИ?
       Не вкладывайте общие папки. Такое поведение никоим образом не поддерживается, не рекомендуется и не кодируется.
       в любом случае и имеет много подводных камней.

 
КАК DO I ПЕРЕИМЕНОВАТЬ / ПЕРЕМЕСТИТЬ A СИНХРОНИЗАЦИЯ ПАПКА?
       У Syncthing нет прямого способа сделать это, поскольку это потенциально опасно, если
       вы не осторожны - это может привести к потере данных, если что-то пойдет не так во время перемещения
       и синхронизируется с другими вашими устройствами.Самый простой способ переименовать или переместить синхронизированную папку в локальной системе - это удалить папку.
       в интерфейсе Syncthing UI переместите его на диск, а затем повторно добавьте, используя новый путь.

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

       Альтернативный способ - выключить Syncthing, переместить папку на диске (включая
        .stfolder  marker), отредактируйте путь прямо в  config.xml  в папке конфигурации (см.
       config), а затем снова запустите синхронизацию.

 
КАК DO I КОНФИГУРИРОВАТЬ НЕСКОЛЬКО ПОЛЬЗОВАТЕЛЕЙ НА A ОДНА МАШИНА ?
       Каждый пользователь должен запустить свой собственный экземпляр Syncthing. Имейте в виду, что вам может потребоваться
       настройте порты прослушивания так, чтобы они не перекрывались (см. config).
СИНХРОНИЗАЦИЯ ПОДДЕРЖКА СИНХРОНИЗАЦИЯ МЕЖДУ ПАПКАМИ НА СИСТЕМЕ ТАКОЙ ЖЕ ?
       Нет. Syncthing не предназначен для локальной синхронизации, и накладные расходы, связанные с ее использованием,
       Метод Syncthing был бы расточительным. Для этого есть программы получше, например
       rsync или Unison.

 
КОГДА I DO ИМЕЮТ ДВА DISTINCT СИНХРОНИЗАЦИЯ ПАПКИ НА 905 905 И ДВА ДВА ДВА ДВА И ДВА ДВА ДВОЙНЫЕ ВСТАВКИ
         ПЕРЕМЕЩЕНИЕ   ФАЙЛОВ   МЕЖДУ   ИХ? 
       Syncthing специально не обрабатывает этот случай, и большинство файлов, скорее всего, будут
       повторно скачал.В деталях, поведение зависит от порядка сканирования. Если у вас есть папки A и B, переместите
       файлы от A до B, если A просканируется первым, он объявит об удалении файлов в
       другие, которые будут удалять файлы. При повторном сканировании B, B сообщит о добавлении новых файлов,
       а другим узлам будет негде их достать, кроме повторной загрузки.

       Если B сначала просканируется повторно, B первым объявит о добавлении, удаленные узлы восстановят
       файлы (не переименовывать, больше похоже на копирование блок за блоком) из A, а затем по мере повторного сканирования A
       удалите файлы из A.Обходной путь - сначала скопировать из A в B, повторно просканировать B, подождать, пока B восстановится на удаленном компьютере
       заканчивается, а затем удалить из A.

 
IS СИНХРОНИЗАЦИЯ MY IDEAL РЕЗЕРВНОЕ КОПИРОВАНИЕ ПРИЛОЖЕНИЕ?
       Нет. Syncthing - не лучшее приложение для резервного копирования, потому что все изменения в ваших файлах
       (изменения, удаления и т. д.) будут распространены на все ваши устройства. Вы можете включить
       управления версиями, но мы рекомендуем использовать другие инструменты, чтобы защитить ваши данные от ваших (или
       наши) ошибки.
ПОЧЕМУ ЕСТЬ ЕСТЬ НЕТ IOS КЛИЕНТ?
       Есть альтернативная реализация Syncthing (с использованием того же сетевого протокола)
       вызывается  fsync () . Текущая команда Syncthing не планирует поддерживать iOS в
       в обозримом будущем, поскольку код, необходимый для этого, будет сильно отличаться от того, что
       Syncthing сегодня.

 
КАК МОЖЕТ I ИСКЛЮЧИТЬ ФАЙЛЫ С КРОНШТЕЙНАМИ ([]) В НАИМЕНОВАНИЕ ?
       Шаблоны в.stignore - это шаблоны глобусов, где скобки используются для обозначения символа
       диапазоны. То есть шаблон  q [abc] x  будет соответствовать файлам  qax ,  qbx  и  qcx .

       Чтобы соответствовать фактическому файлу  с именем   q [abc] x , шаблон должен «выйти за рамки» скобок, например
       так:  q \ [abc \] x .

       В Windows экранирование специальных символов не поддерживается, поскольку символ  \  используется как
       разделитель путей.С другой стороны, специальные символы, такие как  [ и ?  не допускаются в
       имена файлов в Windows.

 
ПОЧЕМУ ЯВЛЯЕТСЯ НАСТРОЙКА БОЛЬШЕ СЛОЖНАЯ ЧЕМ BITTORRENT / RESILIO SYNC?
       Безопасность важнее удобства. В Syncthing вам нужно настроить обе стороны для соединения двух
       устройств. Злоумышленник мало что может сделать с украденным идентификатором устройства, потому что вам нужно добавить
       устройство с другой стороны тоже.Вы лучше контролируете, куда передаются ваши файлы.

       Это область, над которой мы работаем в долгосрочной перспективе.

 
КАК DO I ДОСТУП THE WEB GUI С ДРУГОЙ КОМПЬЮТЕР?
       Адрес прослушивания по умолчанию - 127.0.0.1:8384, поэтому вы можете получить доступ к графическому интерфейсу только из
       такая же машина. Это сделано из соображений безопасности.Измените графический интерфейс    прослушайте   адрес  через Интернет
       Пользовательский интерфейс с  127.0.0.1:8384  на  0.0.0.0:8384  или измените config.xml:

          
            <адрес> 127.0.0.1:8384 

       к

          
            <адрес> 0.0.0.0:8384 

       Тогда графический интерфейс доступен отовсюду. Вы должны установить пароль и включить HTTPS
       с этой конфигурацией.Вы можете сделать это внутри графического интерфейса.

       Если оба ваших компьютера являются Unix-подобными (Linux, Mac и т. Д.), Вы также можете оставить графический интерфейс
       по умолчанию и используйте порт ssh для доступа к нему. Например,

          $ ssh -L 9090: 127.0.0.1: 8384 [email protected]

       войдет в систему на othercomputer.example.com и представит графический интерфейс удаленной синхронизации   на
         http: // localhost: 9090  на локальном компьютере  .

       Если вы хотите получить доступ только к удаленному графическому интерфейсу и не хотите сеанс терминала, используйте это
       пример,

          $ ssh -N -L 9090: 127.0.0.1: 8384 [email protected]

       Если только ваш удаленный компьютер является Unix-подобным, вы все равно можете получить к нему доступ с помощью ssh из Windows.

       В Windows 10 (64-разрядная версия) вы можете использовать ту же команду ssh, если вы устанавливаете Windows
       Подсистема для Linux.  https://msdn.microsoft.com/en-gb/commandline/wsl/install_guide 

       Другой способ запустить ssh в Windows - установить gow. (GNU в Windows)
         https://github.com/bmatzelle/gow 

       Самый простой способ установить гоу - шоколадный. https://chocolatey.org/ 

 
ПОЧЕМУ DO I GET «HOST CHECK ERROR» IN THE GUI / API?
       Начиная с версии 0.14.6 Syncthing выполняет дополнительную проверку безопасности, когда GUI / API привязан к
       localhost - а именно, что браузер обращается к localhost. Это защищает от большинства
       формы  DNS   повторное связывание   атака  < https: // en.wikipedia.org/wiki/DNS_rebinding > против
       GUI.

       Чтобы пройти этот тест, убедитесь, что вы получаете доступ к графическому интерфейсу с помощью URL-адреса, начинающегося с
         http: // localhost ,  http://127.0.0.1  или  http: // [:: 1] . HTTPS, конечно, тоже подойдет.

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

       · Убедитесь, что прокси устанавливает заголовок  Host , содержащий  localhost , или

       · Установите  insecureSkipHostcheck  в дополнительных настройках, или

       · Привяжите GUI / API к порту прослушивания, отличному от localhost.

       Во всех случаях следует использовать аутентификацию по имени пользователя / паролю и HTTPS.

 
MY СИНХРОНИЗАЦИЯ БАЗА ДАННЫХ IS CORRUPT
       Это почти всегда является результатом плохой оперативной памяти, запоминающего устройства или другого оборудования.Когда
       Индексная база данных повреждена. Syncthing не может работать, и это будет указано в
       журналы и выход. Чтобы преодолеть это, удалите базу данных   папку  
       < https://docs.syncthing.net/users/config.html#description > внутри дома Syncthing
       каталог и перезапустите Syncthing. Затем потребуется выполнить полное повторное хеширование всех
       общие папки. Вы должны проверить свою систему, если основная причина действительно неисправна.
       оборудование, которое может подвергнуть систему риску дальнейшей потери данных.
I НЕ КАК THE GUI ИЛИ ТЕМА . CAN IT БЫТЬ ИЗМЕНИЛСЯ?
       Вы можете изменить тему в настройках. Синхронизация поставляется с другими темами, кроме
       по умолчанию.

       Если вам нужна настраиваемая тема или совершенно другой графический интерфейс, вы можете добавить свою. От
       по умолчанию Syncthing будет искать каталог  gui  внутри домашней папки Syncthing.Чтобы
       смените каталог для поиска тем, вам нужно установить среду STGUIASSETS
       переменная. Чтобы получить конкретный каталог, запустите синхронизацию с параметром  -paths . Это будет
       распечатайте все соответствующие пути, включая «каталог замены графического интерфейса».

       Чтобы добавить, например, красная тема, вы можете создать файл  red / assets / css / theme.css  внутри графического интерфейса
       переопределить каталог, чтобы переопределить стили CSS по умолчанию.

       Чтобы создать полностью новый графический интерфейс, вы должны проверить файлы на
         https: // github.com / syncthing / syncthing / tree / master / gui / default , чтобы понять, как это сделать
       что.

 
ПОЧЕМУ DO I SEE СИНХРОНИЗАЦИЯ ДВАЖДЫ IN TASK MANAGER?
       Один процесс управляет другим для записи журналов и управления перезапусками. Это облегчает
       для обработки обновлений из самого Syncthing, а также гарантирует, что мы получим хороший журнал
       файл, чтобы помочь нам сузить причину сбоев и других ошибок.
ГДЕ DO СИНХРОНИЗАЦИЯ LOGS GO TO?
       Синхронизация журналов со стандартным выводом по умолчанию. В Windows Syncthing по умолчанию также создает
         syncthing.log  в домашнем каталоге Syncthing (запустите  syncthing   -paths , чтобы узнать, где он находится).
       Параметр командной строки  -logfile  может использоваться для указания определяемого пользователем файла журнала.

 
КАК CAN I ПРОСМОТР ИСТОРИЯ ИЗ ИЗМЕНЕНИЯ?
       Веб-интерфейс пользователя содержит кнопку  Global   Changes  под списком устройств, который отображает изменения
       с момента последнего (повторного) запуска Syncthing.С помощью опции  -audit  вы можете включить постоянный,
       подробный журнал изменений и большинства действий, который содержит последовательность в формате  JSON 
       события в файле  ~ / .config / syncthing / audit-_date _-_ time_.log .

 
СОДЕРЖИТ ЛИ АУДИТ ЖУРНАЛ СОДЕРЖИТ КАЖДЫЕ ИЗМЕНЕНИЯ?
       Журнал аудита (и окно  Global   Changes ) видит изменения, которые видит ваше Syncthing.Когда Syncthing постоянно подключен, он обычно видит каждое происходящее изменение
       немедленно и, таким образом, знает, какой узел инициировал изменение. Когда топология становится сложной или
       когда ваш узел повторно подключается через некоторое время в автономном режиме, Syncthing синхронизируется с его
       соседи: он получает последнее синхронизированное состояние от соседа, которое является результатом  
       всех изменений между последним известным состоянием (до отключения или задержки сети) и
       текущее состояние у соседа, и если были обновления, удаляет, создает,
       конфликты, которые перекрывались, мы видим только  последних   изменений  для данного файла или
       каталог (и узел, на котором произошло последнее изменение).Когда мы подключаемся к нескольким
       соседи Syncthing решает, у какого соседа самое последнее состояние или
       конфликт инициирует процедуру разрешения конфликта, что в конечном итоге приводит к
       согласованное актуальное состояние со всеми соседями.

 
КАК DO I ОБНОВЛЕНИЕ СИНХРОНИЗАЦИЯ?
       Если вы используете диспетчер пакетов, такой как apt-get Debian, вам следует выполнить обновление с помощью
       менеджер пакетов.Если вы используете бинарные пакеты, связанные с Syncthing.net, вы можете использовать
       Синхронизация встроена в автоматические обновления.

       · Если автоматические обновления включены (по умолчанию), Syncthing обновит себя
         автоматически в течение 24 часов после выпуска новой версии.

       · Кнопка обновления появляется в веб-интерфейсе при выпуске новой версии. Нажатие
         он выполнит обновление.

       · Чтобы принудительно выполнить обновление из командной строки, запустите  syncthing   -upgrade .Обратите внимание, что в вашей системе должны быть установлены сертификаты CA, которые позволяют
       подключение к GitHub (например, FreeBSD требует  sudo   pkg   install   ca_root_nss ). Если  curl  или  wget 
       работает с обычными HTTPS-сайтами, то же самое должно быть с Syncthing.

 
ГДЕ DO I НАЙТИ САМЫЙ ПОСЛЕДНИЙ ВЫПУСК ?
       Мы выпускаем новые версии через GitHub.Последний выпуск всегда находится  на    выпуск  
         стр.  < https://github.com/syncthing/syncthing/releases/latest >. К сожалению, GitHub делает
       не указывать единый URL-адрес для автоматической загрузки последней версии. Предлагаем использовать
       API GitHub по адресу  https://api.github.com/repos/syncthing/syncthing/releases/latest  и
       анализ ответа JSON.

 
КАК DO I RUN СИНХРОНИЗАЦИЯ КАК A DAEMON ПРОЦЕСС НА LINUX?
       Если вы используете systemd, runit или выскочку, мы уже поставляем примеры, проверьте
         https: // github.com / syncthing / syncthing / tree / master / etc  например конфигурации.

       Однако если вы не используете один из этих инструментов, у вас есть несколько вариантов. Если твой
       в системе установлен инструмент под названием  start-stop-daemon  (это название команды, а не
       пакет), обратитесь к местной документации, она почти наверняка будет охватывать
       100% того, чем вы хотите заниматься. Если у вас нет  start-stop-daemon , есть несколько
       другие программные пакеты, которые вы могли бы использовать для этого.Самый известный называется
       daemontools, и их можно найти в стандартных репозиториях пакетов почти для каждого
       современный дистрибутив Linux. Другие популярные инструменты с аналогичной функциональностью включают S6 и
       вышеупомянутый рунит.

 
КАК DO I УВЕЛИЧИТЬ THE INOTIFY LIMIT TO GET MY FILESYSTEM
       Вы, вероятно, читаете это, потому что столкнулись со следующей ошибкой с
       Наблюдатель файловой системы в Linux:
          Не удалось запустить наблюдатель файловой системы для папки yourLabel (yourID): не удалось настроить
          обработчик inotify.Увеличьте лимиты inotify, см.
            https://docs.syncthing.net/users/faq.html#inotify-limits 

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

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

          echo "fs.inotify.max_user_watches = 204800" | sudo tee -a /etc/sysctl.conf

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

          echo "fs.inotify.max_user_watches = 204800" | sudo tee -a /etc/sysctl.d/90-override.conf

       Это вступает в силу только после перезагрузки. Чтобы немедленно настроить ограничение, запустите:

          sudo sh -c 'эхо 204800> / proc / sys / fs / inotify / max_user_watches'

 
АВТОР
       Синхронизирующие авторы

 
АВТОРСКИЕ ПРАВА
       2014-2018, Синхронизирующие авторы
 

Синхронизация — ArchWiki

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

Установка

Установите пакет синхронизации.

Syncthing предоставляет # Web-GUI для управления и мониторинга. Также существуют оболочки GUI, такие как # Syncthing-GTK и #Syncthing Tray (предоставляются в отдельных пакетах).

Запуск синхронизации

Запуск синхронизации

Запустить , синхронизируя двоичный код вручную с терминала.Множественные необязательные параметры описаны в syncthing (1).

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

Автозапуск Syncthing

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

Системное обслуживание

Запуск Syncthing как системной службы гарантирует, что она будет запущена при запуске, даже если у пользователя нет активного сеанса, она предназначена для использования на сервере.Включите и запустите syncthing @ myusername .service , где myusername — фактическое имя пользователя Syncthing.

Примечание: Если учетная запись службы была создана явно для синхронизации (например, через useradd -r ), убедитесь, что у пользователя есть действующий домашний каталог, в противном случае служба немедленно завершится ошибкой. Syncthing пытается поместить файлы конфигурации в $ HOME / .config / syncthing

.

Сервисная служба

Запуск Syncthing от имени пользователя systemd. Служба гарантирует, что Syncthing запускается только после того, как пользователь вошел в систему (например,g., через графический экран входа в систему или ssh). Таким образом, пользовательская служба предназначена для использования на (многопользовательском) настольном компьютере. Чтобы использовать пользовательский сервис, запустите / активируйте пользовательский модуль syncthing.service (т.е. с флагом --user ).

Syncthing-GTK

syncthing-gtk предоставляет графический пользовательский интерфейс GTK, уведомления на рабочем столе и интеграцию с файловыми менеджерами Nautilus, Nemo и Caja.
Syncthing может быть запущен с помощью Syncthing-GTK: используйте настройки интерфейса для запуска syncthing-gtk при запуске и укажите, следует ли запускать демон синхронизации.

Примечание: При запуске демона синхронизации с использованием как systemd, так и syncthing-gtk может случиться так, что два экземпляра синхронизации будут запущены одновременно, что приведет к высокому потреблению ЦП: один запускается с помощью syncthing-gtk, а другой (немного позже) с помощью systemd. Чтобы решить эту проблему, либо избегайте запуска синхронизации с помощью systemd, либо настройте syncthing-gtk на ожидание демона синхронизации.

Веб-интерфейс

Syncthing предоставляет веб-интерфейс, доступный по умолчанию на http: // localhost: 8384.

Совет: Чтобы получить удаленный доступ к графическому интерфейсу пользователя, см. FAQ.

Синхронизирующий лоток

syncthingtray AUR дополняет веб-интерфейс, предоставляя основанный на Qt значок на панели задач и уведомления на рабочем столе. Существует версия, нейтральная к среде рабочего стола, и плазмоид для Plasma 5. Он также обеспечивает интеграцию с systemd и файловым менеджером Dolphin.

Пакеты также поставляются с утилитой syncthingctl, которая позволяет взаимодействовать с Syncthing из командной строки.

Конфигурация

После установки Syncthing уже имеет правильную конфигурацию запуска. Новые серверы и / или папки можно добавить, посетив веб-интерфейс. Для получения подробных инструкций о том, как настроить простую сеть, прочтите «Начало работы» Syncthing.

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

Чтобы добавить еще один узел, нажмите «Добавить узел» под списком узлов. Вам будет предложено ввести их идентификатор узла (который можно найти на другом компьютере, нажав Edit> Show ID ), а также короткое имя и адрес.
Если вы укажете «динамический» для адреса, сервер объявлений синхронизации будет использоваться для автоматического обмена адресами между узлами. Если вы хотите узнать больше об идентификаторах узла, включая криптографические последствия, вы можете прочитать соответствующую страницу документации Syncthing.

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

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

Настройка локальной сети

В типичном случае несколько машин совместно используют локальную сеть (локальная сеть , ) за маршрутизатором NAT ( преобразование сетевых адресов ), рекомендуется для универсальной конфигурации:

  • Активировать как локальное, так и глобальное обнаружение на каждом узле.Это позволит обнаруживать данные во всех ситуациях, в том числе, если некоторые из узлов являются мобильными устройствами, такими как ноутбуки или телефоны Android, и покидают локальную сеть и подключаются к Интернету извне. Таким образом, они все равно будут найдены благодаря глобальным открытиям.
  • Используйте разные порт адреса прослушивания для каждой машины, например tcp: //: 22010 , tcp: //: 22011 , tcp: //: 22012 и так далее. Это позволит различать узлы на глобальных серверах обнаружения и избежать сообщения «Подключен к мне — не должно происходить» на других локальных устройствах, когда они покидают локальную сеть.
  • Включите, если возможно, перенаправление портов UPnP или вручную перенаправьте каждый порт на нужный компьютер в локальной сети. При обнаружении нового узла Syncthing пытается использовать настроенный порт прослушивания, по умолчанию 22000 . Если этот порт оказывается закрытым, он будет искать другой порт локально: всякий раз, когда NAT traversal включен в Syncthing, он будет пытаться использовать UPnP для сопоставления случайного внешнего порта с выбранным внутренним портом прослушивания, например 22000 .Если UPnP не поддерживается или это нежелательно, каждый порт следует вручную перенаправить на нужный компьютер в локальной сети. В конце концов, если на обеих сторонах не будет открытого порта, будет использоваться ретрансляция.

Использование inotify

inotify (уведомление inode) — это подсистема ядра Linux, которая расширяет файловые системы, чтобы замечать изменения в файловой системе и сообщать об этих изменениях приложениям. Syncthing поддерживает inotify, и эту функцию можно включить в меню конфигурации для отдельных папок.

Участвовать в инфраструктуре

Можно участвовать в инфраструктуре Syncthing, запустив глобальный сервер обнаружения или сервер ретрансляции.

Запуск реле

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

Кто угодно может запустить сервер ретрансляции, и он автоматически присоединится к пулу реле Syncthing и станет доступным для всех пользователей Syncthing. Чтобы запустить собственное реле, установите syncthing-relaysrv и Start / Enable syncthing-relaysrv.service . Ограничение скорости и другие параметры можно настроить через командную строку. Эти параметры могут быть установлены в директиве ExecStart вспомогательного файла службы следующим образом:

 /etc/systemd/system/syncthing-relaysrv.service.d/override.conf 
 [Сервис]
ExecStart =
ExecStart = / usr / bin / syncthing-relaysrv -global-rate 500000 -provided-by  relayprovidername  

Примечание: По умолчанию реле прослушивает порт 22067 для данных и 22070 для статуса службы (используется для общедоступной статистики), поэтому они должны быть открыты для TCP-соединений. При необходимости порты по умолчанию можно изменить с помощью параметров -listen и -status-srv соответственно.

Запуск сервера обнаружения

Global Discovery используется Syncthing для поиска пиров в Интернете.Любое устройство сообщает о себе при запуске серверу обнаружения, который хранит идентификатор устройства, IP-адрес, порт и текущее время.
Затем по запросу для данного идентификатора устройства он возвращает информацию, хранящуюся, например, в формате JSON.

В качестве примера запрос https://discovery.syncthing.net/?device=ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM [мертвая ссылка 2020-0400 ] возвращает {"замечен": "2020-02-29T14: 56: 08.34589801Z", "адреса": ["quic: // 212.121.228.172: 22000 "," tcp: //212.121.228.172: 22000 "]} .

Предоставляется список общедоступных серверов глобального обнаружения. Кроме того, любой может запустить сервер обнаружения, чтобы запустить свой собственный, установите пакет syncthing-discosrv AUR .

Серверу обнаружения требуются сертификаты для работы, которые в идеале следует разместить в / var / discosrv . Пользователь / группа , синхронизирующая , нуждается в разрешениях, чтобы иметь возможность читать файлы сертификатов. Вам необходимо отредактировать файл модуля systemd, чтобы правильно указывать на сертификаты (и предпринять любые другие изменения конфигурации, которые вы можете захотеть, см. Список).

 /usr/lib/systemd/system/syncthing-discosrv.service 
 [Единица]
Описание = Сервер обнаружения синхронизации
После = network.target

[Обслуживание]
Пользователь = синхронизация
Группа = синхронизация
ExecStart = / usr / bin / syncthing-discosrv -db-dsn /var/discosrv/discosrv.db -cert /var/discosrv/cert.pem -key /var/discosrv/key.pem
Перезапуск = при сбое
SuccessExitStatus = 2

PrivateDevices = true
ProtectSystem = полный
ProtectHome = true
NoNewPrivileges = true

[Установить]
WantedBy = multi-user.target 

Чтобы указать клиенту на ваш сервер обнаружения, измените переменную Global Discovery Servers в разделе «Настройки» на https: // yourserver: 8443/ (порт по умолчанию) или любой другой порт, который вы перенастроили.Переменная принимает список серверов обнаружения, разделенных запятыми. Можно включить несколько, в том числе и по умолчанию.

Если вы используете самозаверяющие сертификаты, клиент откажется подключаться, если вы не добавите идентификатор сервера обнаружения в его домен. Идентификатор выводится на стандартный вывод при запуске сервера обнаружения. Измените запись Global Discovery Servers , добавив идентификатор: https://yourserver.com:8443/?id=AAAAAAA-BBBBBBB-CCCCCCC-DDDDDDD-EEEEEEE-FFFFFFF-GGGGGGG-HHHHHHH .

Советы и хитрости

Остановить спам в журнале

Syncthing может быть довольно шумным, даже если он ничего не делает. Службу ExecStart можно переопределить для прямой фильтрации вывода без дополнительного скрипта (при необходимости настройте grep):

 /etc/systemd/system/[email protected]/nospam.conf 
 [Сервис]
ExecStart =
ExecStart = / bin / bash -c 'set -o pipefail; / usr / bin / syncthing -no-browser -no-restart -logflags = 0 | grep -v "ИНФОРМАЦИЯ:" '

Запуск в VirtualBox

Syncthing может подключаться как локально, так и глобально в виртуальной машине VirtualBox ( VM ), сохраняя при этом сетевой адаптер в стандартном режиме NAT (в отличие от мостовой сети, подключенной к адаптеру хост-компьютера).

Чтобы включить этот режим, Syncthing должен прослушивать порт в виртуальной машине, отличный от порта прослушивания, уже используемого хостом.
Например, если хостом используется порт по умолчанию 22000, можно использовать 22001 в виртуальной машине.
Порт прослушивания в виртуальной машине можно изменить с помощью адресов прослушивания протокола синхронизации Syncthing на tcp: //: 22001 в настройках графического интерфейса пользователя .

Порт 22001 / TCP хоста должен быть перенаправлен гостю в этой конфигурации. Это можно сделать с помощью следующей команды:

 $ VBoxManage modifyvm  myvmname  --natpf1 "syncthing, tcp ,, 22001`` 22001"
 

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

Примечание. Локальное обнаружение в этой настройке ограничено, потому что порт прослушивания обнаружения 21027 уже используется хостом. Следовательно, гость не может создать таблицу локальных объявлений, хотя он все еще может транслировать в локальную сеть через NAT виртуальной машины и объявлять себя. Описанные выше шаги позволяют запустить работающий сервер в конфигурации NAT по умолчанию, но для оптимальной настройки рекомендуется использовать мостовую сеть.

Запуск через прокси

Syncthing можно запустить через прокси, чтобы использовать его за корпоративными брандмауэрами или туннелирование через SSH.Согласно документации по использованию прокси, необходимо установить переменную среды all_proxy , и она должна указывать тип прокси socks5 .

  • Если служба запускается из сценария или из командной строки, необходимо заранее установить переменные следующим образом:
 export all_proxy = "socks5: //  proxy_address :  proxy_port "
экспорт no_proxy = "127.0.0.1"
 
  • Если он запускается как служба, необходимо определить переменные в конфигурации службы следующим образом:
 / etc / systemd / system / syncthing @  myusername .service.d / override.conf 
 [Сервис]
Environment = "all_proxy = socks5: //  proxy_address :  proxy_port "
Environment = "no_proxy = 127.0.0.1" 

Затем необходимо перезагрузить конфигурации демонов systemd:

 # systemctl демон-перезагрузка
 

и перезапустите синхронизацию @ myusername .service .

Этот файл можно редактировать с помощью средства systemd systemctl edit --full syncthing @ myusername .service в соответствии с разделом systemd # Редактирование предоставленных модулей.

Устранение неполадок

Выпуск базы данных

На каком-то этапе может возникнуть проблема с базой данных. Для принудительного повторного сканирования файлов и повторной синхронизации базы данных используйте следующую команду:

 $ синхронизация-сброс-база данных
 

прочие

См. Раздел «Отладка синхронизации».

.

Добавить комментарий

Ваш адрес email не будет опубликован.