GNU/Linux >> Belajar Linux >  >> Linux

Sinkronisasi File Antara Beberapa Sistem Dengan Syncthing

Dalam tutorial langkah demi langkah ini, kita akan mempelajari apa itu Sinkronisasi , cara menginstal Syncthing di Linux, cara menyinkronkan file antara beberapa sistem dengan Syncthing secara real time, dan terakhir cara memecahkan masalah umum Syncthing.

1. Pengantar Sinkronisasi

Syncthing adalah program sinkronisasi file peer-to-peer (P2P) gratis, opensource, yang memungkinkan Anda menyinkronkan file dengan aman antara dua perangkat atau lebih dalam LAN atau perangkat jarak jauh melalui Internet.

Perangkat tersebut dapat berupa sistem desktop, server, atau ponsel. Perubahan yang dibuat di satu perangkat (yaitu pembuatan, modifikasi, dan penghapusan file, dll.) akan secara otomatis direplikasi ke perangkat lain.

Menyinkronkan tidak memerlukan konfigurasi apa pun! Ini hanya bekerja di luar kotak. Setiap perangkat diidentifikasi dengan ID . Cukup berikan ID perangkat untuk bertukar file.

Karena ini adalah program sinkronisasi file P2P, data Anda tidak akan diunggah ke cloud publik atau server pusat mana pun. Syncthing hanya bertukar data antar perangkat Anda saat mereka online pada waktu yang sama.

Syncthing adalah aplikasi platform-independen, sehingga Anda dapat menyinkronkan file antara beberapa komputer yang berjalan dengan OS yang sama atau berbeda, atau menyinkronkan file antara komputer dan perangkat seluler dan sebaliknya. Dimungkinkan juga untuk menyinkronkan satu folder ke beberapa lokasi di perangkat yang berbeda.

Alat sinkronisasi file sinkronisasi ditulis dalam Go bahasa pemrograman. Ia bekerja di bawah GNU/Linux, Mac OS, Solaris dan beberapa versi BSD.

Ada juga aplikasi Android Syncthing resmi yang tersedia bagi mereka yang ingin menyinkronkan file antara perangkat seluler dan komputer.

Perhatian: Harap perhatikan bahwa Sinkronisasi tidak mendukung sinkronisasi lokal . Artinya - Anda tidak dapat menyinkronkan file antar folder pada sistem yang sama. Jika Anda ingin melakukan sinkronisasi lokal, pertimbangkan untuk menggunakan rsync atau serempak .

1.1. Bagaimana Sinkronisasi bekerja?

Syncthing membagi file menjadi beberapa bagian yang disebut Blok dan mentransfernya dari satu perangkat ke perangkat lainnya. Oleh karena itu, beberapa perangkat dapat berbagi beban sinkronisasi, mirip dengan protokol torrent. Jadi, kecepatan transfer data biasanya cepat. Semakin banyak perangkat yang Anda miliki online, semakin cepat kecepatan transfer datanya.

Jika konten file diubah secara bersamaan dan berbeda pada perangkat lokal dan jarak jauh, itu menyebabkan konflik. Syncthing menangani konflik file secara efisien dengan mengganti nama salah satu file menjadi <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> .

Biasanya, file dengan waktu modifikasi yang lebih lama akan ditandai sebagai file yang bertentangan dan kemudian akan diganti namanya. Jika waktu modifikasinya sama, file yang berasal dari perangkat yang memiliki nilai lebih besar dari 63 bit pertama untuk device ID-nya akan ditandai sebagai file yang bertentangan.

Jika konflik antara modifikasi dan penghapusan file, file yang dimodifikasi akan dipulihkan tanpa mengganti nama pada perangkat tempat file dihapus.

Hal penting lainnya tentang Syncthing adalah tidak pernah menulis langsung ke file tujuan. Itu membuat salinan data sementara sebelum menimpa versi lama. Setelah transfer file selesai dengan sukses, file-file sementara akan dihapus.

Jika ada kesalahan selama sinkronisasi file, file sementara disimpan selama 24 jam secara default. Anda tentu saja dapat mengubah pengaturan ini sesuai keinginan Anda. File sementara diberi nama .syncthing.original-filename.ext.tmp dan mereka disembunyikan secara default.

Seperti yang sudah dinyatakan, Syncthing langsung mentransfer file antara dua perangkat. Jika tidak memungkinkan untuk membuat koneksi langsung antara kedua perangkat, Syncthing menghubungkannya melalui relay .

Koneksi yang direlai dienkripsi menggunakan TLS metode enkripsi untuk mentransfer data antar perangkat dengan aman. Ini menggunakan protokol gratisnya sendiri, bernama Block Exchange Protocol untuk menjalin komunikasi dengan semua perangkat.

2. Fitur sinkronisasi

Fitur inti dari Syncthing diberikan di bawah ini:

  • Pribadi - Data tidak pernah direplikasi di tempat lain selain di perangkat yang dikonfigurasi.
  • Aman - Semua komunikasi antar perangkat dienkripsi dengan TLS.
  • Otentikasi - Setiap perangkat diidentifikasi dengan ID perangkat unik. ID perangkat digunakan untuk resolusi alamat, otentikasi dan otorisasi. Hanya perangkat yang Anda izinkan secara eksplisit yang dapat terhubung ke cluster Anda.
  • Transparansi - Syncthing adalah proyek sumber terbuka. Jadi, siapa pun dapat memeriksa kodenya dan memahami cara Syncthing menemukan perangkat aktif lain untuk disinkronkan, cara mentransfer data dari simpul ke simpul, dan cara menyinkronkan data antar perangkat berbeda.
  • Biaya - Syncthing adalah aplikasi berbagi file terdesentralisasi tanpa awan. Tidak ada server pusat atau layanan cloud yang harus dibayar. Jadi, ini benar-benar gratis!
  • Batasan - Tidak ada batasan. Anda dapat berbagi file dalam jumlah tak terbatas dengan ukuran berapa pun selama Anda memiliki cukup ruang disk kosong di perangkat Anda.
  • Cross-platform dan portabel - Syncthing adalah platform-agnostik. Ia bekerja pada banyak sistem operasi, termasuk Linux, Windows, Solaris, BSD dan Android.

3. Instal Syncthing Di Linux

Anda harus menginstal Syncthing di semua sistem yang ingin Anda sinkronkan.

Syncthing dikemas untuk banyak distribusi Linux dan tersedia di repositori resmi.

Untuk menginstal Syncthing di Linux Arch dan variannya seperti EndeavourOS dan Manjaro Linux, jalankan:

$ sudo pacman -S syncthing

Di Debian, Ubuntu:

$ sudo apt install syncthing

Harap dicatat bahwa di Ubuntu, Anda harus mengaktifkan [universe] repositori untuk menginstal Syncthing.

Pada RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 dan versi yang lebih baru:

Aktifkan [EPEL] penyimpanan:

$ sudo dnf install epel-release

Dan kemudian instal sinkronisasi menggunakan perintah berikut:

$ sudo dnf install syncthing

Pada edisi CentOS 7 dan 6, Anda dapat menginstal Syncthing dari binari yang telah dikompilasi sebelumnya seperti yang dijelaskan di bagian berikutnya.

openSUSE:

$ sudo zypper install syncthing

3.1. Instal Syncthing dari binari

Jika Syncthing tidak tersedia di repositori default, Anda dapat mengunduh binari yang telah dikompilasi sebelumnya dari laman rilis , dan pindahkan ke $PATH . Anda seperti yang ditunjukkan di bawah ini.

$ wget https://github.com/syncthing/syncthing/releases/download/v1.11.1/syncthing-linux-amd64-v1.11.1.tar.gz

Ekstrak:

$ tar xvf syncthing-linux-amd64-v1.11.1.tar.gz

Dan pindahkan ke $PATH , misalnya /usr/local/bin/ .

$ sudo cp syncthing-linux-amd64-v1.11.1/syncthing /usr/local/bin/

Untuk memeriksa apakah sudah terpasang dengan benar, coba tampilkan versinya menggunakan perintah:

$ syncthing --version

Jika Anda melihat output seperti di bawah ini, selamat! Anda telah berhasil menginstal Syncthing!!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected] 2020-11-03 11:29:54 UTC

3.2. Instal klien syncthing-gtk

Syncthing juga memiliki antarmuka pengguna grafis bernama syncthing-gtk . Jika Anda menginginkan pemberitahuan desktop, dan integrasi dengan pengelola file Anda seperti Nautilus, Nemo, Caja, instal antarmuka grafis GTK sinkronisasi.

Syncthing-gtk tersedia di repositori resmi, sehingga Anda dapat menginstalnya menggunakan manajer paket default distribusi Linux Anda juga. Misalnya, untuk menginstal syncthing-gtk pada sistem berbasis Debian, jalankan:

$ sudo apt install syncthing-gtk

Jika Syncthing-gtk tidak tersedia di repositori resmi, dapatkan aplikasi flatpak sebagai gantinya. Pastikan Anda telah menginstal flatpak di mesin Linux Anda dan kemudian jalankan perintah berikut untuk menginstal syncthing-gtk:

$ flatpak install flathub me.kozec.syncthingtk

4. Inisialisasi Sinkronisasi di semua perangkat

Untuk tujuan panduan ini, saya akan menggunakan dua sistem berikut.

Sistem1:

Operating system   - Ubuntu 20.04 LTS desktop system
Hostname           - ostechnix
IP Address         - 192.168.225.37/24

Sistem2:

Operating system   - Fedora 32 silverblue desktop
Hostname           - toolbox
IP Address         - 192.168.225.46/24

Anda harus melakukan langkah-langkah berikut pada semua sistem yang ingin Anda sinkronkan.

Buka Terminal Anda dan jalankan Syncthing untuk menginisialisasinya:

$ syncthing

Jika Syncthing diinstal menggunakan flatpak, luncurkan dengan menjalankan perintah ini:

$ flatpak run me.kozec.syncthingtk

Saat Anda menjalankan Syncthing untuk pertama kalinya, itu akan menghasilkan kunci yang diperlukan, membuat file konfigurasi default dan menyiapkan folder sinkronisasi default bernama "Sync" di $HOME . Anda direktori.

Berikut adalah contoh keluaran dari sistem desktop Ubuntu saya saat menginisialisasi Syncthing pertama kali:

[monitor] 17:23:06 INFO: Starting syncthing
[start] 17:23:06 INFO: Generating ECDSA key and certificate for syncthing...
[R7FIO] 17:23:06 INFO: syncthing unknown-dev "Erbium Earthworm" (go1.13.5 linux-amd64) [email protected] 1970-01-01 00:00:00 UTC
[R7FIO] 17:23:06 INFO: My ID: R7FIOSA-3ZO6FLJ-LFBAVWM-LUEDOR2-RPDXXH7-4P2HFWX-QCWBN4D-ENEGIAY
[R7FIO] 17:23:07 INFO: Single thread SHA256 performance is 118 MB/s using minio/sha256-simd (88 MB/s using crypto/sha256).
[R7FIO] 17:23:07 INFO: Default folder created and/or linked to new config
[R7FIO] 17:23:07 INFO: Default config saved. Edit /home/sk/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[R7FIO] 17:23:07 INFO: Hashing performance is 103.85 MB/s
[R7FIO] 17:23:07 INFO: Starting deadlock detector with 20m0s timeout
[R7FIO] 17:23:07 INFO: No stored folder metadata for "default": recalculating
[R7FIO] 17:23:07 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[R7FIO] 17:23:07 INFO: Overall send rate is unlimited, receive rate is unlimited
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: TCP listener ([::]:22000) starting
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[R7FIO] 17:23:08 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[R7FIO] 17:23:08 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
[R7FIO] 17:23:08 INFO: Creating new HTTPS certificate
[R7FIO] 17:23:08 INFO: GUI and API listening on 127.0.0.1:8384
[R7FIO] 17:23:08 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[R7FIO] 17:23:08 INFO: My name is "ostechnix"
[R7FIO] 17:23:18 INFO: Detected 0 NAT services
[R7FIO] 17:24:42 INFO: Joined relay relay://210.23.25.77:22067

Setelah inisialisasi selesai, GUI web Syncthing akan terbuka secara otomatis di browser default Anda:

Seperti yang Anda lihat pada tangkapan layar di atas, antarmuka web Syncthing sangat mudah dipahami dan digunakan. Sebagian besar opsi cukup jelas.

Antarmuka web memiliki tiga bagian yaitu,

  1. Folder,
  2. Perangkat Ini,
  3. dan Perangkat Jarak Jauh.

"Folder" bagian menunjukkan daftar folder bersama. Secara default, direktori bersama default ~/Sync tercantum di sini.

Di "Perangkat Ini" Di bagian ini, Anda akan menemukan detail seperti nama komputer, kecepatan unduh/unggah, penggunaan RAM/CPU, total waktu aktif, dan beberapa lainnya.

Di bawah bagian "Perangkat", ada bagian lain bernama "Perangkat Jarak Jauh" bagian tempat Anda dapat menambahkan semua perangkat jarak jauh untuk disinkronkan. Karena kami belum menambahkan perangkat apa pun, tampilannya kosong.

Di bagian atas antarmuka web Syncthing, Anda dapat memilih bahasa yang diinginkan, membuka bagian bantuan, dan melakukan berbagai tugas administratif di bawah Tindakan tab.

Daftar hal-hal yang dapat Anda konfigurasikan dari tab "Tindakan" diberikan di bawah ini:

  • ganti nama perangkat,
  • buat kunci API,
  • ruang disk kosong minimum yang diperlukan di direktori $HOME,
  • mengaktifkan atau menonaktifkan laporan penggunaan anonim ,
  • ubah jalur folder default,
  • ubah alamat pendengar GUI,
  • mengatur nama pengguna dan sandi admin GUI,
  • aktifkan HTTPS,
  • mengatur batas tarif masuk dan keluar,
  • tambahkan perangkat atau folder untuk diabaikan dari sinkronisasi,
  • dan banyak lagi.

Sebagian besar opsi di tab Tindakan tidak boleh disentuh. Konfigurasi default saja sudah cukup. Jika Anda terbiasa dengan semua opsi, ubah sesuai keinginan Anda.

Sekarang, buka sistem lain dan inisialisasi Syncthing untuk menghasilkan file konfigurasi yang diperlukan dan membuat folder sinkronisasi default.

Anda dapat melihat jalur sinkronisasi yang saat ini dikonfigurasi menggunakan perintah:

$ syncthing --paths

Contoh keluaran:

Configuration file:
	/home/sk/.config/syncthing/config.xml

Database directory:
	/home/sk/.config/syncthing/index-v0.14.0.db

Device private key & certificate files:
	/home/sk/.config/syncthing/key.pem
	/home/sk/.config/syncthing/cert.pem

HTTPS private key & certificate files:
	/home/sk/.config/syncthing/https-key.pem
	/home/sk/.config/syncthing/https-cert.pem

Log file:
	-

GUI override directory:
	/home/sk/.config/syncthing/gui

Default sync folder directory:
	/home/sk/Sync

4.1. Setel nama pengguna dan kata sandi administratif untuk Syncthing web GUI

Secara default, Anda dapat mengakses GUI web Syncthing tanpa nama pengguna dan kata sandi apa pun. Untuk membuat instance Syncthing Anda sedikit aman, setel pengguna dan sandi administratif.

Klik "Tindakan" tab di pojok kanan atas dan pilih "Setelan" dari menu tarik-turun.

Di bawah "GUI" tab, masukkan nama pengguna administratif Anda dan kata sandinya. Pastikan passwordnya kuat dan tidak mudah ditebak. Aktifkan juga "Gunakan HTTPS untuk GUI" pilihan.

Klik tombol Simpan untuk membuat akun pengguna admin.

Sekarang segarkan browser web Anda dan Anda akan melihat pesan peringatan sertifikat. Ini karena kami baru saja mengaktifkan HTTPS untuk GUI web.

Untuk mengabaikan peringatan ini, klik tombol "Lanjutan" lalu klik tombol "Terima Risikonya Dan Lanjutkan" opsi untuk menambahkan localhost Anda ke daftar pengecualian.

Selanjutnya, Masukkan nama pengguna administratif dan kata sandinya untuk mengakses GUI web Syncthing.

Anda juga dapat meluncurkan klien syncthing-gtk untuk menginisialisasi Syncthing.

Ulangi langkah yang sama pada mesin kedua untuk menyiapkan pengguna admin untuk GUI web.

5. Menyinkronkan File Antara Beberapa Sistem Dengan Menyinkronkan

Mulai Sinkronkan di kedua mesin dengan menjalankan perintah ini:

$ syncthing

Gui web Syncthing akan terbuka secara otomatis di browser default.

Untuk menyinkronkan file antar sistem, kita perlu memasangkannya satu sama lain menggunakan Device ID . Anda dapat melihat ID perangkat di bawah tab "Tindakan".

Ini adalah id perangkat mesin desktop Ubuntu 20.04 saya:

Anda harus menukar ID di atas dengan sistem lain agar kedua sistem dapat saling berbicara.

Untuk melakukannya, klik "Tambahkan Perangkat Jarak Jauh" tombol dari bagian Perangkat Jarak Jauh.

Anda akan melihat ID perangkat sistem terdekat di layar berikutnya. Klik ID perangkat untuk memasangkannya dengan sistem Anda saat ini.

Selanjutnya, buka "Berbagi" tab dan pilih folder untuk dibagikan dengan perangkat saat ini. Secara opsional, Anda dapat mencentang "Terima Otomatis" kotak untuk secara otomatis membuat atau berbagi folder yang diiklankan perangkat ini di jalur default. FYI, jalur bersama default adalah ~/Sync .

Dalam "Lanjutan" tab, Anda dapat memilih metode Kompresi, dan menyetel batas kecepatan Perangkat.

Terakhir, klik "Simpan" tombol untuk memasangkan system2 dengan mesin system1.

Untuk berjaga-jaga jika ID perangkat tidak ditampilkan, salin secara manual dari system2 dan tempel di sini.

Pada sistem lain (yaitu sistem2), Anda akan melihat pesan pemberitahuan yang meminta Anda untuk menambahkan sistem pertama. Klik "Tambahkan Perangkat" untuk menerima permintaan dan memasangkannya.

Demikian pula, ulangi langkah-langkah di atas pada system2 untuk memasangkannya dengan mesin system1. Setelah Anda berhasil memasangkan kedua sistem satu sama lain, Anda akan melihatnya tercantum di bawah "Perangkat Jarak Jauh" di Syncthing antarmuka web.

Di sini, "kotak alat" adalah nama desktop Fedora saya.

Anda juga akan "Terkini" pesan di sebelah perangkat jarak jauh dan juga ke "Folder Default" tab di panel kiri. Artinya - mereka siap untuk disinkronkan!

Untuk melihat detail folder bersama, klik "Folder Default" tab di panel kiri untuk memperluasnya. Anda akan melihat berbagai detail folder bersama seperti;

  • id folder bersama,
  • jalur folder bersama,
  • keadaan folder,
  • interval waktu antara pemindaian berkala,
  • ke perangkat yang saat ini dibagikan,
  • waktu pemindaian terakhir, dll.

Kita sudah selesai sekarang. Kami telah berhasil menginstal dan mengkonfigurasi Synchthing pada kedua sistem dan keduanya dipasangkan satu sama lain.

Mulai sekarang, apa pun yang Anda masukkan ke dalam ~/Sync folder di salah satu sistem akan disinkronkan ke sistem lain. Anda dapat melihat kemajuan sinkronisasi dari antarmuka Syncthing:

Kapan pun Anda membuat, memodifikasi, atau menghapus sesuatu dari ~/Sync folder di salah satu sistem, perubahan akan secara otomatis direplikasi ke sistem lain dan sebaliknya.

Setelah Sinkronisasi selesai, tutup antarmuka web Syncthing lalu keluar dari syncthing perintah dengan menekan Ctrl+C .

5.1. Buat folder bersama baru

Anda dapat membuat beberapa direktori bersama dan menyinkronkan semuanya dengan perangkat lain yang dipasangkan.

Untuk membuat direktori bersama yang baru, klik "Tambahkan Folder" di bawah "Folder" bagian di sebelah kiri.

Di "Umum" tab, masukkan label folder, id folder, dan jalur folder untuk dibagikan dengan perangkat lain.

Selanjutnya, buka "Berbagi" tab dan pilih perangkat untuk berbagi folder ini.

Anda juga dapat mengatur folder bersama sebagai Kirim-saja atau Terima-saja atau keduanya Kirim &Terima. Opsi ini tersedia di bawah "Jenis Folder" kotak tarik-turun di "Lanjutan" tab.

Terakhir klik "Simpan" tombol untuk mengaktifkan pembagian ini.

Direktori bersama yang baru sekarang akan dicantumkan di bawah "Folder" bagian. Anda dapat mengubah setelan folder bersama kapan saja dengan mengeklik "Edit" tombol.

5.2. Konfigurasi firewall

Jika Anda berada di belakang firewall atau router lokal pihak ketiga, izinkan port tersebut 22000/TCP dan 21027/UDP untuk lalu lintas masuk dan keluar. Harap dicatat bahwa Anda perlu melakukan ini di semua sistem.

Jika Anda telah mengonfigurasi ufw (firewall tidak rumit) di mesin Linux Anda, Anda dapat mengizinkan port Syncthing menggunakan perintah berikut:

$ sudo ufw allow syncthing

Jika Anda menggunakan firewalld , lalu jalankan perintah berikut untuk membuka port yang diperlukan:

$ sudo firewall-cmd --zone=public --add-service=syncthing --permanent

Terakhir, mulai ulang firewalld layanan untuk menerapkan perubahan:

$ sudo firewall-cmd --reload

5.3. Aktifkan GUI Web jarak jauh (opsional)

Port default untuk GUI web adalah 8384 . Anda dapat mengakses GUI web Syncthing dengan menavigasi ke URL http://localhost:8384 atau http://127.0.0.1:8384 dari peramban web.

Secara default, Syncthing web GUI hanya dapat diakses dari localhost itu sendiri. Jika Anda ingin mengakses GUI web dari sistem lain di jaringan, Anda harus mengizinkan port 8384 di firewall/router lokal Anda.

Jika Anda menggunakan ufw , jalankan perintah berikut untuk mengizinkan syncthing-gui layanan:

$ sudo ufw allow syncthing-gui

Demikian pula, Anda dapat mengizinkan akses eksternal ke GUI web Syncthing melalui firewalld seperti di bawah ini:

$ sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

Mulai ulang layanan firewalld untuk menerapkan perubahan:

$ sudo firewall-cmd --reload

Setelah mengizinkan port default melalui firewall, ubah GUI listen address melalui GUI web dari 127.0.0.1:8384 ke 0.0.0.0:8384 :

Atau, edit Syncthing config.xml berkas:

$ nano ~/.config/syncthing/config.xml

Temukan baris berikut:

<address>127.0.0.1:8384</address>

Dan ubah menjadi:

<address>0.0.0.0:8384</address>

Tekan CTRL+O diikuti oleh CTRL+X untuk menyimpan dan keluar dari file.

Sekarang Anda dapat mengakses GUI web dari mesin jarak jauh mana pun menggunakan "https://IPAddress:8384" URL.

Perhatian: Harap dicatat bahwa ini opsional dan mengaktifkan akses GUI web jarak jauh tidak disarankan. Ini akan mengekspos sistem Anda ke publik. Aktifkan akses GUI web ke semua sistem hanya jika mereka berada di dalam jaringan tepercaya.

Pastikan juga Anda telah menyiapkan pengguna admin untuk masuk ke GUI web dan mengaktifkan "Gunakan HTTPS untuk GUI" opsi seperti yang dijelaskan sebelumnya.

5.4. Tunneling melalui SSH

Jika kedua sistem dapat diakses melalui SSH, Anda dapat mengakses GUI web sistem jarak jauh di mesin lokal Anda melalui terowongan SSH. Ini sedikit lebih aman daripada membuka port gui web Syncthing ke dunia luar.

Untuk memulai terowongan SSH, jalankan:

$ ssh -L 9999:127.0.0.1:8384 [email protected]

Ganti "[email protected]" dengan nama pengguna dan alamat IP jarak jauh Anda. Ini akan mengikat ke port lokal Anda 9999 dan meneruskan semua koneksi dari sana ke port 8384 pada mesin target. Ini masih berfungsi meskipun Syncthing terikat untuk mendengarkan hanya di localhost.

Sekarang Anda dapat mengakses GUI web jarak jauh dari sistem lokal Anda dengan menavigasi ke https://localhost:9999/ .

5.5. Sinkronisasi Mulai Otomatis

Kapan pun Anda ingin menyinkronkan sesuatu, Anda harus memulai instance sinkronisasi secara manual. Jika Anda ingin memulainya secara otomatis pada setiap reboot, lakukan hal berikut.

Buat systemd . baru layanan untuk sinkronisasi:

$ sudo nano /etc/systemd/system/[email protected]

Tambahkan baris berikut di dalamnya:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Ganti "ExecStart=/usr/local/bin/syncthing" dengan jalur yang benar dari file yang dapat dieksekusi sinkronisasi.

Jika Anda telah menginstal Syncthing menggunakan manajer paket distribusi, jalur yang dapat dieksekusi akan tersedia di sini - /usr/bin/syncthing .

Jika sinkronisasi diinstal dari binari yang telah dikompilasi sebelumnya, jalurnya adalah "/usr/local/bin/syncthing" .

Setelah memperbarui jalur yang benar, simpan dan tutup file.

Selanjutnya, muat ulang systemd unit menggunakan perintah:

$ sudo systemctl daemon-reload

Terakhir, mulai layanan sinkronisasi dan aktifkan untuk memulai secara otomatis saat reboot sistem:

$ sudo systemctl start [email protected]$USER
$ sudo systemctl enable [email protected]$USER

Verifikasi apakah Syncthing sedang berjalan menggunakan perintah:

$ sudo systemctl status [email protected]$USER

Contoh keluaran dari kotak CentOS saya:

● [email protected] - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-24 18:07:34 IST; 1s ago
     Docs: man:syncthing(1)
 Main PID: 10932 (syncthing)
    Tasks: 11 (limit: 11480)
   Memory: 20.8M
   CGroup: /system.slice/system-syncthing.slice/[email protected]
           ├─10932 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
           └─10937 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Scheduled restart job, restart counter is at 23.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Stopped Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Started Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [start] INFO: syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected]>
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: My ID: 4ZC47V7-KW3P2BH-FSLG3QN-2D2W3OO-LI2KEQ5-JJOBXWY-QMFOAI3-FP>
Nov 24 18:07:35 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: Single thread SHA256 performance is 117 MB/s using minio/sha256-s>
lines 1-18/18 (END)

Mulai sekarang, Syncthing akan otomatis dimulai saat startup dan menyinkronkan file di antara sistem yang dikonfigurasi.

5.6. Pemecahan masalah

Beberapa kali Anda mungkin mengalami kesalahan basis data dan Syncthing akan menolak untuk menyinkronkan file antar perangkat. Dalam kasus seperti itu, Anda dapat memindai ulang file secara paksa dan menyinkronkan ulang database menggunakan perintah berikut:

$ syncthing -reset-database

6. Kesimpulan

Anda sekarang tahu cara menyinkronkan file antara beberapa sistem dengan Syncthing di Linux. Seperti yang Anda lihat, sinkronisasi file menggunakan Syncthing cukup mudah dan mudah.

Meskipun ada banyak layanan cloud yang tersedia untuk menyimpan data, ada banyak kekhawatiran tentang privasi, keamanan, dan kurangnya kontrol atas data berharga Anda.

Berkat Syncthing, Anda sekarang dapat memiliki ketenangan pikiran yang lebih besar. Tidak ada server pusat, tidak ada penyadapan! Anda mengontrol data Anda sendiri!


Linux
  1. Dd:Beberapa File Input?

  2. Cara menginstal / beralih di antara beberapa versi Java dengan SDKMAN

  3. Urutkan file teks dengan banyak baris sebagai satu baris

  1. Ventoy:Cara Membuat Drive USB Multiboot dengan Beberapa File ISO

  2. Situasi Mengerikan – Sistem File Dipasang Secara Bersamaan Oleh Beberapa Instans Os Independen?

  3. Menggunakan rsync untuk Menyinkronkan File

  1. CloudCross – Menyinkronkan File dan Direktori dengan Beberapa Penyimpanan Cloud

  2. EasyJoin – Kirim File Antara Ponsel dan PC Anda Tanpa Internet

  3. Ekor beberapa file jarak jauh