Syncthing · TrueNAS · Tailscale

Syncthing으로 여러 PC 동기화
— TrueNAS 허브 + Tailscale

⏱ 약 12분 🔄 P2P 파일 동기화 🖥 TrueNAS · Linux · macOS · Windows 📅 2026-06-21
📝
여러 대의 PC를 클라우드 없이 동기화하고 싶다면.
집·사무실·노트북 3대에 같은 작업 폴더를 두고 쓰는데, 드롭박스에 매달 돈 내기도 싫고 내 파일이 남의 서버에 올라가는 것도 찜찜하다면 Syncthing이 답입니다. 중앙 서버 없이 내 기기끼리 직접, 암호화된 채로 동기화합니다.

여기에 항상 켜져 있는 TrueNAS를 허브로 두고 Tailscale 사설망 위에 얹으면, 3대가 동시에 켜져 있지 않아도 누락 없이 안정적으로 동기화됩니다. 그 구성을 정리합니다.

1 Syncthing이란 무엇인가

Syncthing은 두 대 이상의 컴퓨터 사이에서 파일을 실시간으로 계속 동기화하는 오픈소스 프로그램입니다(MPL-2.0). 드롭박스·구글드라이브와 목적은 비슷하지만, 결정적 차이가 있습니다 — 중앙 서버가 없습니다. 파일은 오직 내 기기들 위에만 존재하고, 기기끼리 직접(P2P) 주고받습니다.

한 줄 요약

ℹ️
"동기화"지 "백업"이 아니다
Syncthing은 한쪽의 변경(삭제 포함)을 다른 쪽에 그대로 반영합니다. 실수로 지운 파일도 같이 사라질 수 있으므로, 백업처럼 쓰려면 뒤에 나오는 파일 버전 관리를 켜야 합니다.

2 어떻게 동작하는가 — 장치 ID와 폴더 공유

Syncthing의 모델은 단순합니다. 기기를 서로 등록하고, 폴더를 공유하면 끝입니다.

① 장치 ID (Device ID)

각 기기는 설치 시 암호학적 키쌍을 만들고, 공개키에서 유도된 장치 ID(긴 문자열)를 갖습니다. 이 ID로 서로를 식별·인증하므로, 상대 ID만 등록하면 신뢰 관계가 성립합니다.

② 폴더 공유 (Folder)

동기화할 폴더에 폴더 ID를 붙이고, 어떤 기기와 공유할지 고릅니다. 각 기기에서 폴더 타입을 정할 수 있습니다 — Send & Receive(양방향), Send Only(보내기만), Receive Only(받기만).

③ 발견(Discovery)과 전송

같은 LAN이면 로컬 브로드캐스트로, 외부면 글로벌 디스커버리/릴레이로 서로를 찾습니다. 다만 우리는 Tailscale 사설망을 쓸 것이므로, 디스커버리에 의존하지 않고 고정 사설 IP로 직접 연결합니다(아래 6절). 변경분은 블록 단위로만 전송돼 큰 파일을 조금 고쳐도 전체를 다시 보내지 않습니다.

포트용도비고
8384 /tcp웹 GUI기본 127.0.0.1만 허용
22000 /tcp·udp동기화(데이터)TCP + QUIC
21027 /udp로컬 디스커버리같은 LAN 자동 발견

3 왜 좋은가 — 핵심 장점

💡
Tailscale과의 궁합
Syncthing의 유일한 귀찮음은 "외부에서 서로 찾고 뚫는" 부분인데, Tailscale이 이미 암호화된 사설망(100.x 대역)을 제공하므로 그 단계가 통째로 사라집니다. NAT·방화벽·포트포워딩 고민이 없습니다.

4 토폴로지 — 메시 vs 허브

Syncthing은 기본적으로 메시(mesh)입니다. 모든 기기가 서로 직접 연결되려 합니다. 그런데 노트북·데스크톱처럼 껐다 켰다 하는 기기들끼리만 묶으면 문제가 생깁니다 — A에서 바꾼 파일이 B에 가려면 그 순간 A와 B가 동시에 켜져 있어야 합니다.

메시 (직접 연결) — 동시에 켜져 있어야 전파 PC-A PC-B ⇅ ⇅ A와 C가 동시에 안 켜지면 PC-C PC-A 변경 전파 지연/누락 허브 (TrueNAS 항상 ON) — 누락 없음 PC-A TrueNAS PC-B PC-C 각 PC는 TrueNAS 하고만 동기화

해법은 항상 켜져 있는 노드 하나를 허브로 두는 것입니다. 각 PC는 그 허브하고만 동기화하면 되고, 허브가 모든 변경을 모아 두었다가 다른 PC가 켜질 때 전달합니다. 그 허브로 TrueNAS가 완벽합니다.

5 TrueNAS를 허브 노드로

TrueNAS는 24시간 켜져 있는 데다 디스크 용량이 넉넉하고, Syncthing을 앱으로 바로 설치할 수 있습니다(TrueNAS SCALE 앱 카탈로그). TrueNAS에 Syncthing을 올려 항상 살아 있는 허브로 쓰면:

💡
허브 폴더 타입
TrueNAS의 폴더는 Send & Receive로 두어 모든 PC와 양방향 동기화하게 합니다. 그리고 파일 버전 관리(Staggered 등)를 TrueNAS에만 켜면, 각 PC에서 실수로 지운 파일도 허브에 이력으로 남아 복구할 수 있습니다.
⚠️
"동기화 = 백업"은 아니다
허브가 있어도 삭제는 전파됩니다. 진짜 안전망은 TrueNAS의 파일 버전 관리 + ZFS 스냅샷입니다. 둘을 켜두면 동기화의 편의와 백업의 안전을 함께 얻습니다.

6 Tailscale 위에서 설치 & 설정

전제: 3대 PC와 TrueNAS가 모두 같은 Tailscale 테일넷에 들어와 있습니다(각자 100.x.x.x 보유). 이제 포트포워딩 없이 바로 연결합니다.

  1. TrueNAS에 Syncthing 앱 설치 Apps → 카탈로그에서 Syncthing 설치. 동기화할 데이터셋을 앱의 폴더로 마운트한다. 설치 후 웹 GUI(:8384)에 접속.
  2. 각 PC에 Syncthing 설치 Windows/macOS/Linux용 바이너리 설치 후 실행하면 로컬 GUI(http://127.0.0.1:8384)가 열린다.
  3. 장치 등록 (PC ↔ TrueNAS) 각 PC의 장치 ID를 TrueNAS에 "Add Remote Device"로 추가하고, 주소를 Tailscale IP로 고정한다(아래). 반대로 PC에도 TrueNAS를 등록.
  4. 주소를 Tailscale IP로 고정 기기 주소를 dynamic 대신 tcp://100.x.x.x:22000으로 지정하면 디스커버리·릴레이 없이 직접 연결된다.
  5. 폴더 공유 TrueNAS에서 폴더를 만들고(Send & Receive) 각 PC와 공유로 체크. 각 PC는 들어온 공유 요청을 수락하고 로컬 경로를 지정하면 끝.
기기 주소 설정 (각 Remote Device)config
# dynamic 대신 Tailscale 사설 IP로 직접 지정
Addresses: tcp://100.101.102.103:22000

# 사설망만 쓰면 글로벌 디스커버리/릴레이는 꺼도 됨(프라이버시·속도)
Global Discovery:  off
Relaying:          off
💡
GUI 원격 접속도 Tailscale로
Syncthing GUI는 기본 127.0.0.1:8384만 듣습니다. TrueNAS 앱 GUI를 테일넷에서 열고 싶으면 앱의 바인드 주소를 Tailscale IP로 두거나 Tailscale Serve로 노출하세요. 외부 포트는 열 필요가 없습니다.

✓ 동작 확인

  • 각 PC GUI에서 TrueNAS가 Connected로 보이는가 (주소가 100.x인지)
  • 한 PC에서 파일을 만들면 → TrueNAS → 다른 PC 순으로 전파되는가
  • 한 PC를 꺼도, 켜져 있는 PC ↔ TrueNAS 동기화가 계속되는가
  • 꺼졌던 PC를 켜면 그동안의 변경을 TrueNAS에서 받아오는가

7 운영 팁 — 버전 관리·무시·충돌

파일 버전 관리 (허브에 켜기)

TrueNAS 폴더에 File Versioning을 켜면 덮어쓰기·삭제된 파일이 버전 폴더에 보관됩니다. Staggered(시간이 지날수록 듬성듬성 보관)가 백업 용도로 무난합니다.

무시 패턴 (.stignore)

.stignoregitignore
// 동기화에서 제외할 것들
node_modules
.DS_Store
*.tmp
.git

충돌 처리

양쪽에서 같은 파일을 동시에 고치면, Syncthing은 한쪽을 파일명.sync-conflict-날짜-기기.확장자로 남겨 덮어쓰지 않습니다. 어느 쪽이 맞는지 직접 보고 정리하면 됩니다.

⚠️
DB·VM 이미지 같은 "항상 열려 있는 큰 파일"은 주의
실시간으로 바뀌는 데이터베이스 파일이나 가상머신 디스크는 동기화 중 손상될 수 있습니다. 그런 건 Syncthing이 아니라 전용 백업(스냅샷/덤프)으로 다루세요.

8 정리

Syncthing은 클라우드 없이 내 기기끼리 암호화 동기화하는 가장 깔끔한 방법이고, TrueNAS 허브 + Tailscale 조합이 그 약점(동시 가동·NAT 뚫기)을 정확히 메웁니다.

요소역할이점
SyncthingP2P 파일 동기화무료·오픈소스·암호화·오프라인
TrueNAS 허브항상 켜진 중계·보관 노드동시 가동 불필요, 누락 없음, 버전·스냅샷
Tailscale암호화 사설망포트포워딩 0, 어디서나 직접 연결
💡
요점
"3대가 서로 직접 안 닿아도, 항상 켜진 TrueNAS 하나만 있으면 된다." 각 PC는 TrueNAS하고만 맞추면 되니 설정도 단순하고 누락도 없습니다. 여기에 파일 버전 관리와 ZFS 스냅샷까지 더하면, 동기화의 편의와 백업의 안전을 한 번에 얻습니다.