SSD Nodes Learn 🎉 VPS dari $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-08-13

Syncthing atau Nextcloud untuk VPS: Mana lebih baik?

Ketahui perbezaan utama antara Syncthing yang bersifat peer-to-peer dan Nextcloud yang berasaskan pelayan. Pilih penyelesaian yang tepat untuk VPS anda sebelum tersilap langkah.

Syncthing berbanding Nextcloud: perbezaan yang menjadi penentu

Perbezaan antara Syncthing dan Nextcloud berpunca daripada satu perbezaan struktur, dan segala aspek lain adalah kesan daripadanya. Syncthing bersifat peer-to-peer. Setiap peranti menyimpan keseluruhan folder, dan tiada salinan yang dianggap sebagai salinan induk. Nextcloud pula ialah pelayan. Satu mesin menyimpan fail, akaun pengguna diletakkan di hadapan fail tersebut, dan klien akan menarik salinan fail ke peranti masing-masing.

Itulah sebabnya Syncthing tidak mempunyai pautan perkongsian dan tiada paparan web untuk dokumen anda. Tiada salinan pusat untuk dihidangkan, jadi tiada apa-apa yang boleh diminta oleh pelayar web. Nextcloud menawarkan kedua-duanya, dan untuk melakukannya, ia memerlukan runtime PHP, pelayan pangkalan data, pelayan web dan reverse proxy untuk TLS (transport layer security).

Pilih Syncthing apabila setiap peranti yang terlibat adalah milik anda. Pilih Nextcloud apabila pelayar web atau orang lain perlu mengakses fail tersebut.

Tugas sebenar VPS dalam setiap reka bentuk

VPS yang menjalankan Nextcloud merupakan tempat simpanan data anda. Padamkan salinan setempat pada komputer riba anda dan fail tersebut masih kekal di pelayan, kerana pelayan sentiasa menjadi sumber asal.

VPS yang menjalankan Syncthing melakukan tugas yang berbeza: ia bertindak sebagai peer yang sentiasa aktif. Syncthing memindahkan data secara terus antara dua peranti yang berada dalam talian pada masa yang sama. Oleh itu, dua komputer riba yang tidak pernah dihidupkan serentak tidak akan dapat melakukan penyelarasan, tidak kira berapa lama anda menunggu. Tambahkan peer ketiga pada VPS yang tidak pernah dimatikan dan masalah tersebut akan selesai. Komputer riba A menghantar data pada pukul 09:00, komputer riba B mengambil data pada pukul 22:00, dan VPS menyimpan folder tersebut di antara kedua-dua masa itu.

Ini merupakan peranan yang benar-benar berguna, dan ia adalah tuntutan yang lebih kecil daripada "pengganti Dropbox". Syncthing tidak akan memberikan anda pautan untuk dihantar kepada pelanggan. Jika itu keperluan anda, berhenti di sini dan baca senarai alternatif Dropbox yang dihoskan sendiri sebaliknya.

Kos setiap satu pada VPS kecil

Syncthing ialah satu binari Go tunggal. Ia mendengar pada soket, menyimpan indeks fail anda dalam pangkalan data tempatan, dan itulah keseluruhan tindanan (stack) tersebut. Sejak versi 2.0, indeks tersebut menggunakan SQLite dan bukannya LevelDB, jadi menaik taraf daripada pemasangan 1.x akan menjalankan migrasi sekali sahaja pada pelancaran pertama. Pada set folder yang besar, migrasi itu boleh mengambil masa yang lama. Biarkan ia selesai. Tiada perisian lain perlu dipasang, dan tiada perisian lain perlu ditampal (patch).

Nextcloud memerlukan lebih banyak sumber. Setakat Ogos 2026, Nextcloud 35 menyokong PHP 8.3 hingga 8.5 dengan MariaDB atau PostgreSQL di belakangnya, dihidangkan oleh Apache 2.4 atau nginx dengan php-fpm. Manual pentadbir mengesyorkan "minimum 512MB RAM bagi setiap proses", dan php-fpm menjalankan beberapa proses pekerja (worker processes) serentak.

Pada VPS 1 GB, Syncthing berjalan dengan selesa manakala Nextcloud agak terhad. Ini tidak bermakna Nextcloud adalah pilihan yang salah. Ia bermakna ia memerlukan komitmen yang lebih besar, dengan empat komponen yang perlu dikemas kini berbanding hanya satu. Laluan kontena dalam panduan Nextcloud pada VPS yang merangkumi Docker, TLS dan sandaran ialah cara paling mudah untuk mengurus beban tersebut. Menambah penyuntingan dokumen berasaskan pelayar di atasnya akan meningkatkan keperluan sumber tersebut sekali lagi, yang merupakan perkara yang dibincangkan dalam perbandingan OnlyOffice dan Collabora untuk pelayan bersaiz 2 hingga 4 GB.

Memasang Syncthing pada VPS

Ubuntu menyediakan pakej syncthing, namun versinya jauh ketinggalan berbanding versi hulu (upstream). Gunakan repositori rasmi projek tersebut.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
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
sudo apt-get update
sudo apt-get install syncthing
syncthing --version

syncthing --version sepatutnya memaparkan baris yang bermula dengan syncthing v2. Jika v1 muncul, ini bermakna apt masih mengutamakan pakej daripada pengedaran. Tetapkan keutamaan (pin) repositori hulu tersebut dan pasang semula.

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

Jalankan ia sebagai servis sistem di bawah akaun pengguna biasa supaya ia bermula semasa but walaupun tiada sesi pengguna yang log masuk.

sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.service

systemctl status sepatutnya memaparkan active (running). Fail konfigurasi dan indeks disimpan dalam /home/youruser/.local/state/syncthing, manakala fail konfigurasi utama ialah config.xml. Pemasangan yang dibuat sebelum Syncthing 1.27 mengekalkannya dalam ~/.config/syncthing, jadi periksa kedua-dua laluan sebelum anda menyalin apa-apa antara mesin.

Kemudian, buka port yang diperlukan. Syncthing menggunakan 22000/TCP untuk protokol penyelarasan, 22000/UDP untuk pengangkutan QUIC, dan 21027/UDP untuk penemuan setempat (local discovery). Penemuan menggunakan siaran (broadcast) dan multicast yang tidak merentasi internet, jadi pada VPS anda hanya memerlukan dua port yang pertama.

sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status

ufw status sepatutnya menyenaraikan kedua-dua peraturan tersebut. Jika ia memaparkan Status: inactive, ufw tidak menapis apa-apa dan firewall rangkaian pembekal anda adalah satu-satunya kawalan yang aktif. Periksa panel kawalan pembekal tersebut juga, kerana ia merupakan kawalan berasingan pada kebanyakan hos. Peranti jauh yang terhenti pada status Disconnected semasa servis sedang berjalan biasanya bermaksud salah satu daripada dua firewall tersebut masih tertutup.

Capai GUI Syncthing tanpa mendedahkannya kepada umum

GUI (antara muka grafik) web mendengar pada 127.0.0.1:8384 secara lalai, jadi ia hanya menjawab permintaan daripada pelayan itu sendiri. Lalai tersebut adalah bersifat melindungi, kerana GUI membawa kunci API (antara muka pengaturcaraan aplikasi) yang boleh menulis semula setiap laluan folder pada mesin tersebut.

Jangan buka akses kepada dunia luar sebagai langkah pertama. Dokumentasi menyatakan dengan jelas tentang kesan mengikat (binding) kepada alamat rangkaian: "menentukan alamat LAN komputer anda TIDAK akan mengehadkan akses hanya kepada peranti dalam rangkaian tempatan anda!" Sebaliknya, lakukan port forwarding melalui SSH dari komputer riba anda.

ssh -L 8384:127.0.0.1:8384 youruser@your.vps.example

Buka http://127.0.0.1:8384 dalam pelayar tempatan anda semasa sesi tersebut aktif. Terowong akan ditutup apabila sesi SSH tamat, jadi tiada apa yang akan terus mendengar selepas itu.

Jika anda benar-benar perlu mencapai GUI secara terus, tetapkan kelayakan (credentials) terlebih dahulu. Tiada pelayar pada pelayan, jadi lakukan dari baris perintah.

sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service

-H adalah penting, kerana tanpanya sudo akan mengekalkan direktori rumah root dan anda akan menyunting config.xml yang salah. Tanda sengkang tunggal sebagai nilai kata laluan menyebabkan syncthing generate membaca kata laluan daripada input standard, yang menghalangnya daripada tersimpan dalam sejarah shell anda, dan nilai tersebut akan di-hash sebelum ditulis ke dalam fail. Hidupkan HTTPS dalam tetapan GUI sebaik sahaja anda boleh log masuk.

Mengapa Syncthing menyebarkan kesilapan anda

FAQ Syncthing menjawab sendiri persoalan sandaran: "Syncthing bukanlah aplikasi sandaran yang baik kerana semua perubahan pada fail anda (pengubahsuaian, pemadaman, dan sebagainya) akan disebarkan ke semua peranti anda."

Jika anda memadam folder secara tidak sengaja pada komputer riba, Syncthing berfungsi tepat seperti yang direka bentuk. Ia memadam folder tersebut di mana-mana sahaja dalam beberapa saat. Penyegerakan bermaksud persetujuan, dan persetujuan termasuklah bersetuju bahawa sesuatu fail telah tiada.

Versioning fail adalah langkah mitigasi, dan ia dimatikan melainkan anda mengaktifkannya. Dokumentasi menyatakan bahawa versioning "ditetapkan secara lalai kepada 'no file versioning', iaitu tiada salinan lama fail disimpan." Empat strategi tersedia bagi setiap folder. Trash Can menyimpan satu salinan bagi setiap fail yang dipadam atau diganti akibat perubahan jauh. Simple menyimpan bilangan versi lama yang ditetapkan bagi setiap fail. Staggered menipiskan sejarah mengikut usia, menyimpan salinan setiap jam untuk sehari, salinan harian untuk sebulan, dan seterusnya. External menyerahkan setiap keputusan kepada arahan yang anda tulis. Salinan lama masuk ke dalam direktori .stversions di dalam folder yang dikongsi.

Tetapkan Staggered pada peer VPS dan biarkan komputer riba dengan versioning dimatikan. Peer yang sentiasa hidup itu kemudiannya membawa sejarah tersebut, dan komputer riba kekal ringan.

Nextcloud mengendalikan perkara ini dengan lebih baik namun ia tetap bukan sandaran. Fail yang dipadam masuk ke dalam tong sampah dan suntingan disimpan oleh aplikasi Versions, tetapi kedua-duanya akan dikurangkan secara automatik apabila cakera penuh. Proses pada komputer riba anda yang menyulitkan fail akan menyegerakkan versi yang disulitkan itu ke atas, dan salinan asal akan luput mengikut jadualnya sendiri.

Kedua-dua alat ini memerlukan sandaran sebenar di bawahnya: snapshot yang diambil oleh program berasingan, ditulis di tempat yang tidak boleh dicapai oleh klien penyegerakan, dan dipulihkan sekurang-kurangnya sekali supaya anda tahu proses pemulihan itu berfungsi. Perbandingan restic dan BorgBackup merangkumi alat mana yang perlu dihalakan ke direktori data.

Perbezaan konflik antara kedua-dua alat

Kedua-dua alat menghasilkan fail konflik apabila kedua-dua pihak mengubah fail yang sama antara penyelarasan. Perbezaannya ialah siapa yang melihat fail tersebut.

Syncthing menamakan semula salinan yang kalah kepada <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>. Salinan dengan masa pengubahsuaian yang lebih lama akan kalah. Apabila masa adalah sama, peranti dengan nilai yang lebih besar dalam 63 bit pertama ID perantinya akan kalah, yang mana ia adalah arbitrari tetapi memberikan hasil yang sama pada setiap peer. Kemudian datang bahagian yang tidak dijangkakan oleh pengguna: fail tersebut "dianggap sebagai fail biasa selepas ia dicipta, jadi ia disebarkan antara peranti". Setiap peer menerima salinan konflik tersebut. Pembersihan dilakukan dengan satu pemadaman yang diselaraskan, tetapi anda akan melihatnya pada semua mesin anda terlebih dahulu.

Pelanggan desktop Nextcloud menulis <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>, contohnya mydata (conflicted copy 2018-04-10 093612).txt, dan secara lalai ia tidak memuat naik fail tersebut. Manual pelanggan memberikan sebabnya: penulis perubahan adalah orang yang paling sesuai untuk menyelesaikannya, dan menunjukkan konflik kepada pengguna lain hanya akan menimbulkan kekeliruan. Tetapkan OWNCLOUD_UPLOAD_CONFLICT_FILES=1 dalam persekitaran pelanggan jika anda mahukan tingkah laku yang sebaliknya.

Oleh itu, konflik Syncthing adalah peristiwa di seluruh kluster, manakala konflik Nextcloud kekal pada satu desktop sahaja.

Jenis folder menjadikan Syncthing lebih selamat pada pelayan

Syncthing mempunyai tiga jenis folder, dan pemilihan jenis yang tepat pada VPS akan menghapuskan risiko kesilapan yang tidak diingini.

  • Send & Receive ialah tetapan lalai. Perubahan akan diselaraskan dalam kedua-dua arah.
  • Send Only mengabaikan semua perubahan yang dihantar oleh kluster. Gunakan tetapan ini pada peranti yang hanya berfungsi untuk menerbitkan data. Apabila peranti tidak lagi selari, GUI akan memaparkan butang merah "Override Changes" yang akan memaksa status tempatan kepada semua peranti lain.
  • Receive Only menerima perubahan daripada kluster dan tidak akan menghantar semula sebarang suntingan tempatan. Gunakan tetapan ini pada VPS yang berfungsi sebagai arkib. Sebarang suntingan tempatan di situ akan memaparkan butang merah "Revert Local Changes".

Folder jenis Receive Only pada VPS dengan ciri Staggered versioning yang diaktifkan akan memberikan anda cermin yang mempunyai versi. Pemadaman fail pada komputer riba akan tetap diselaraskan kerana pemadaman dianggap sebagai perubahan kluster yang sah, namun salinan lama akan disimpan dalam .stversions dan bukannya hilang terus.

Yang mana satu patut anda pilih

7 baris di bawah merangkumi sebab sebenar orang ramai bertanyakan soalan ini.

ChartWhich tool fits which job
The data behind this chart
[
  {
    "label": "Keep two of my own laptops in sync",
    "pick": "Syncthing",
    "notes": "No accounts to manage. The VPS is the peer that is always awake."
  },
  {
    "label": "Send a download link to a client",
    "pick": "Nextcloud",
    "notes": "Syncthing has no public link sharing at all."
  },
  {
    "label": "Open a file from a borrowed browser",
    "pick": "Nextcloud",
    "notes": "The Syncthing GUI shows sync state, never file contents."
  },
  {
    "label": "Sync 200 GB between machines I own",
    "pick": "Syncthing",
    "notes": "Peers transfer directly. The VPS copy is optional."
  },
  {
    "label": "Phone photo upload with a store app",
    "pick": "Nextcloud",
    "notes": "The official Syncthing Android app ended in December 2024."
  },
  {
    "label": "Calendar and contacts alongside files",
    "pick": "Nextcloud",
    "notes": "Syncthing syncs files. That is the entire feature set."
  },
  {
    "label": "1 GB VPS with nothing else to spare",
    "pick": "Syncthing",
    "notes": "One Go binary against PHP plus a database plus a web server."
  }
]

Lihat baris pertama. Menyegerakkan dua komputer riba milik sendiri menjurus kepada Syncthing, dan inilah situasi di mana VPS sangat berguna sebagai rakan setara (peer) yang sentiasa aktif. Setiap baris yang melibatkan pelayar, pautan atau orang lain menjurus kepada pilihan yang satu lagi.

Jika Nextcloud terus menjadi pilihan tetapi saiz jejaknya membimbangkan anda, perbandingan Seafile dan Nextcloud adalah perkara seterusnya yang perlu dibaca, kerana Seafile mengekalkan model pelayan dengan enjin penyegerakan yang berbeza di bawahnya.

Menjalankan kedua-duanya pada satu VPS

Kedua-duanya tidak eksklusif. Menggunakan Syncthing untuk memindahkan fail antara mesin anda sendiri sementara Nextcloud mengendalikan perkongsian dan kalendar merupakan aturan yang lazim.

Satu peraturan jika anda melakukannya: jangan sekali-kali menghalakan Syncthing ke direktori data Nextcloud. Nextcloud menjejaki setiap fail dalam pangkalan datanya, jadi fail yang muncul pada cakera dari luar akan kekal tidak kelihatan dalam antara muka web sehingga pangkalan data dikemas kini. Dari direktori pemasangan Nextcloud:

sudo -u www-data php occ files:scan --all

Perintah tersebut mencetak bilangan fail dan folder yang diimbasnya. Menjalankannya mengikut pemasa hanyalah penyelesaian sementara, bukan reka bentuk yang betul. Berikan setiap alat direktori sendiri. Jika anda masih membuat keputusan tentang apa yang patut diletakkan pada pelayan tersebut, panduan tentang perkara untuk di-self-host pada tahun 2026 adalah titik permulaan yang lebih baik daripada memilih alat penyelarasan terlebih dahulu.

FAQ

Bolehkah Syncthing menggantikan Dropbox?

Hanya untuk bahagian penyelarasan peranti anda sendiri. Syncthing tidak mempunyai pautan perkongsian awam dan tiada akaun pengguna. Antara muka webnya tidak pernah memaparkan kandungan fail kerana tiada salinan pusat untuk diminta oleh pelayar. Aplikasi Android rasmi telah dihentikan selepas keluarannya pada Disember 2024 dan telah tiada di Play Store, jadi sokongan telefon kini bergantung kepada fork komuniti. Jika anda perlu menghantar pautan kepada seseorang, anda memerlukan pelayan, yang bermaksud Nextcloud atau perisian seumpamanya.

Adakah Syncthing merupakan sandaran (backup)?

Tidak, dan pihak projek menyatakan perkara ini secara langsung. Pemadaman dan pengubahsuaian akan disebarkan ke setiap peranti, jadi pemadaman tidak sengaja akan hilang di mana-mana dalam beberapa saat. Mengaktifkan versioning fail bagi setiap folder, terutamanya Staggered pada peer yang sentiasa aktif, memberikan anda tetingkap pemulihan melalui direktori .stversions. Ia bukan pengganti kepada snapshot yang diambil oleh alat berasingan ke storan berasingan.

Mengapa saya tidak dapat melihat fail saya dalam GUI web Syncthing?

Kerana GUI tersebut adalah panel kawalan untuk status penyelarasan, bukan pelayar fail. Ia memaparkan folder, peranti, kemajuan pemindahan dan jumlah konflik, serta tidak pernah menyenaraikan atau membuka kandungan fail. Ini adalah hasil daripada reka bentuk peer-to-peer: fail anda berada pada peranti anda, dan GUI pada VPS hanya menguruskan proses pemindahannya.

Apakah port yang perlu dibuka oleh Syncthing pada VPS?

22000/TCP untuk protokol penyelarasan dan 22000/UDP untuk pengangkutan QUIC. Port 21027/UDP membawa penemuan tempatan melalui broadcast dan multicast, yang tidak merentasi internet, jadi biarkan ia tertutup pada pelayan awam. Biarkan GUI pada 8384 terikat pada 127.0.0.1 dan aksesnya melalui SSH tunnel. Periksa firewall rangkaian pembekal anda serta ufw, kerana ia merupakan kawalan yang berasingan.

Bolehkah saya menjalankan Syncthing dan Nextcloud pada VPS yang sama?

Boleh, dan ia munasabah pada mesin dengan RAM 2 GB atau lebih. Pastikan direktori kedua-duanya berasingan. Nextcloud mengindeks fail dalam pangkalan datanya, jadi apa-apa yang ditulis oleh Syncthing ke dalam storan Nextcloud akan kekal tidak kelihatan dalam antara muka web sehingga occ files:scan dijalankan. Dua alat yang menulis ke direktori yang sama juga akan menghasilkan fail konflik yang tidak dijangka oleh mana-mana alat tersebut.