GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Syncthing di desktop/server Debian

Tutorial ini akan menunjukkan cara memasang Syncthing di Debian. Syncthing adalah program sinkronisasi file berkelanjutan peer-to-peer gratis yang memungkinkan Anda untuk menyinkronkan file Anda di beberapa perangkat, tersedia untuk Linux, BSD, macOS, Windows, Android, dan Solaris.

Ini adalah alternatif sumber terbuka untuk Resilio Sync yang populer (sebelumnya dikenal sebagai BitTorrent Sync ) aplikasi. Pembuatan, modifikasi, atau penghapusan file pada satu mesin akan secara otomatis direplikasi ke perangkat Anda yang lain. Syncthing tidak mengunggah file Anda ke server pusat seperti Nextcloud , tetapi bertukar data Anda secara langsung di antara perangkat Anda. Semua data Anda dienkripsi dengan TLS saat mentransmisikan antar perangkat Anda.

Instal Syncthing di Debian melalui Repositori Deb Resmi

Gunakan curl untuk mengunduh kunci GPG lalu impor kunci dengan apt-key .

sudo apt-get install curl

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

Jika Anda melihat OK di terminal, itu berarti kunci GPG berhasil diimpor. Kemudian tambahkan repositori deb resmi dengan perintah berikut.

echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Karena repositori ini menggunakan https, kita perlu menginstal apt-transport-https paket, sehingga manajer paket APT dapat membuat koneksi https dengan repositori ini.

sudo apt-get install apt-transport-https

Perbarui indeks paket lokal dan instal sinkronisasi di Debian.

sudo apt-get update

sudo apt-get install syncthing

Menggunakan Systemd untuk Menyiapkan Sinkronisasi sebagai Layanan Sistem

Paket deb Syncthing resmi dikirimkan dengan file layanan systemd yang diperlukan. Di bawah /lib/systemd/system/ direktori, Anda akan menemukan [email protected] mengajukan. Aktifkan sinkronisasi untuk memulai otomatis saat boot dengan menjalankan perintah di bawah ini. Ganti username dengan nama pengguna Anda yang sebenarnya.

sudo systemctl enable [email protected]username.service

Perintah di atas akan membuat tautan simbolis yang mengarah ke [email protected] berkas.

Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /lib/systemd/system/[email protected]

Sekarang kita dapat memulai layanan Syncthing dengan perintah berikut.

sudo systemctl start [email protected]username.service

Periksa status

systemctl status [email protected]username.service

Keluaran:

Petunjuk:Jika perintah di atas tidak segera berhenti, tekan Q untuk mendapatkan kembali kendali terminal.

Kita dapat melihat bahwa Syncthing autostart diaktifkan dan sedang berjalan.

Layanan syncthing systemd membuat file konfigurasi di bawah /home/username/.config/syncthing/ dan folder /home/username/Sync sebagai folder sinkronisasi default. File konfigurasi utama adalah /home/username/.config/syncthing/config.xml .

Instal Syncthing di OS lain

Buka halaman unduh Syncthing dan instal Syncthing di sistem operasi lain seperti Windows, macOS, BSD, Android.

Buka Port 22000 di Firewall

Syncthing menggunakan port 22000 untuk berkomunikasi dengan rekan-rekan. Jika komputer atau server Anda mengaktifkan firewall UFW, maka Anda harus mengizinkan port 22000 dengan perintah berikut.

sudo ufw allow 22000/tcp

Mengakses Antarmuka Web Sinkronisasi Debian

Secara default, layanan Syncthing mendengarkan pada 127.0.0.1:8384. Sekarang di bilah alamat browser Web Anda, ketik 127.0.0.1:8384 untuk mengakses antarmuka Web Syncthing. Anda dapat menambahkan perangkat Syncthing lain dan berbagi folder dengan mereka.

Jika Anda menginstal Syncthing pada server Debian jarak jauh, Anda dapat mengaktifkan akses jarak jauh ke antarmuka web Syncthing dengan mengedit file konfigurasi.

nano /home/username/.config/syncthing/config.xml

Temukan dua baris berikut.

    <gui enabled="true" tls="false" debugging="false">
        <address>127.0.0.1:8384</address>

Ubah tls="false" ke tls="true" , sehingga lalu lintas HTTP akan dienkripsi. Dan ubah 127.0.0.1 ke alamat IP publik dari server Debian. Simpan dan tutup file. Mulai ulang Sinkronisasi agar perubahan diterapkan.

sudo systemctl start [email protected]username.service

Sekarang ketik server-ip-address:8384 di browser web untuk mengakses antarmuka Web Syncthing. Jelas Anda perlu menggunakan alamat IP asli server Debian. Anda akan diminta untuk menyetel nama pengguna dan sandi untuk melindungi antarmuka web Syncthing.

Anda juga dapat mengatur proxy terbalik dengan Nginx atau Apache untuk mengakses UI web, yang akan dijelaskan nanti dalam tutorial ini.

Mulai Menyinkronkan File antar Perangkat Anda

Setelah kami memiliki dua perangkat yang menjalankan Syncthing, kami dapat mulai menyinkronkan file di antara keduanya.

Di antarmuka web Syncthing, klik Tindakan> Tampilkan ID di pojok kanan atas. Anda akan melihat ID perangkat, yang merupakan rangkaian huruf dan angka yang panjang. Kode QR, yang juga merupakan ID perangkat, digunakan untuk mengonfigurasi Syncthing di ponsel cerdas.

Salin ID perangkat, lalu buka antarmuka Web Syncthing dari perangkat kedua, klik Tambahkan Perangkat Jarak Jauh di pojok kanan bawah. Kemudian rekatkan ID Perangkat dan beri nama perangkat itu. Klik tombol Simpan.

Sekarang perangkat kedua akan mencoba terhubung ke perangkat pertama. Refresh antarmuka Web pada perangkat pertama, Anda akan melihat pesan berikut. Klik Tambahkan Perangkat untuk menambahkan perangkat kedua ke daftar perangkat perangkat pertama.

Sekarang kedua perangkat terhubung.

Salah satu panel kiri antarmuka Web adalah folder sinkronisasi default (/home/username/Sync ). Klik Add Folder tombol untuk menambahkan folder baru. Berikan label deskriptif untuk folder ini dan atur jalur folder.

Syncthing berjalan sebagai akun pengguna Anda sendiri, jadi Anda harus memiliki izin menulis di folder bersama. Jika Anda melihat pesan kesalahan berikut saat berbagi folder, berarti Anda tidak memiliki izin menulis di folder tersebut.

2020-06-21 20:05:49: Failed to create folder marker: mkdir .stfolder: read-only file system

Anda dapat memberikan izin menulis dengan setfacl .

sudo apt install acl
sudo setfacl -R -m u:username:rx /folder/path/

Dalam Sharing tab, pilih perangkat Sinkronisasi Anda yang lain.

Dalam Advanced tab, Anda dapat memilih jenis folder, interval pemindaian ulang, dll.

Klik tombol Simpan untuk mulai menyinkronkan. Sebuah pesan akan muncul di antarmuka Web perangkat lain. Klik Tambahkan untuk menerima file.

Sekarang kedua perangkat sedang menyinkronkan file. Di sisi kanan, Anda dapat melihat kecepatan unduh, kecepatan unggah, ukuran folder lokal, dll.

Menyiapkan Proksi Terbalik

Karena mendengarkan pada 127.0.0.1:8384, antarmuka Web Syncthing hanya tersedia untuk koneksi dari komputer yang sama. Agar dapat mengakses antarmuka Web Syncthing dari komputer jarak jauh, kita dapat mengatur proxy terbalik untuk Syncthing dengan Nginx atau Apache.

Nginx

Nginx adalah server web yang sangat populer dan proxy terbalik. Jika Anda lebih suka menggunakan Nginx, jalankan perintah berikut untuk menginstalnya.

sudo apt install nginx

Kemudian buat file konfigurasi server.

sudo nano /etc/nginx/conf.d/syncthing.conf

Tambahkan konten berikut ke file ini. Ganti syncthing.example.com dengan nama domain pilihan Anda. Anda juga harus menambahkan catatan DNS A untuk subdomain ini. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

server {
  listen 80;
  server_name syncthing.example.com;

  access_log /var/log/nginx/syncthing.access.log;
  error_log /var/log/nginx/syncthing.error.log;
  location / {
    proxy_pass http://127.0.0.1:8384;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Simpan dan tutup file. Uji konfigurasi Nginx dan muat ulang Nginx.

sudo nginx -t

sudo systemctl reload nginx

Setelah Anda mengarahkan nama domain Anda ke alamat IP Debian, ketik nama domain Anda di bilah alamat browser dan Anda akan melihat antarmuka Web Syncthing.

Jika browser Anda tidak dapat terhubung ke antarmuka web Syncthing, mungkin Anda perlu membuka port 80 di firewall. Misalnya, jika Anda menggunakan UFW, maka jalankan perintah berikut.

sudo ufw allow 80/tcp

Apache

Apache adalah server web terkenal yang juga dapat digunakan sebagai proxy terbalik. Jika Anda lebih suka Apache daripada Nginx, instal dengan:

sudo apt install apache2

Mulai Apache dan aktifkan mulai otomatis.

sudo systemctl start apache2

sudo systemctl enable apache2

Untuk menggunakan Apache sebagai proxy terbalik, kita perlu mengaktifkan proxy modul dan modul header.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Sekarang buat file host virtual untuk Syncthing.

sudo nano /etc/apache2/sites-available/syncthing.conf

Salin dan tempel baris berikut ke dalam file. Ganti syncthing.example.com dengan nama domain asli Anda. Anda juga harus menambahkan catatan DNS A untuk subdomain ini. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

<VirtualHost *:80>
   ServerName syncthing.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://127.0.0.1:8384/
   ProxyPassReverse / http://127.0.0.1:8384/

   ErrorLog ${APACHE_LOG_DIR}/syncthing_error.log
   CustomLog ${APACHE_LOG_DIR}/syncthing_access.log combined

</VirtualHost>

Simpan dan tutup file. Kemudian aktifkan host virtual ini.

sudo a2ensite syncthing.conf

Mulai ulang Apache

sudo systemctl restart apache2

Sekarang Anda dapat mengakses UI Web melalui syncthing.example.com .

Jika browser Anda tidak dapat terhubung ke antarmuka web Syncthing, mungkin Anda perlu membuka port 80 di firewall. Misalnya, jika Anda menggunakan UFW, maka jalankan perintah berikut.

sudo ufw allow 80/tcp

Amankan UI Web Sinkronisasi dengan HTTPS

Untuk mengenkripsi lalu lintas HTTP saat Anda mengunjungi Syncthing web UI melalui nama domain, kami dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Pertama, buka port 443 di firewall.

sudo ufw allow 443/tcp

Kemudian jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot).

sudo apt install certbot

Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Jika Anda menggunakan Apache, instal plugin Certbot Apache.

sudo apt install python3-certbot-apache

Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Dimana

  • --nginx :Gunakan plugin nginx.
  • --apache :Gunakan plugin Apache.
  • --agree-tos :Menyetujui persyaratan layanan.
  • --redirect :Memaksa HTTPS dengan pengalihan 301.
  • --hsts :Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.
  • --staple-ocsp :Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.

Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.

Refresh Syncthing Web GUI Anda, Anda akan menemukan koneksi HTTP secara otomatis dialihkan ke koneksi aman HTTPS.

Aktifkan Otentikasi Pengguna

Secara default, siapa pun dapat mengakses antarmuka web Syncthing Anda setelah proxy terbalik diatur. Kami dapat mengaktifkan otentikasi pengguna untuk membatasi akses. Klik Tindakan tombol di pojok kanan atas, lalu pilih Setelan -> GUI.

Masukkan nama pengguna di GUI Authentication User bidang, masukkan kata sandi di bidang Kata Sandi Otentikasi GUI . Kemudian simpan setelan Anda.

Harap diperhatikan bahwa Anda tidak perlu mencentang Gunakan HTTPS untuk GUI kotak, yang memungkinkan Syncthing menggunakan sertifikat yang ditandatangani sendiri. Kami telah menginstal sertifikat yang valid di Apache/Nginx yang dipercaya oleh browser Web utama.

Setelah Anda menyimpan perubahan, mulai ulang layanan Syncthing systemd, atau Anda mungkin melihat kesalahan 502 gateway buruk saat memuat ulang halaman.

sudo systemctl restart [email protected]username.service

Sekarang masuk ke antarmuka Web Syncthing dengan nama pengguna dan kata sandi baru Anda.

Folder Hanya-Kirim &Hanya-Terima

Saat berbagi folder di Syncthing, Anda dapat membuka tab Lanjutan dan memilih salah satu dari tiga jenis folder:

  • Kirim &Terima (default)
  • Hanya Kirim
  • Hanya Terima

Anda mungkin ingin memilih hanya kirim atau terima saja. Misalnya, jika Anda memiliki 3 komputer:A, B, dan C, dan Anda ingin menggabungkan folder di komputer A dan B ke satu folder di komputer C. Kemudian Anda dapat mengatur jenis folder menjadi hanya-terima di komputer C. Dengan cara ini, komputer C akan memiliki semua file dalam satu folder. Komputer A dan B masih memiliki file aslinya. Tidak lebih dan tidak kurang.

Saat Anda menggunakan jalur folder yang sama di komputer C, Syncthing mungkin memperingatkan Anda bahwa "jalur ini adalah subdirektori dari folder yang ada". Anda dapat mengabaikan peringatan ini karena Anda memiliki folder hanya terima. File yang ada di folder tidak akan dihapus.

Menyinkronkan melalui Server Relai

Jika dua instance Syncthing tidak dapat terhubung satu sama lain, Syncthing akan mencoba menggunakan server relai untuk mentransfer file.

Alasan umum mengapa mereka tidak dapat terhubung satu sama lain adalah karena salah satunya berada di belakang perangkat NAT dan tidak mengonfigurasi penerusan porta. Setelah Anda mengonfigurasi penerusan port, Anda dapat menonaktifkan server relai. Begini caranya. Klik tombol Edit dan pilih Advanced tab, Ubah alamat dari dynamic ke tcp://ip-address:22000 . Tentu saja Anda perlu menggunakan alamat IP asli Anda.

Pemecahan Masalah

Jika instance Syncthing Anda tidak dapat terhubung satu sama lain, Anda dapat menggunakan ss (socket stats) utilitas untuk memeriksa apakah Syncthing mendengarkan pada port TCP 22000.

sudo ss -lnpt | grep syncthing

Seperti yang dapat Anda lihat dari tangkapan layar di bawah, Syncthing saya mendengarkan pada port 8384 (antarmuka web) dan 22000 (koneksi peer to peer).

Jika tidak, Anda dapat mengedit file konfigurasi.

nano ~/.config/syncthing/config.xml

Temukan baris berikut.

<listenAddress>default</listenAddress>

Ubah default ke tcp://your-IP-address .

<listenAddress>tcp://12.34.56.78</listenAddress>

Simpan dan tutup file. Kemudian mulai ulang Syncthing.

sudo systemctl restart [email protected]username.service

File .stfoler tidak ada

.stfoler file diperlukan oleh Syncthing agar berfungsi. Ini adalah file kosong. Anda tidak perlu menambahkan apa pun ke dalamnya. Jika .stfolder file hilang di bawah folder sinkronisasi Anda, maka sinkronisasi akan berhenti. Anda dapat membuat tugas Cron berikut untuk membuat file secara otomatis.

@hourly touch /path/to/sync/folder/.stfolder

Perintah sentuh akan membuat file jika tidak ada. Jika file sudah ada, itu akan memperbarui stempel waktu file.


Debian
  1. Cara Menginstal Server Redis di Debian 11

  2. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  3. Cara Menginstal Server MySQL di Debian 9

  1. Cara Memasang Server Minecraft di Debian 9

  2. Cara Menginstal Server Xrdp (Desktop Jarak Jauh) di Debian 10

  3. Cara Menginstal ProFTPD di Debian 8

  1. Cara menginstal SuiteCRM di Debian 9

  2. Cara menginstal MySQL 8 di Debian 10

  3. Cara menginstal XFCE Desktop di Debian 11