Установка Syncthing · 6 min read · Dec 19, 2025
Как установить Syncthing на Ubuntu 20.04

Syncthing — это инструмент с открытым исходным кодом, используемый для синхронизации файлов между двумя или более компьютерами в сети. Он использует архитектуру «равный-равному» и обменивается вашими данными напрямую между вашими устройствами. Все данные, передаваемые между несколькими устройствами, шифруются с помощью TLS. Каждый раз, когда вы создаете, изменяете или удаляете какие-либо данные на одном компьютере с Syncthing, они автоматически реплицируются на другие серверы. Он может быть установлен на всех основных операционных системах, включая Linux, Windows, Mac OS X и т. д.
В этом руководстве мы покажем вам, как установить и настроить сервер Syncthing на Ubuntu 20.04.
Предварительные требования
- Два сервера с установленной Ubuntu 20.04.
- Действительное доменное имя, указывающее на IP-адрес вашего сервера.
- Настроенный root-пароль на обоих серверах.
Начало работы
Сначала обновите системные пакеты до актуальной версии, выполнив следующую команду:
apt-get update -yПосле обновления всех пакетов вы можете перейти к следующему шагу.
Установка сервера Syncthing на оба сервера
По умолчанию пакет Syncthing не включен в стандартный репозиторий Ubuntu 20.04. Поэтому вам нужно будет добавить репозиторий Syncthing в APT.
Сначала установите все необходимые зависимости на обоих серверах с помощью следующей команды:
apt-get install gnupg2 curl apt-transport-https -yЗатем загрузите и добавьте ключ выпуска с помощью следующей команды:
curl -s https://syncthing.net/release-key.txt | apt-key add -Далее добавьте репозиторий Syncthing в APT с помощью следующей команды:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.listЗатем обновите репозиторий и установите сервер Syncthing с помощью следующей команды:
apt-get update -y
apt-get install syncthing -yПосле завершения установки проверьте версию Syncthing с помощью следующей команды:
syncthing --versionВы должны получить следующий вывод:
syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) [email protected] 2021-06-21 20:53:50 UTC [noupgrade]На этом этапе Syncthing установлен на обоих серверах. Теперь вы можете перейти к следующему шагу.
Создание файла юнита systemd на обоих серверах
Далее вам нужно будет создать файл юнита systemd для управления службой Syncthing. Вы можете создать его на обоих серверах с помощью следующей команды:
nano /etc/systemd/system/[email protected]Добавьте следующие строки:
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.targetСохраните и закройте файл, когда закончите. Затем перезагрузите демон systemd, чтобы применить конфигурацию:
systemctl daemon-reloadЗатем запустите службу Syncthing с помощью следующей команды:
systemctl start syncthing@rootЧтобы проверить статус службы Syncthing, выполните следующую команду:
systemctl status syncthing@rootВы должны увидеть следующий вывод:
? [email protected] - Syncthing - Open Source Continuous File Synchronization for root
Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago
Docs: man:syncthing(1)
Main PID: 2878 (syncthing)
Tasks: 14 (limit: 2353)
Memory: 44.2M
CGroup: /system.slice/system-syncthing.slice/[email protected]
??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1"
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>На этом этапе служба Syncthing запущена и слушает на порту 8384. Вы можете проверить это с помощью следующей команды:
ss -antpl | grep 8384Вы должны увидеть следующий вывод:
LISTEN 0 4096 *:8384 *:* users:(("syncthing",pid=2889,fd=12)) Доступ к веб-интерфейсу Syncthing
Далее откройте веб-браузер и получите доступ к веб-интерфейсу Syncthing, используя URL-адреса http://first-server-ip:8384 и http://first-server-ip:8384.
Вы должны увидеть следующий экран:

Нажмите на Настройки, чтобы определить пользователя администратора и пароль, как показано ниже:

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

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

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


На первом сервере нажмите на Добавить удаленное устройство. Вы должны увидеть следующий экран:

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

Укажите идентификатор устройства первого сервера и нажмите кнопку Сохранить. Вы должны увидеть следующий экран:

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

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

Установите флажок для второго сервера и нажмите кнопку Сохранить. Вы должны увидеть следующий экран:

Далее перейдите ко второму серверу и нажмите кнопку Пересканировать Все. Вы должны увидеть следующий экран:

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

Теперь, когда вы создаете или изменяете любые файлы в папке резервного копирования на первом сервере, они будут автоматически синхронизироваться со вторым сервером.
Настройка Nginx в качестве обратного прокси для Syncthing
Вы также можете настроить Nginx в качестве обратного прокси, чтобы получить доступ к серверу Syncthing через порт 80.
Сначала установите сервер Nginx с помощью следующей команды:
apt-get install nginx -yЗатем создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:
nano /etc/nginx/conf.d/syncthing.confДобавьте следующие строки:
server {
listen 80;
server_name syncthing.example.com;
access_log /var/log/nginx/syncthing.access.log;
error_log /var/log/nginx/syncthing.error.log;
location / {
proxy_pass http://127.0.0.1:8384;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Сохраните и закройте файл, затем проверьте Nginx на наличие синтаксических ошибок с помощью следующей команды:
nginx -tВы должны получить следующий вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulЗатем перезагрузите Nginx, чтобы применить изменения.
systemctl reload nginxВы также можете проверить статус Nginx с помощью следующей команды:
systemctl status nginxВы должны увидеть следующий вывод:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago
Docs: man:nginx(8)
Main PID: 3394 (nginx)
Tasks: 2 (limit: 2353)
Memory: 6.2M
CGroup: /system.slice/nginx.service
??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??3395 nginx: worker process
Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.Теперь вы можете получить доступ к серверу Syncthing, используя URL-адрес http://syncthing.example.com.
Заключение
Поздравляем! Вы успешно установили и настроили Syncthing на двух серверах Ubuntu 20.04 и настроили синхронизацию между обоими серверами. Надеюсь, это руководство поможет вам создать резервную копию вашего сервера.
Get new posts in your inbox
No spam. Unsubscribe anytime.