# 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.

Zorluk: Başlangıç\
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13

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.
- `sudo` yetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı: [Yeni bir Linux sunucusunu güvenli hale getirin](/guides/secure-a-new-linux-server) ve [SSH anahtarlarını ayarlayın](/guides/ssh-keys) 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:

```bash
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.gpg
```

Kararlı 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:

```bash
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.pref
```

Sü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

```bash
sudo apt update
sudo apt install syncthing
apt-cache policy syncthing
syncthing version
```

`apt-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** `syncthing@USER.service` 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:

```bash
sudo useradd --system --create-home --home-dir /srv/syncthing --shell /usr/sbin/nologin syncthing
sudo systemctl enable --now syncthing@syncthing.service
sudo systemctl status syncthing@syncthing.service --no-pager
sudo ss -tulpn | grep syncthing
```

Servis `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:

```bash
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status verbose
```

8384'ü 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:

```bash
ssh -N -L 9090:127.0.0.1:8384 user@203.0.113.10
```

Komutu ç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:

1. Sağ üstteki **Actions** menüsünü, ardından **Settings** bölümünü açın.
2. **General** sekmesinde sunucuya tanınabilir bir **Device Name** verin.
3. **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.

1. Sunucunun arayüzünde **Actions**, ardından **Show ID** seçeneğini açın ve kimliği kopyalayın.
2. 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.
3. 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:

```bash
sudo -u syncthing mkdir -p /srv/syncthing/data/documents
```

Ardından dizüstü bilgisayarınızdan bir klasör paylaşın:

1. 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.
2. 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/documents` yapı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 Only` veya güvenilmeyen cihazlar için `Receive 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.

> **İpucu**
>
> Sunucunun dosyalarınızı görmesini istemiyorsanız klasörü güvendiğiniz cihazda bir şifreleme parolasıyla paylaşın ve sunucuda **Receive Encrypted** türünü seçin. Sunucu bu durumda yalnızca şifreli veri saklar. Syncthing bu güvenilmeyen cihaz özelliğini beta olarak işaretler.

## 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:

```text
// // 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.pem` ve `key.pem`: cihaz kimliğini belirleyen anahtar çifti (özel anahtarı gizli tutun),
- `https-cert.pem` ve `https-key.pem`: arayüz sertifikası,
- dizin veritabanı: Syncthing'in yeniden tarayarak oluşturabildiği dosya meta verileri.

Sisteminizdeki yolları doğrulayın:

```bash
sudo -u syncthing -H syncthing paths
```

Servisi kısa süreliğine durdurun ve yapılandırma klasörünü, yeniden oluşturulabilen dizin olmadan arşivleyin:

```bash
sudo mkdir -p /opt/backups
sudo systemctl stop syncthing@syncthing.service
sudo tar --exclude='index-*' -czf /opt/backups/syncthing-config-$(date +%F).tar.gz -C /srv/syncthing/.local/state syncthing
sudo systemctl start syncthing@syncthing.service
```

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:

```bash
sudo systemctl stop syncthing@syncthing.service
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 syncthing@syncthing.service
```

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ı](https://github.com/syncthing/syncthing/releases) okuyun, ardından yükseltin ve yeni sürümün çalışması için servisi yeniden başlatın:

```bash
sudo apt update
sudo apt upgrade
sudo systemctl restart syncthing@syncthing.service
syncthing version
```

Yeni 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 syncthing@syncthing.service` 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:

```bash
echo "fs.inotify.max_user_watches=204800" | sudo tee /etc/sysctl.d/90-inotify-max-user-watches.conf
sudo sysctl --system
sudo systemctl restart syncthing@syncthing.service
```

## Sonraki adımlar

- Syncthing'i [Nextcloud All-in-One](/guides/install-nextcloud-aio) gibi bir paylaşım ve iş birliği platformuyla birlikte kullanın.
- Eşitlenen verilerin yedeklerini [kendi S3 depolamanızda](/guides/self-hosted-s3-storage) tutun.
- Sunucunun özel servislerine [WireGuard VPN sunucusu](/guides/wireguard-vpn-server) üzerinden erişin.
- Kendiniz çalıştırabileceğiniz diğer uygulamaları [self-hosted uygulamalar](/self-hosted-apps) sayfasında görün.
- Gelişmiş seçenekler için [Syncthing belgelerini](https://docs.syncthing.net/) 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.

---

Kaynak: <https://hyperdc.com/tr/guides/tutorials/install-syncthing>\
Son güncelleme: 2026-10-09
