Syncthing

한 줄 요약

Syncthing은 중앙 서버 없이 P2P로 여러 기기의 데이터를 동기화하는 오픈소스 프로그램이다.


왜 Syncthing인가?

클라우드 동기화의 한계

요즘은 여러 기기를 사용하면서 데이터 동기화가 필수다. Google Drive, Dropbox 같은 클라우드를 많이 쓰지만…

서비스문제점
Google DriveLinux 공식 클라이언트 없음, NAS 미지원
Dropbox무료 용량 제한, NAS 미지원
OneDriveWindows 외 지원 제한적
iCloudApple 기기 전용

Syncthing의 해결책

  • 탈중앙화: 중앙 서버 없이 기기 간 직접 동기화
  • 오픈소스: 무료, 용량 제한 없음
  • 크로스 플랫폼: Windows, Mac, Linux, NAS 모두 지원
  • 웹 UI: GUI 없는 환경에서도 웹으로 관리

Syncthing의 장점

1. 완전한 P2P 동기화

클라우드 서버를 거치지 않고 기기 간 직접 동기화:

  • 나 자신이 서버이자 클라이언트
  • 거미줄처럼 N:N 연결 가능
  • 개인 데이터가 외부 서버에 저장되지 않음

2. 다양한 플랫폼 지원

플랫폼지원
Windows⭕ 공식
Mac⭕ 공식
Linux⭕ 공식
Android⭕ 공식
iOS⚠️ 서드파티 (Möbius Sync)
NAS (Synology 등)⭕ Docker

3. 유연한 동기화 설정

  • 폴더별 동기화 대상 기기 선택
  • 단방향/양방향 동기화 설정
  • 파일 버전 관리 (히스토리)
  • 무시 패턴 설정 (.gitignore 형식)

4. 안전한 연결

  • 전송 데이터 암호화 (TLS)
  • 기기별 고유 ID로 인증
  • Relay 서버 사용 시에도 E2E 암호화

Docker Compose로 설치하기

docker-compose.yml

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: my-syncthing
    restart: unless-stopped
    environment:
      - PUID=1000        # 본인 UID로 변경
      - PGID=1000        # 본인 GID로 변경
      - TZ=Asia/Seoul
    volumes:
      - ./config:/var/syncthing/config
      - ./data:/var/syncthing/data
      # 동기화할 폴더 추가
      - /path/to/sync1:/sync1
      - /path/to/sync2:/sync2
    ports:
      - "8384:8384"      # 웹 UI
      - "22000:22000/tcp" # 동기화 (TCP)
      - "22000:22000/udp" # 동기화 (UDP)
      - "21027:21027/udp" # 로컬 검색

UID/GID는 id 명령어로 확인: id -u (UID), id -g (GID)

실행

# 시작
docker compose up -d

# 접속
# http://서버IP:8384

기기 연결하기

1. 기기 ID 확인

웹 UI → 작업 → ID 표시

QR코드 또는 긴 문자열 형태의 기기 ID 확인

2. 원격 기기 추가

  1. 웹 UI → 원격 기기 추가
  2. 상대방 기기 ID 입력
  3. 양쪽 기기에서 서로 승인

3. 폴더 공유

  1. 공유할 폴더 선택 → 편집
  2. 공유 탭에서 동기화할 기기 선택
  3. 상대방 기기에서 공유 수락

성능 최적화 팁

내부 네트워크 전용 설정

Relay 서버를 거치면 속도가 느릴 수 있다. 내부 네트워크에서만 사용한다면:

  1. 기기 편집 → 고급 → 주소
  2. dynamic 대신 직접 주소 입력: tcp://192.168.1.100:22000
내부 주소 직접 설정

동기화 제외 설정

불필요한 파일 제외 (.stignore 파일):

// 캐시 파일 제외
*.tmp
*.cache
.DS_Store
Thumbs.db

// 특정 폴더 제외
/node_modules
/.git

단점 및 해결책

단점해결책
Relay 사용 시 느림내부 IP 직접 지정
iOS 공식 앱 없음Möbius Sync 사용 ($5 Pro)
초기 설정 복잡Docker 이미지 사용
대용량 초기 동기화 느림로컬 네트워크에서 먼저 동기화

추천 사용 시나리오

시나리오추천도
PC ↔ NAS 자동 백업⭐⭐⭐⭐⭐
여러 PC 간 작업 폴더 동기화⭐⭐⭐⭐⭐
사진/문서 자동 백업⭐⭐⭐⭐
클라우드 대체⭐⭐⭐⭐
대용량 미디어 동기화⭐⭐⭐ (초기 동기화 오래 걸림)

마무리

Syncthing은 **“내 데이터는 내가 관리한다”**는 철학에 맞는 최고의 동기화 도구다.

  • 중앙 서버 없이 직접 동기화
  • 무료, 오픈소스, 용량 무제한
  • 크로스 플랫폼 지원

클라우드 서비스에 의존하지 않고 여러 기기를 동기화하고 싶다면, Syncthing을 강력 추천한다.