Syncthing
Syncthing 웹 인터페이스: 동기화된 폴더는 왼쪽에, 장치는 오른쪽에 표시된다. | |
| 원저자 | 야코브 보르그 |
|---|---|
| 개발자 | 야코브 보르그 외[1] |
| 발표일 | 2013년 12월 15일 |
| 저장소 | |
| 프로그래밍 언어 | Go |
| 운영 체제 | 윈도우, 유닉스 및 유닉스 계열 (리눅스, macOS, 안드로이드, FreeBSD, OpenBSD, NetBSD, DragonflyBSD, 솔라리스, 일루모스, iOS 포함) |
| 플랫폼 | x86, x86-64, ARM, ARM64, Loong64, MIPS, MIPS 64, 파워PC, RISC-V, IBM zSeries[2] |
| 크기 | 27 MB |
| 언어 | 62개 언어[3] |
언어 목록 아콜리어, 알바니아어, 알바니아어 (알바니아), 아랍어, 바스크어, 벨라루스어, 벵골어, 불가리아어, 카탈루냐어, 카탈루냐어 (발렌시아), 중국어, 중국어 (중국), 중국어 (홍콩), 중국어 (대만), 크로아티아어 (크로아티아), 체코어, 덴마크어, 덴마크어 (덴마크), 네덜란드어, 영어 (오스트레일리아), 영어 (영국), 에스페란토어, 에스토니아어, 핀란드어, 프랑스어, 프랑스어 (캐나다), 갈리시아어, 독일어, 그리스어, 히브리어 (이스라엘), 힌디어, 헝가리어, 인도네시아어, 아일랜드어 (아일랜드), 이탈리아어, 일본어, 일본어 (일본), 한국어 (대한민국), 라트비아어, 리투아니아어, 네팔어, 노르웨이어 보크몰, 노르웨이어 니노르스크, 페르시아어, 폴란드어, 포르투갈어 (브라질), 포르투갈어 (포르투갈), 루마니아어 (루마니아), 러시아어, 세르비아어, 싱할라어, 슬로바키아어, 슬로바키아어 (슬로바키아), 슬로베니아어, 스페인어, 스페인어 (스페인), 스웨덴어, 타밀어, 터키어, 우크라이나어, 베트남어, 서프리슬란트어 | |
| 종류 | 파일 동기화 |
| 라이선스 | MPL 2.0[4] |
| 웹사이트 | syncthing |
Syncthing은 피어 투 피어 파일 동기화 유틸리티로, 근거리 통신망 상의 장치 간 또는 인터넷을 통한 원격 장치 간에 파일을 동기화하도록 설계되었다. 윈도우, macOS, 리눅스, 안드로이드, iOS, *BSD 및 일루모스에서 실행된다.[5] 이 소프트웨어는 자유 오픈 소스 소프트웨어이며, 5년간의 베타 테스트를 거쳐 2019년에 버전 1.0이 출시되었다.[6]
Syncthing 서버는 백그라운드에서 데몬으로 실행되며, 사용자에게 공유 폴더와 장치를 설정할 수 있는 그래픽 사용자 인터페이스를 제공한다. 이 인터페이스는 웹 브라우저에서 로컬호스트 주소인 http://127.0.0.1:8384를 사용하여 접속할 수 있다.[5][7] 데이터 보안과 안전은 설계 단계부터 고려되었으며, 모든 Syncthing 데이터 전송은 TLS를 사용하여 암호화된다.[8]
기술
[편집]Syncthing은 Go로 작성되었으며, 자체적인 자유 소프트웨어 블록 교환 프로토콜(Block Exchange Protocol)을 구현한다.[9]
Syncthing은 사용자가 제공한 하드웨어에서 실행되는 BYO 클라우드 컴퓨팅 모델이다. IPv6를 지원하며, IPv4 네트워크 사용자를 위해 NAT 홀 펀칭(Hole punching)과 릴레이를 지원한다. 장치를 연결하려면 명시적인 승인이 필요하며(Introducer 기능이 사용되는 경우 제외), 이는 메시 망의 보안을 강화한다. 장치 간에 직접 전송되거나 릴레이를 통해 전송되는 모든 데이터는 TLS를 사용하여 암호화된다.[8][10]
충돌이 발생하면 이전 파일의 이름 뒤에 "sync-conflict" 접미사(타임스탬프 포함)를 붙여 이름을 변경함으로써, 사용자가 동기화 사이에 변경된 동일한 이름의 두 개 이상의 파일을 관리하는 방법을 결정할 수 있게 한다.[11] GUI 래퍼(wrapper) 프로그램은 이러한 파일을 사용하여 사용자가 수동으로 파일을 처리하지 않고도 충돌을 해결할 수 있는 방법을 제공할 수 있다.
효율적인 동기화는 메타데이터와 모든 전송 데이터의 압축,[12] 블록 재사용,[13] 그리고 전체 해시가 계산 및 저장된 후 변경된 파일에 대한 경량 스캐닝[14]을 통해 이루어진다. Syncthing은 원격 장치의 업데이트를 처리하지 않는 송신 전용 및 수신 전용 폴더 유형을 제공하며,[15] 다양한 유형의 파일 버전 관리[16](휴지통, 단순 또는 단계적 버전 관리, 외부 프로그램이나 스크립트에 버전 관리 위임), 그리고 파일/경로 무시 패턴을 지원한다.[17] 현재 두 가지 서로 다른 SHA256 해시 구현이 지원되며, 시작 시 짧은 벤치마크를 거쳐 더 빠른 방식이 동적으로 사용된다.[18] 파일 및 폴더의 이동 및 이름 변경은 기존 데이터를 다시 다운로드하지 않고 효율적으로 처리된다.[19]
인프라
[편집]장치 검색은 프로젝트 개발자가 운영하는 공개적으로 접속 가능한 검색 서버,[20] 브로드캐스트 메시지를 통한 LAN 검색, 장치 기록 및 정적 호스트 이름/주소 지정을 통해 이루어진다. 이 프로젝트는 또한 자체 검색 서버를 운영할 수 있는 Syncthing Discovery Server[21] 프로그램을 제공하며, 이는 공개 서버와 병행하거나 대체하여 사용할 수 있다.
커뮤니티가 기여한 릴레이 서버 네트워크를 통해 서로 다른 IPv4 NAT 방화벽 뒤에 있는 장치들이 제3자를 통해 암호화된 데이터를 중계함으로써 통신할 수 있다. 릴레이 방식은 TURN 프로토콜과 유사하며, 트래픽은 장치 간에 종단간 TLS 암호화가 적용된다(따라서 릴레이 서버조차 데이터를 볼 수 없으며 암호화된 스트림만 볼 수 있다). 원하는 경우 공개 릴레이와 함께 또는 단독으로 사설 릴레이를 설정하고 구성할 수도 있다. Syncthing은 직접 연결이 가능해지면 릴레이 방식에서 직접 장치 간 연결로 자동 전환한다.[22]
Syncthing은 프로젝트나 커뮤니티 서버에 연결하지 않고도 사용할 수 있다.[23] 업그레이드, 선택적 사용 데이터 전송, 검색 및 릴레이 기능을 모두 비활성화하거나 독립적으로 구성할 수 있으므로, 프라이버시나 기밀 유지를 위해 폐쇄된 시스템에서 메시 망과 인프라를 운영할 수 있다.
설정 및 관리
[편집]Syncthing은 로컬(로컬호스트 기본 포트 8384) 또는 원격에서 웹 브라우저를 통해 상태를 구성하고 모니터링할 수 있는 웹 기반 인터페이스를 제공하며, 프록시 서버를 통한 접속도 지원한다. 사용자는 인터페이스를 통해 공유할 폴더를 선택 및 관리하고 동기화에 참여할 장치를 관리할 수 있다. Syncthing의 모든 컴퓨터에는 고유한 장치 ID(Device ID)가 있으며, 승인을 통해 동기화 네트워크에 새 장치를 추가하는 데 사용된다.[24]

Syncthing은 현재 윈도우, macOS, 리눅스, FreeBSD, OpenBSD 및 일루모스 플랫폼에서 직접 사용할 수 있다.[25] 일부 플랫폼은 더 이상 미리 빌드된 버전을 제공하지 않으며 직접 컴파일해야 한다.[5] 윈도우용 SyncTrayzor(작업 표시줄 트레이 유틸리티로 실행), 안드로이드용 Syncthing-Fork, iOS용 Möbius Sync와 같이 커뮤니티에서 기여한 Syncthing 래퍼 프로그램도 존재한다.[26][27] 공식 안드로이드 클라이언트는 2024년까지 구글 플레이 스토어에서 사용할 수 있었다.[28]
고급 사용자의 경우, 인터페이스를 사용하지 않고 Syncthing 구성 파일을 직접 편집하거나 명령줄 인터페이스를 통해 Syncthing을 사용할 수도 있다. 커뮤니티 기여 페이지에는 Docker 이미지 링크와 함께 Puppet, Ansible 등 지원되는 구성 관리 솔루션에 대한 링크도 제공된다.
평가
[편집]Security Now의 456회 에피소드(2014년 녹음)에서 호스트 스티브 깁슨은 Syncthing을 BitTorrent Sync를 대체할 잠재적인 오픈 소스 도구로 극찬했으며,[29] 이후 603회,[30] 698회,[31] 727회,[32] 그리고 734회와 781회에서 더 자세히 언급했다.[33][34]
LWN.net의 한 리뷰어는 2021년에 다음과 같이 썼다.[35] "Syncthing은 호의적인 인상을 남긴다. 개발자들은 유능하고 신뢰할 수 있으며 안전하고 성능이 상당히 우수한 시스템을 만들기 위해 노력한 것으로 보인다. 또한 많은 자유 소프트웨어 프로젝트들이 실패하는 지점인 설치와 사용의 편의성을 높이는 작업도 해냈다. 자신의 데이터 동기화 및 복제 요구사항을 스스로 통제하려는 누구에게나 매력적인 도구이다."
버전 역사
[편집]| 버전 | 날짜 | 비고 |
|---|---|---|
| 2.0.0[36] | 2025-08-12 | LevelDB 데이터베이스가 SQLite로 교체되었다. |
| 1.28.0[37] | 2024-10-04 | 안드로이드를 지원하는 마지막 버전. 이 릴리스 이후 개발자는 구글 플레이 스토어와 오픈 소스 저장소인 F-Droid에서 안드로이드 버전을 철수시켰다.[38] 비공식 포크 버전들은 계속 사용 가능하다. |
| 1.25.0[37] | 2023-09-25 | |
| 1.23.7[37] | 2023-07-31 | 윈도우 7을 공식적으로 지원하는 Syncthing의 마지막 버전.[39] 단, Syncthing 1.27.0도 비공식적으로는 윈도우 7에서 작동하는 것으로 알려져 있다. |
| 1.20.0[37] | 2022-05-04 | |
| 1.15.0[37] | 2021-04-06 | |
| 1.10.0[37] | 2020-09-15 | LAN IP를 글로벌 검색 네트워크에 브로드캐스트할지 여부를 사용자가 선택할 수 있는 기능을 추가했다.[40] |
| 1.9.0 | 2020-08-28 | 새로 추가된 대소문자 구분 없는 파일 시스템 처리를 비활성화할 수 있는 caseSensitiveFS 옵션을 도입했다.[41] |
| 1.8.0 | 2020-08-07 | 카피 온 라이트 파일 시스템에서 파일 변경 사항을 저장하는 방식을 지정할 수 있는 실험적 폴더 옵션을 추가하고, TCP hole punching 지원을 추가했다.[42] |
| 1.5.0[37] | 2020-04-21 | |
| 1.3.0[43] | 2019-10-01 | 데이터베이스 크기 조정을 위한 새로운 매개변수가 추가되었다. |
| 1.2.0[44] | 2019-07-09 | 새로운 전송 프로토콜(QUIC) 지원을 도입하고, 자동 크래시 리포팅을 수행할 수 있으며, 작고 고정된 블록 방식을 폐지했다. 1.2.0 버전부터는 0.14.45 이하 버전을 실행 중인 Syncthing 클라이언트와의 통신 지원이 중단되었다.[45] |
| 1.1.3[46] | 2019-05-09 | 윈도우에서의 패닉 버그 수정을 위한 핫픽스 릴리스. |
| 1.1.1[47] | 2019-04-02 | TLS 1.3 지원을 추가했다. |
| 1.1.0[48] | 2019-04-22 | Syncthing이 Go 1.12를 채택함에 따라 윈도우 XP 및 윈도우 서버 2003과의 호환성이 상실되었다.[49] 해싱 성능이 수정되었으며, 사용자/그룹 소유권이 상위 디렉터리를 따르게 되었다. |
| 1.0.0 "Erbium Earthworm"[50] | 2019-01-01 | 첫 번째 "안정" 릴리스로, 주요 변경 사항은 거의 없었으나(수석 개발자는 0.14.55-rc.2와 사실상 동일하다고 밝혔다[51]), 프로그램의 광범위한 사용과 거의 5년 동안 개발되어 온 사실을 반영한 것이다.[52][53] 최대 동시 스캔 수 제한 및 수신 전용 폴더에 대해 로컬에서 변경된 파일의 표시 제한 등이 변경되었다.
1.0.0 릴리스와 함께 팀은 다음과 같은 기준의 새로운 유사 유의적 버전 시스템을 도입했다.[54]
|
| 0.14 "Dysprosium Dragonfly"[55] | 2016-06-19 | 확장 가능한 새로운 동기화 프로토콜 도입. |
| 0.13 "Copper Cockroach"[56][57] | 2016-05-17 | 0.13.x 버전에서는 폴더 ID와 폴더 라벨이 분리되었다. 또한 다운로드 중에도 이미 다운로드된 파일의 일부를 다른 클라이언트에 제공할 수 있는 기능이 추가되었다. 0.13.0은 이전의 많은 릴리스와 마찬가지로 0.12.x 이하 버전을 실행하는 클라이언트와 호환되지 않는다. |
| 0.12 "Beryllium Bedbug"[58] | 2015-11-05 | 연결 릴레이 및 HTTPS를 통한 장치 검색 기능이 도입되었다. |
| 0.11 | 2015-04-22 | 충돌 처리, UI 언어 선택, CPU 사용량 및 동기화 속도 개선, 윈도우에서의 긴 파일 이름 지원, 드라이브 접근 불가 등의 문제 발생 시 자동 재시작, 외부 버전 관리 소프트웨어 지원 등이 도입되었다.[59] 0.11 버전은 이전 버전의 Syncthing과 하위 호환되지 않는다.[59] REST API의 변경으로 인해 0.10.x 버전을 사용하던 클라이언트들은 출시 당시 많은 서드파티 통합 기능과 호환되지 않았기 때문에 0.11로 자동 업데이트되지 않았다.[59] |
| 0.2[60] | 2013-12-30 | 최초의 공개 바이너리 배포. |
같이 보기
[편집]각주
[편집]- ↑ https://syncthing.net/downloads/
- ↑ “The syncthing translation project on Transifex” (영어). 《www.explore.transifex.com》. 2025년 9월 26일에 확인함.
- ↑ “LICENSE”. 2016년 4월 7일에 확인함 – GitHub 경유.
- 1 2 3 “Sync files quickly and securely between devices for free with Syncthing 2.0” (영어). 《BetaNews》. 2025년 8월 12일. 2025년 10월 23일에 확인함.
- ↑ “Syncthing 1.0.0 released as open-source P2P sync tool, finally leaves beta” (영어). 《BetaNews》. 2019년 1월 3일. 2023년 10월 18일에 확인함.
- ↑ Wallen, Jack (2016년 1월 5일). “Let Syncthing turn your desktop into a local cloud for your mobile device”. 《TechRepublic》. CBS Interactive.
- 1 2 “Security Principles — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Block Exchange Protocol v1”. 2016년 4월 7일에 확인함.
- ↑ “Relaying — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “FAQ — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “FAQ — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Understanding Synchronization — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Understanding Synchronization — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Folder Types”. 2020년 7월 9일에 확인함.
- ↑ “File Versioning — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Ignoring Files — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “cmd/syncthing: Add selectable sha256 package (fixes #3613, fixes #3614)”. 《Github.com》. 2016년 9월 22일. 2017년 1월 4일에 확인함.
- ↑ “FAQ — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Understanding Device IDs — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Syncthing Discovery Server — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Relaying — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Security Principles — Syncthing v0.14 documentation”. 《Docs.syncthing.net》. 2017년 1월 4일에 확인함.
- ↑ “Understanding Device IDs — Syncthing documentation”. 《docs.syncthing.net》. 2025년 10월 23일에 확인함.
- ↑ “Syncthing | Downloads”. 《syncthing.net》. 2025년 10월 23일에 확인함.
- ↑ Newman, Jared. “How to use SyncThing to sync files without the cloud” (영어). 《PCWorld》. 2025년 10월 23일에 확인함.
- ↑ “Community Contributions — Syncthing documentation”. 《docs.syncthing.net》. 2025년 10월 23일에 확인함.
- ↑ “Syncthing's Android App is Going Away, Google Play Store Policies is One of the Reasons to Blame” (영어). 《It's FOSS News》. 2024년 10월 23일. 2025년 10월 23일에 확인함.
- ↑ “Security Now! Episode 456”. Grc.com. 2014년 11월 4일에 확인함.
- ↑ “Security Now! Episode 603”. Grc.com. 2019년 2월 7일에 확인함.
- ↑ “Security Now! Episode 698”. Grc.com. 2019년 2월 7일에 확인함.
- ↑ “Security Now! Episode 727”. Grc.com. 2019년 8월 14일에 확인함.
- ↑ “Security Now! Episode 734 on YouTube”. YouTube.com. October 2019. 2019년 10월 3일에 확인함.
- ↑ “Security Now! Episode 781 on YouTube”. YouTube.com. 2020년 8월 25일. 2020년 9월 1일에 확인함.
- ↑ “Syncing all the things”. 2021년 9월 7일에 확인함.
- ↑ syncthing. “Release v2.0.0 · syncthing/syncthing” (영어). 《GitHub》. 2025년 10월 23일에 확인함.
- 1 2 3 4 5 6 7 “Versions & Releases — Syncthing documentation”. 《docs.syncthing.net》. 2023년 10월 18일에 확인함.
- ↑ “Discontinuing syncthing-android”. 《forum.syncthing.net》. 2025년 12월 10일에 확인함.
- ↑ “Syncthing Windows Setup v1.27.2” (영어). 《Syncthing Community Forum》. 2024년 1월 2일. 2025년 12월 2일에 확인함.
- ↑ “Release v1.10.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ “Release v1.9.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ “Release v1.8.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ 《v1.3.0》, The Syncthing Project, 2019년 10월 1일
- ↑ 《v1.2.0》, The Syncthing Project, 2019년 7월 9일
- ↑ “Release v1.2.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ 《v1.1.3》, The Syncthing Project, 2019년 5월 31일
- ↑ 《v1.1.1》, 2019년 5월 31일
- ↑ 《v1.1.0》, 2019년 5월 31일
- ↑ “Release v1.1.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ 《v1.0.0》, 2019년 5월 31일
- ↑ “Syncthing graduation day”. 《Syncthing Community Forum》. 2019년 1월 1일. 2020년 10월 15일에 확인함.
- ↑ “Release v1.0.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ “Syncthing 1.0.0 released as open-source P2P sync tool, finally leaves beta” (영어). 《BetaNews》. 2019년 1월 3일. 2020년 10월 15일에 확인함.
- ↑ “Versions & Releases — Syncthing v1 documentation”. 《docs.syncthing.net》. 2020년 10월 15일에 확인함.
- ↑ “0.14”. 《Github.com》. 2016년 6월 19일.
- ↑ “0.13”. 《Github.com》. 2016년 5월 17일.
- ↑ “Release v0.13.0 · syncthing/syncthing” (영어). 《GitHub》. 2020년 10월 15일에 확인함.
- ↑ “0.12”. 2016년 4월 14일.
- 1 2 3 “Syncthing v0.11.0 Release Notes”. 《Syncthing Community Forum》. 2015년 4월 14일. 2020년 10월 15일에 확인함.
- ↑ “Releases”. 2013년 12월 30일 – GitHub 경유.
외부 링크
[편집]- Syncthing
- 공식 웹사이트