서버 관리 · 5 min read · Dec 19, 2025
Ubuntu 20.04에 Syncthing 설치하는 방법

Syncthing은 네트워크에서 두 대 이상의 컴퓨터 간에 파일을 동기화하는 데 사용되는 오픈 소스 도구입니다. 피어 투 피어 아키텍처를 사용하며, 데이터는 장치 간에 직접 교환됩니다. 여러 장치 간에 전송되는 모든 데이터는 TLS로 암호화됩니다. Syncthing 머신에서 데이터를 생성, 수정 또는 삭제할 때마다 자동으로 다른 서버에 복제됩니다. Linux, Windows, Mac OS X 등 모든 주요 운영 체제에 설치할 수 있습니다.
이 가이드에서는 Ubuntu 20.04에서 Syncthing 서버를 설치하고 설정하는 방법을 보여줍니다.
전제 조건
- Ubuntu 20.04를 실행하는 두 대의 서버.
- 서버 IP를 가리키는 유효한 도메인 이름.
- 두 서버 모두에 구성된 루트 비밀번호.
시작하기
먼저, 다음 명령어를 실행하여 시스템 패키지를 업데이트된 버전으로 업데이트합니다:
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 -다음으로, 다음 명령어로 APT에 Syncthing 저장소를 추가합니다:
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이 두 서버에 설치되었습니다. 이제 다음 단계로 진행할 수 있습니다.
두 서버에 시스템 단위 파일 생성
다음으로, Syncthing 서비스를 관리하기 위한 systemd 단위 파일을 생성해야 합니다. 다음 명령어로 두 서버에서 생성할 수 있습니다:
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 웹 인터페이스에 접근하기
다음으로, 웹 브라우저를 열고 다음 URL을 사용하여 Syncthing 웹 인터페이스에 접근합니다: http://first-server-ip:8384 및 http://first-server-ip:8384.
다음 화면이 표시되어야 합니다:

아래와 같이 설정을 클릭하여 관리자 사용자 및 비밀번호를 정의합니다:

사용자 이름, 비밀번호를 입력하고 저장 버튼을 클릭하여 변경 사항을 적용합니다. Syncthing 로그인 페이지로 리디렉션됩니다:

관리자 사용자 이름, 비밀번호를 입력하고 로그인 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

다음으로, 두 서버 간에 파일을 동기화하기 위해 각 서버의 장치 ID를 다른 서버에 추가해야 합니다. 그렇게 하려면 두 서버에서 작업 > ID 표시 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:


첫 번째 서버에서 원격 장치 추가를 클릭합니다. 다음 화면이 표시되어야 합니다:

두 번째 서버의 장치 ID를 입력하고 저장 버튼을 클릭합니다.
두 번째 서버에서 원격 장치 추가를 클릭합니다. 다음 화면이 표시되어야 합니다:

첫 번째 서버의 장치 ID를 입력하고 저장 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

이제 두 번째 서버와 동기화할 폴더를 추가하고 공유해야 합니다. 폴더 추가 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

폴더 레이블, 폴더 경로를 입력하고 공유 탭을 클릭합니다. 다음 화면이 표시되어야 합니다:

두 번째 서버를 선택하고 저장 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

다음으로, 두 번째 서버로 가서 모두 다시 스캔 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

첫 번째 서버에서 공유된 백업 폴더를 추가하려면 추가를 클릭합니다. 다음 화면이 표시되어야 합니다:

이제 첫 번째 서버의 백업 폴더에서 파일을 생성하거나 수정할 때마다 자동으로 두 번째 서버에 동기화됩니다.
Syncthing을 위한 Nginx를 리버스 프록시로 구성하기
Nginx를 리버스 프록시로 설정하여 포트 80을 통해 Syncthing 서버에 접근할 수도 있습니다.
먼저, 다음 명령어로 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.이제 URL http://syncthing.example.com을 사용하여 Syncthing 서버에 접근할 수 있습니다.
결론
축하합니다! 두 대의 Ubuntu 20.04 서버에 Syncthing을 성공적으로 설치하고 구성했으며 두 서버 간의 동기화를 설정했습니다. 이 튜토리얼이 서버 백업에 도움이 되기를 바랍니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.