EğitimlerKendi sunucunuzdaki uygulamalar
Syncthing, Linux sunucuda sürekli açık eşitleme noktası olarak nasıl çalıştırılır
Syncthing'i resmi apt deposundan kurun, systemd servisi olarak çalıştırın, web arayüzüne SSH tüneliyle erişin ve klasörleri cihazlarınızla eşitleyin.
- Başlangıç
- 25 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13
Bu sayfada
- Ön koşullar
- Adım 1 — Resmi Syncthing deposunu ekleyin
- Adım 2 — Syncthing'i kurun
- Adım 3 — Syncthing'i sistem servisi olarak çalıştırın
- Adım 4 — Güvenlik duvarında eşitleme portunu açın
- Adım 5 — Arayüzü SSH tüneliyle açın ve parola belirleyin
- Adım 6 — Cihazlarınızı bağlayın
- Adım 7 — Klasörleri paylaşın
- Adım 8 — Yok sayma kalıplarıyla dosyaları dışarıda bırakın
- Yedekleme ve geri yükleme
- Syncthing güncelleme
- Sorun giderme
- Sunucu Disconnected olarak görünüyor
- Bağlantı türü Relay olarak görünüyor
- folder marker missing
- Klasör yolunda Permission denied hatası
- Dosya sistemi izleyicisi büyük klasörlerde başarısız oluyor
- Sonraki adımlar
Syncthing açık kaynaklı, sürekli çalışan bir dosya eşitleme programıdır. Cihazlar şifreli bağlantılarla doğrudan birbirine bağlanır; dosyalarınızı tutan merkezi bir bulut hizmeti yoktur. Tek başına Syncthing yalnızca iki cihaz aynı anda çevrimiçiyken eşitleme yapar. Sürekli açık bir Linux sunucu bu sorunu çözer: dizüstü bilgisayarınız, masaüstünüz ve telefonunuz çevrimiçi oldukları her an sunucuyla eşitlenir, sunucu da değişiklikleri diğerlerine aktarır.
Bu rehber Syncthing'i projenin resmi apt deposundan (stable-v2 kanalı) kurar, ayrı bir kullanıcı altında systemd servisi olarak çalıştırır, web arayüzünü 127.0.0.1 üzerinde tutup ona SSH tüneliyle erişir, güvenlik duvarında yalnızca eşitleme portlarını açar; ardından cihaz eklemeyi, klasör paylaşmayı, yok sayma kalıpları yazmayı, cihaz anahtarlarını yedeklemeyi, güncellemeyi ve sık görülen bağlantı sorunlarını gidermeyi gösterir.
Ön koşullar
- Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12 veya Debian 13 çalıştıran bir sunucu. Resmi depo bir sürüm kod adına bağlı değildir; bu nedenle aynı adımlar dördü için de geçerlidir. Adımlar, root erişimli bir HyperDC Linux VPS, VDS veya dedicated sunucuda çalışır.
sudoyetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı: Yeni bir Linux sunucusunu güvenli hale getirin ve SSH anahtarlarını ayarlayın rehberlerine bakın.- SSH'ye izin veren, etkin bir ufw (güvenlik rehberinde anlatılır).
- Dizüstü bilgisayarınız gibi en az bir başka cihazda, Syncthing web sitesinden veya platformunuzun paketinden kurulmuş Syncthing.
| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | Yayınlanmamış | 1 vCPU |
| RAM | Yayınlanmamış | 1 GB, çok sayıda dosya içeren klasörler için daha fazla |
| Disk | Yayınlanmamış | Eşitlenen verinin boyutu, sürümler ve dizin veritabanı için ek alan |
Proje en düşük gereksinim yayınlamaz. Sağdaki sütun temkinli bir başlangıç noktasıdır, ölçülmüş bir değer değildir. Asıl yük büyük klasörlerin hash'lenmesi ve dizinlenmesidir; bu yüzden en uzun süren ilk taramadır.
Adım 1 — Resmi Syncthing deposunu ekleyin
Ubuntu ve Debian kendi Syncthing paketlerini sunar, ancak bu paketler upstream'in gerisinde kalır. Syncthing projesi kendi apt deposunu işletir. İmza anahtarını /etc/apt/keyrings içine indirin:
sudo apt update
sudo apt install curl
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpgKararlı sürümleri (genellikle ayın ilk salı günü) alan stable-v2 kanalını ekleyin. Proje, dağıtımın eski paketinin hiçbir zaman öne geçmemesi için deposunu 990 önceliğiyle sabitler:
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.prefSürüm adaylarını içeren bir candidate kanalı da vardır; onu yalnızca test makinelerinde kullanın.
Adım 2 — Syncthing'i kurun
sudo apt update
sudo apt install syncthing
apt-cache policy syncthing
syncthing versionapt-cache policy kurulu sürümün https://apt.syncthing.net adresinden geldiğini göstermeli, syncthing version ise 2.x bir sürüm yazdırmalıdır. Paket systemd birim dosyalarını da kurar; onları elle kopyalamanız gerekmez.
Adım 3 — Syncthing'i sistem servisi olarak çalıştırın
Syncthing belgeleri iki systemd düzeni sunar: açılışta kimse giriş yapmadan başlayan ve sunucular için tasarlanan sistem servisi [email protected] ile masaüstleri için bir kullanıcı servisi. Sistem servisini kullanın ve Syncthing'e yönetici kullanıcınız yerine yetkisiz, ayrı bir hesap verin:
sudo useradd --system --create-home --home-dir /srv/syncthing --shell /usr/sbin/nologin syncthing
sudo systemctl enable --now [email protected]
sudo systemctl status [email protected] --no-pager
sudo ss -tulpn | grep syncthingServis active (running) görünür. ss çıktısı arayüzü yalnızca 127.0.0.1:8384 üzerinde, eşitleme protokolünü ise hem TCP hem UDP (QUIC) üzerinden 22000 numaralı portta listeler. Syncthing ilk başlatmada yapılandırmasını ve cihaz anahtarlarını /srv/syncthing/.local/state/syncthing içinde oluşturur. Syncthing 2 artık varsayılan bir klasör oluşturmaz; klasörleri Adım 7'de kendiniz eklersiniz.
Adım 4 — Güvenlik duvarında eşitleme portunu açın
Diğer cihazlar sunucuya 22000 numaralı porttan bağlanır. Bu portu TCP ve UDP için açın, başka hiçbir şeyi açmayın:
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status verbose8384'ü açmayın; arayüz gizli kalır. Syncthing paketi ufw profilleri de getirir (sudo ufw allow syncthing), ancak bu profil ek olarak UDP 21027'yi açar; bu port yalnızca yerel ağda keşif için işe yarar ve internetteki bir sunucuda bir amaca hizmet etmez.
Adım 5 — Arayüzü SSH tüneliyle açın ve parola belirleyin
Arayüz 127.0.0.1:8384 üzerinde dinlediği için ona SSH üzerinden yerel bir port yönlendirerek erişirsiniz. Bu komutu sunucuda değil, kendi bilgisayarınızda çalıştırın. Yerel 9090 portu, bilgisayarınızda zaten çalışan bir Syncthing arayüzüyle çakışmayı önler:
ssh -N -L 9090:127.0.0.1:8384 user@203.0.113.10Komutu çalışır hâlde bırakın ve tarayıcınızda http://localhost:9090 adresini açın. Windows 10 ve sonrası aynı ssh komutunu içerir.
Syncthing, arayüz parolası belirlenmediği konusunda uyarır. Bunu hemen düzeltin; aksi hâlde sunucudaki arayüz portuna erişebilen herkes, diğer yerel kullanıcılar dahil, Syncthing'i yönetebilir:
- Sağ üstteki Actions menüsünü, ardından Settings bölümünü açın.
- General sekmesinde sunucuya tanınabilir bir Device Name verin.
- GUI sekmesinde GUI Authentication User ve uzun bir GUI Authentication Password belirleyin, ardından Save düğmesine tıklayın.
Sayfayı yenileyin; Syncthing artık kullanıcı adı ve parola ister. SSH tüneli bağlantıyı zaten şifrelediği için arayüzde HTTPS'yi açmanız gerekmez.
Adım 6 — Cihazlarınızı bağlayın
Bağlantı kurulabilmesi için her iki cihazın da birbirinin cihaz kimliğini eklemesi gerekir. Cihaz kimlikleri gizli değildir: tek başlarına bağlanmak veya dosya okumak için kullanılamazlar.
- Sunucunun arayüzünde Actions, ardından Show ID seçeneğini açın ve kimliği kopyalayın.
- Dizüstü bilgisayarınızdaki Syncthing arayüzünde Add Remote Device düğmesine tıklayın, sunucunun kimliğini yapıştırın, bir ad verin ve Save düğmesine tıklayın.
- Bir dakika içinde sunucunun arayüzünde yeni cihazın bağlanmak istediğini bildiren bir uyarı görünür. Add Device ve ardından Save düğmesine tıklayın.
Bundan sonra iki taraf da birbirini Connected olarak gösterir. Cihazlar varsayılan olarak birbirlerini genel keşif üzerinden bulur. Sunucunun sabit bir adresi olduğu için dizüstü bilgisayarınızda sunucu cihazını düzenleyip Addresses alanını tcp://203.0.113.10:22000, dynamic olarak da ayarlayabilirsiniz; böylece keşif kullanılamadığında bile doğrudan bağlanır.
Adım 7 — Klasörleri paylaşın
Servisin yazabilmesi için sunucuda syncthing kullanıcısına ait bir klasör oluşturun:
sudo -u syncthing mkdir -p /srv/syncthing/data/documentsArdından dizüstü bilgisayarınızdan bir klasör paylaşın:
- Dizüstü bilgisayarınızda eşitlemek istediğiniz klasörü düzenleyin, Sharing sekmesini açın, sunucuyu işaretleyin ve Save düğmesine tıklayın.
- Sunucunun arayüzü, dizüstü bilgisayarınızın klasörü paylaşmak istediğini gösterir. Add düğmesine tıklayın, Folder Path değerini
/srv/syncthing/data/documentsyapın ve Save düğmesine tıklayın.
İlk eşitleme bittiğinde klasör Scanning durumundan Up to Date durumuna geçer. Her klasörün ayarlarındaki yararlı seçenekler:
- Folder Type:
Send & Receive(varsayılan),Send Only,Receive Onlyveya güvenilmeyen cihazlar içinReceive Encrypted. - File Versioning: eski veya silinmiş sürümleri sunucuda tutar (örneğin Trash Can veya Staggered); bu da sizi başka bir cihazdaki yanlışlıkla yapılan silmelere karşı korur.
Adım 8 — Yok sayma kalıplarıyla dosyaları dışarıda bırakın
Düzenleyici önbellekleri veya bağımlılık klasörleri gibi bazı dosyalar hiç eşitlenmemelidir. Syncthing yok sayma kalıplarını her eşitlenen klasörün kökündeki .stignore dosyasından okur; bu dosyayı arayüzde klasörün Ignore Patterns sekmesinden düzenleyin. Dosyanın kendisi hiçbir zaman eşitlenmez; bu yüzden onu her cihazda ayarlayın. Bir örnek:
// // ile başlayan satırlar yorumdur
(?d).DS_Store
(?d)Thumbs.db
*.tmp
/node_modulesİlk eşleşen kalıp geçerli olur. * tek bir yol parçasının içinde kalırken ** klasörler arasında geçer; baştaki / kalıbı klasör köküne sabitler, ! bir eşleşmeyi yeniden dahil eder ve (?d), bu dosyalar bir klasörün silinmesini engelleyecekse Syncthing'in onları silmesine izin verir.
Yedekleme ve geri yükleme
Eşitlenen dosyalar sizin verinizdir; Syncthing silmeleri de çoğalttığı için onları diğer veriler gibi yedekleyin. Bu sunucuyu bu Syncthing cihazı yapan şey ise yapılandırma klasörüdür:
config.xml: cihazlar, klasörler ve ayarlar,cert.pemvekey.pem: cihaz kimliğini belirleyen anahtar çifti (özel anahtarı gizli tutun),https-cert.pemvehttps-key.pem: arayüz sertifikası,- dizin veritabanı: Syncthing'in yeniden tarayarak oluşturabildiği dosya meta verileri.
Sisteminizdeki yolları doğrulayın:
sudo -u syncthing -H syncthing pathsServisi kısa süreliğine durdurun ve yapılandırma klasörünü, yeniden oluşturulabilen dizin olmadan arşivleyin:
sudo mkdir -p /opt/backups
sudo systemctl stop [email protected]
sudo tar --exclude='index-*' -czf /opt/backups/syncthing-config-$(date +%F).tar.gz -C /srv/syncthing/.local/state syncthing
sudo systemctl start [email protected]Yeni bir sunucuya geri yüklemek için 1–4. adımları tekrarlayın, servisi durdurun, arşivi açın ve dosyaları yeniden syncthing kullanıcısına verin. Anahtarlar aynı olduğu için cihaz kimliği değişmez ve diğer cihazlarınız hiçbir değişiklik yapmadan yeniden bağlanır:
sudo systemctl stop [email protected]
sudo tar -xzf /opt/backups/syncthing-config-2026-10-09.tar.gz -C /srv/syncthing/.local/state
sudo chown -R syncthing:syncthing /srv/syncthing
sudo systemctl start [email protected]Arşivi sunucunun dışına kopyalayın; içinde cihazın özel anahtarı bulunur.
Syncthing güncelleme
apt paketiyle güncellemeler apt üzerinden gelir. Syncthing'in yerleşik otomatik yükseltmesi paketlere değil, syncthing.net'ten indirilen ikili dosyalara uygulanır. Sürüm notlarını okuyun, ardından yükseltin ve yeni sürümün çalışması için servisi yeniden başlatın:
sudo apt update
sudo apt upgrade
sudo systemctl restart [email protected]
syncthing versionYeni bir ana sürüm (1.x'ten 2.x'e geçiş gibi) veritabanı biçimini ve komut satırı seçeneklerini değiştirebilir; önce sürüm notlarındaki taşıma adımlarına bakın.
Sorun giderme
Sunucu Disconnected olarak görünüyor
Her iki cihaz da birbirini eklemiş olmalı ve 22000 numaralı porta erişilebilmelidir. Sunucuda sudo ufw status çıktısını ve sağlayıcınızın kontrol panelindeki güvenlik duvarını kontrol edin; servisin çalıştığını sudo systemctl status [email protected] ile doğrulayın. Diğer cihazlarınızda sunucu adresini tcp://203.0.113.10:22000 olarak ayarlamak, keşfi olası neden olmaktan çıkarır.
Bağlantı türü Relay olarak görünüyor
İki cihaz doğrudan bağlanamadığında Syncthing herkese açık relay sunucularını kullanır. Relay üzerinden geçen veri uçtan uca şifreli kalır, ancak aktarımlar çok daha yavaştır ve relay işletmecisi IP adresinizi ve trafik miktarını görür. 22000 numaralı portu TCP ve UDP için açın ve sabit sunucu adresini yukarıdaki gibi ayarlayın; Syncthing doğrudan bağlantı mümkün olur olmaz ona geçer.
folder marker missing
Syncthing her eşitlenen klasöre bir .stfolder işaretçisi koyar ve işaretçi kaybolduğunda o klasörün eşitlenmesini durdurur; böylece takılı olmayan bir disk silinmiş dosyalar sanılmaz. Klasör yolunun var olduğundan ve bağlı olduğundan emin olun. İşaretçiyi bir temizlik aracı sildiyse klasörü aynı yolla kaldırıp yeniden ekleyin (bu, klasörün eşitleme durumunu sıfırlar).
Klasör yolunda Permission denied hatası
Servis syncthing kullanıcısıyla çalışır; bu nedenle sudo ile veya yönetici kullanıcınızla oluşturduğunuz klasörlere yazamaz. Klasörleri servis kullanıcısına sudo chown -R syncthing:syncthing /srv/syncthing/data komutuyla verin.
Dosya sistemi izleyicisi büyük klasörlerde başarısız oluyor
Linux, kullanıcı başına inotify izleme sayısını sınırlar. Syncthing SSS sayfası bu sınırı 204800'e yükseltir:
echo "fs.inotify.max_user_watches=204800" | sudo tee /etc/sysctl.d/90-inotify-max-user-watches.conf
sudo sysctl --system
sudo systemctl restart [email protected]Sonraki adımlar
- Syncthing'i Nextcloud All-in-One gibi bir paylaşım ve iş birliği platformuyla birlikte kullanın.
- Eşitlenen verilerin yedeklerini kendi S3 depolamanızda tutun.
- Sunucunun özel servislerine WireGuard VPN sunucusu üzerinden erişin.
- Kendiniz çalıştırabileceğiniz diğer uygulamaları self-hosted uygulamalar sayfasında görün.
- Gelişmiş seçenekler için Syncthing belgelerini okuyun.
Sık sorulan sorular
Syncthing sunucusu bir yedek sayılır mı?
Hayır. Syncthing klasörleri aynı tutar; bu yüzden bir cihazdaki silme veya istenmeyen değişiklik diğer tüm cihazlara ulaşır. Sunucuda dosya sürümlemeyi açın ve önemli veriler için ayrıca yedek alın.
Sunucuda web arayüzü portu 8384 açık olmalı mı?
Hayır. Arayüz varsayılan olarak 127.0.0.1:8384 üzerinde dinler ve ona SSH tüneliyle erişirsiniz. İnternete yalnızca TCP ve UDP üzerinden 22000 numaralı eşitleme portunun açık olması gerekir.
Bir VPS'te 21027 numaralı porta ihtiyacım var mı?
Hayır. UDP 21027 yerel ağdaki keşif yayınları için kullanılır. İnternetteki bir sunucu, genel keşif veya tcp://203.0.113.10:22000 gibi sabit bir adres üzerinden bulunur.
Sunucu dosyalarımı okuyamadan saklayabilir mi?
Evet, güvenilmeyen (şifreli) cihaz özelliğiyle: klasörü paylaşırken bir parola belirlersiniz ve sunucu Receive Encrypted klasör türünü kullanır. Syncthing bu özelliği beta olarak tanımlar; güvenmeden önce test edin.
Bu rehber hangi Syncthing sürümünü kurar?
Resmi apt deposunun güncel 2.x sürümlerini taşıyan stable-v2 kanalını. Syncthing 2 dizinini SQLite'ta tutar ve eski bir veritabanını ilk başlatmada taşır; büyük kurulumlarda bu biraz zaman alabilir.
Kaynaklar
- apt.syncthing.net
- docs.syncthing.net/users/autostart.html
- docs.syncthing.net/users/config.html
- docs.syncthing.net/users/firewall.html
- docs.syncthing.net/users/faq.html
- docs.syncthing.net/users/syncthing.html
- docs.syncthing.net/users/ignoring.html
- docs.syncthing.net/users/relaying.html
- docs.syncthing.net/users/untrusted.html
- docs.syncthing.net/intro/getting-started.html
- github.com/syncthing/syncthing/releases/tag/v2.0.0