리눅스에서 Syncthing으로 파일 동기화하는 방법
리눅스에서 Syncthing으로 파일 동기화하는 방법
안녕하세요! 요즘 디지털 환경에서는 여러 기기에서 파일을 효율적으로 관리하고 동기화하는 것이 정말 중요해졌어요. 클라우드 스토리지 서비스가 많이 사용되고 있지만, 개인정보 보호와 비용 절감을 원하신다면 자체 호스팅 솔루션도 매력적인 대안이 될 수 있답니다. 오늘은 오픈소스 파일 동기화 도구인 Syncthing을 리눅스에서 어떻게 설정하고 사용하는지 친절하게 알려드릴게요!
Syncthing이란 무엇일까요?
Syncthing은 강력한 분산형 오픈소스 파일 동기화 소프트웨어예요. 윈도우, 리눅스, 맥OS, 안드로이드 등 다양한 기기와 플랫폼 간에 파일을 쉽고 안전하게 동기화할 수 있게 해주죠. P2P(Peer-to-Peer) 방식을 사용하기 때문에 중앙 서버 없이 기기 간에 직접 파일을 주고받을 수 있어서 더 안전하고 프라이빗한 방식으로 파일을 관리할 수 있답니다.
Syncthing의 주요 장점을 알아볼까요?
- 분산형 구조: 중앙 서버가 필요 없어요
- 오픈소스: 무료로 마음껏 사용하실 수 있어요
- 강력한 암호화: 모든 통신이 TLS로 안전하게 보호돼요
- 크로스 플랫폼: 다양한 운영체제에서 사용 가능해요
- 자동 동기화: 파일 변경 사항을 자동으로 감지하고 업데이트해줘요
이제 Syncthing을 리눅스에 설치하고 설정하는 방법을 함께 알아볼게요!
1단계: 리눅스에 Syncthing 설치하기
Syncthing은 대부분의 리눅스 배포판 저장소에서 쉽게 찾을 수 있어요. 여러분이 사용 중인 배포판에 맞는 명령어를 사용해 주세요.
Ubuntu, Debian, Linux Mint, Pop!_OS, MX Linux
Ubuntu나 Debian, 그리고 이를 기반으로 하는 배포판을 사용하신다면 다음 명령어를 실행해 주세요:
1sudo apt install syncthing
Fedora
Fedora를 사용하고 계신다면 이렇게 해보세요:
1sudo dnf install syncthing
Rocky Linux, AlmaLinux
Rocky Linux나 AlmaLinux 등 RHEL 기반 배포판을 사용하신다면, 먼저 EPEL 저장소를 추가한 후 Syncthing을 설치해야 해요:
1sudo dnf install epel-release
2sudo dnf install syncthing
Arch Linux, Manjaro, EndeavourOS
Arch와 그 파생 배포판을 사용하신다면 다음 Pacman 명령어로 설치할 수 있어요:
1sudo pacman -S syncthing
💡 꿀팁: 가장 최신 버전을 사용하고 싶으시다면 Syncthing 공식 사이트에서 제공하는 저장소를 추가하셔도 좋아요. 이렇게 하면 배포판의 기본 저장소보다 더 최신 버전을 사용하실 수 있답니다.
2단계: 서비스 자동 시작 설정하기
Syncthing이 시스템을 켤 때마다 자동으로 시작되도록 설정해볼게요. 이렇게 하면 매번 수동으로 실행할 필요 없이 항상 파일이 동기화된 상태로 유지되니 정말 편리하답니다. 다음 명령어를 실행해 주세요 (각 시스템에서 "myuser" 부분을 여러분의 사용자 이름으로 바꿔주세요):
1sudo systemctl enable syncthing@myuser.service
2sudo systemctl start syncthing@myuser.service
서비스가 잘 실행되고 있는지 확인하고 싶으시다면 다음 명령어를 실행해 보세요:
1sudo systemctl status syncthing@myuser.service
⚠️ 주의하세요: 사용자 이름을 정확히 입력했는지 꼭 확인해 주세요. 잘못된 사용자 이름을 입력하면 서비스가 시작되지 않을 수 있어요.
3단계: Syncthing 초기 설정하기
자, 이제 Syncthing이 두 리눅스 시스템에서 잘 실행되고 있는지 확인한 후 설정을 시작해 볼까요? Syncthing은 사용하기 쉬운 웹 인터페이스를 제공해요. 웹 브라우저를 통해 8384 포트로 접속할 수 있답니다. 웹 브라우저를 열고 "http://localhost:8384"로 접속해 보세요.
처음 접속하시면 익명 통계 정보를 보낼지 여부를 선택하라는 메시지가 나타날 거예요. 원하시는 옵션을 선택하고 계속 진행해 주세요.
헤드리스 서버에서 Syncthing 접근하기
혹시 데스크톱 환경이 없는 헤드리스 리눅스 서버에 Syncthing을 설치하셨다면, SSH 터널을 사용해 원격으로 웹 인터페이스에 접근할 수 있어요. 걱정하지 마세요! 방법은 간단합니다.
다음 명령어를 실행해 보세요 ("XXXX"는 원격 "8384" 포트가 연결될 로컬 포트 번호이고, "myuser"는 해당 시스템의 사용자 이름, "remote-ip-address"는 Syncthing 서버의 IP 주소입니다):
1ssh -L XXXX:localhost:8384 myuser@remote-ip-address
예를 들면 이렇게요:
1ssh -L 8855:localhost:8384 linuxiac@192.168.122.26
이 명령어를 실행하면 IP 주소가 "192.168.122.26"인 서버(우리 예시에서는 Ubuntu Syncthing)의 8384 포트를 여러분의 컴퓨터 로컬 8855 포트에 연결해 줍니다.
💡 꿀팁: SSH 터널링 명령을 실행한 터미널 창은 계속 열어두셔야 해요. 닫으시면 터널 연결이 끊어집니다.
이제 웹 브라우저에서 "http://localhost:8855"로 접속하면 원격 시스템의 Syncthing 관리 화면을 볼 수 있어요!
보안 설정하기
처음 접속하시면 Syncthing UI에 접근하기 위한 비밀번호가 설정되지 않았다는 알림이 나타날 거예요. 보안을 위해 비밀번호를 설정하는 것이 좋겠죠? 다음과 같이 진행해 볼게요:
- "Settings" 버튼을 클릭하세요.
- 팝업 창에서 "GUI" 탭을 선택하세요.
- "GUI Authentication User"와 "GUI Authentication Password" 필드에 원하시는 사용자 이름과 비밀번호를 입력하세요.
- "저장"를 클릭해서 저장하세요.
GUI Listen Address 를 0.0.0.0 으로 바꾸면, 외부에서도 접근이 가능하도록 설정할 수 있습니다.
두 번째 Syncthing 인스턴스에서도 같은 방법으로 설정해 주세요.
4단계: Syncthing 인스턴스 연결하기
이제 두 인스턴스(예: Ubuntu와 윈도우)를 서로 연결해 볼까요? Syncthing은 각 인스턴스마다 고유한 ID를 사용해요. 두 기기를 연결하려면 이 ID를 알아야 합니다.
따라해보도록 하겠습니다.
- 첫 번째 시스템(예: Ubuntu)에서 오른쪽 상단의 "동작" 버튼을 누르고 메뉴에서 "기기 식별자"를 선택하세요.
- 팝업 창에 표시된 코드를 복사하세요.
- 두 번째 시스템(예: 윈도우즈)로 이동해서 "다른기기 추가" 버튼을 선택하세요.
- "Device ID" 필드에 복사한 코드를 붙여넣고 "저장"을 클릭하세요.
- 다시 Ubuntu Syncthing으로 돌아가면 윈도우즈가 연결을 요청한다는 메시지가 나타날 겁니다. "다른 기기 추가" 버튼을 클릭해서 수락해 주세요.
- 나타나는 팝업 창에서 장치 이름을 원하시는 대로 변경하실 수 있어요. 완료되면 "저장" 버튼을 클릭하세요.
잠시 후면 "Remote Devices" 섹션의 장치 상태가 "Connected"로 바뀔 거예요. 윈도우 시스템도 확인해보시면 마찬가지로 상태가 바뀐 것을 확인하실 수 있을 거예요.
📌 참고하세요: 기기 연결할 때 장치 이름을 직관적으로 설정하시면 나중에 여러 기기를 관리할 때 훨씬 편리해요. 예를 들어 "회사PC", "집노트북" 같이 설정하시면 좋습니다.
왼쫵은 윈도우에서 추가한것이고, 오른쪽은 우분투쪽에서 추가한 모습입니다.
이제 두 Syncthing 인스턴스가 성공적으로 연결되었어요. 이제 파일 동기화를 설정해 볼까요?
5단계: Syncthing 공유 설정하기
기본적으로 Syncthing은 홈 디렉토리에 "Sync"라는 빈 폴더를 만들어서 다른 Syncthing 인스턴스와 공유할 파일들을 저장해요. "폴더 추가" 버튼을 사용해서 원하시는 만큼 폴더를 추가하실 수도 있지만, 이 가이드에서는 간단히 기본 "Sync" 폴더를 사용해볼게요.
파일을 공유하는 방법은 다음과 같아요:
- "Edit"을 클릭하세요.
- 열린 팝업에서 "Sharing" 탭을 선택하세요.
- 파일을 공유/동기화할 Syncthing 인스턴스의 체크박스를 선택하세요.
파일 버전 관리 설정하기 (선택 사항)
Syncthing의 아주 유용한 기능 중 하나가 바로 파일 버전 관리예요. 실수로 파일을 덮어쓰거나 삭제했을 때 이전 버전을 복원할 수 있어 정말 편리하답니다.
이 기능을 활용해보세요:
- "File Versioning" 탭을 선택하세요.
- 드롭다운 메뉴에서 "Simple File Versioning"을 선택하세요.
- "Keep Versions"에는 기본적으로 "3"을 권장해 드려요.
- 설정이 끝나면 "저장" 버튼을 눌러 저장하세요.
이렇게 하면 다른 Syncthing 인스턴스에 폴더를 공유하고 싶다는 알림이 자동으로 전송돼요. 윈도우 시스템으로 가보시면 폴더 공유 요청이 도착했을 거예요. "Share" 버튼을 클릭하면 폴더가 공유되고 두 시스템 간에 동기화가 시작됩니다.
💡 꿀팁: 정말 중요한 데이터를 다루신다면 버전 관리를 더 길게 설정하시는 게 좋아요. 저장 공간이 충분하시다면 7-14일 정도로 설정하시면 더 안전하게 보호받을 수 있답니다.
6단계: 파일 동기화 테스트하기
드디어 우리의 성과를 확인할 시간이 왔어요! 두 Syncthing 인스턴스 모두 빈 "Sync" 폴더가 있을 거예요. 이제 첫 번째 시스템(Windows)의 "Sync" 폴더에 테스트문서를 넣어볼게요. 그런 다음 우분투로 이동해보세요. 놀랍게도 Ubuntu에 추가했던 파일들이 윈도우의 "Sync" 폴더에도 나타났을 겁니다.
동기화는 양방향으로 작동하기 때문에 어느 시스템에서든 파일을 추가하거나, 변경하거나, 삭제하면 몇 초 안에 다른 시스템에도 자동으로 반영됩니다.
📌 참고하세요: 대용량 파일을 동기화할 때는 네트워크 속도에 따라 시간이 조금 더 걸릴 수 있어요. 하지만 걱정 마세요. Syncthing은 자동으로 네트워크 상황에 맞춰 속도를 조절해서 최적의 성능을 제공한답니다.
추가 Syncthing 팁과 활용 방법
1. 충돌 해결하기
동시에 여러 기기에서 같은 파일을 수정하면 충돌이 발생할 수 있어요. 걱정 마세요! Syncthing은 이런 경우를 대비해 두 버전을 모두 저장하고 충돌 파일에 ".sync-conflict" 접미사를 붙여줘요. 필요한 변경사항을 수동으로 병합한 후 충돌 파일을 삭제하시면 된답니다.
2. 모바일 기기와 동기화하기
Syncthing은 안드로이드에서도 사용할 수 있어요! Google Play 스토어에서 "Syncthing" 앱을 설치하시고 위와 같은 방법으로 기기를 연결하시면 모바일 기기와도 파일을 동기화할 수 있답니다. 스마트폰에서도 항상 최신 파일에 접근할 수 있어 정말 편리해요.
3. 선택적 동기화 설정하기
모든 파일을 동기화하고 싶지 않으신가요? ".stignore" 파일을 사용하면 특정 파일이나 폴더를 동기화에서 제외할 수 있어요. 이 파일은 각 동기화 폴더의 루트에 위치해야 해요.
예시 .stignore 파일을 만들어볼까요?
*.tmp
*.temp
/temp
/cache
4. 저사양 기기에서 성능 최적화하기
오래된 컴퓨터나 라즈베리 파이 같은 저사양 기기에서 Syncthing을 사용하신다면, 리소스 사용을 최적화하는 것이 좋아요:
- 웹 UI의 Settings > Advanced로 이동하세요
- "Max Concurrent Scans" 값을 낮게 설정하세요(예: 1)
- "Folder Rescan Interval"을 높게 설정하세요(예: 3600초)
이렇게 하면 시스템 자원을 적게 사용하면서도 효율적으로 동기화할 수 있답니다.
마무리
Syncthing은 정말 강력하고 안정적인 파일 동기화 도구예요. 오픈소스이면서도 버전 관리, 선택적 동기화와 같은 고급 기능을 제공하기 때문에 파일 동기화 솔루션을 찾고 계신 분들께 적극 추천해 드리고 싶어요.
가장 좋은 점은 Syncthing이 리눅스뿐만 아니라 윈도우, 맥OS, 안드로이드 등 다양한 기기에서도 사용할 수 있다는 거예요! 어떤 운영체제를 사용하시든 항상 최신 파일을 손끝에서 관리할 수 있답니다.
이 가이드에서 알려드린 단계를 따라하시면 리눅스 시스템에서 Syncthing을 쉽게 설정하고 사용하실 수 있어요. 개발자든, 비즈니스 담당자든, 일반 사용자든 상관없이 Syncthing은 모두에게 유용한 도구가 될 거예요.
물론 이 가이드에서 다 다루지 못한 기능들도 많이 있어요. 더 자세한 정보를 원하신다면 Syncthing 공식 웹사이트나 문서를 참고해 보세요.
이 글이 여러분께 도움이 되었기를 바랍니다! 궁금한 점이나 의견이 있으시면 언제든지 문의 주세요.